src/js/instrument/esnstrument.js
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;
    }
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;
    }
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 ; }
END of Liang Gong's AST post-processor
END of Liang Gong s AST post - processor