code: function transformString(code, visitorsPost, visitorsPre) {
  //         StatCollector.resumeTimer("parse");
  //        console.time("parse")
  //        var newAst = esprima.parse(code, {loc:true, range:true});
          var newAst = acorn.parse(code, {locations: true, ecmaVersion: 6 });
  //        console.timeEnd("parse")
  //        StatCollector.suspendTimer("parse");
  //        StatCollector.resumeTimer("transform");
  //        console.time("transform")
          addScopes(newAst);
          var len = visitorsPost.length;
          for (var i = 0; i < len; i++) {
              newAst = astUtil.transformAst(newAst, visitorsPost[i], visitorsPre[i], astUtil.CONTEXT.RHS);
          }
  //        console.timeEnd("transform")
  //        StatCollector.suspendTimer("transform");
  //        console.log(JSON.stringify(newAst,null,"  "));
          return newAst;
      }
docs: END of Liang Gong's AST post-processor