code: function replaceInStatement(code) {
          var asts = arguments;
          var visitorReplaceInExpr = {
              'Identifier': function (node) {
                  if (node.name.indexOf(RP) === 0) {
                      var i = parseInt(node.name.substring(RP.length));
                      return asts[i];
                  } else {
                      return node;
                  }
              },
              'BlockStatement': function (node) {
                  if (node.body[0].type === 'ExpressionStatement' && isArr(node.body[0].expression)) {
                      node.body = node.body[0].expression;
                  }
                  return node;
              }
          };
  //        StatCollector.resumeTimer("internalParse");
          var ast = acorn.parse(code);
  //        StatCollector.suspendTimer("internalParse");
  //        StatCollector.resumeTimer("replace");
          var newAst = astUtil.transformAst(ast, visitorReplaceInExpr, undefined, undefined, true);
          //console.log(newAst);
  //        StatCollector.suspendTimer("replace");
          return newAst.body;
      }
docs: J$_i in expression context will replace it by an AST {J$_i} will replace the body of the block statement with an array of statements passed as argument