index.js
function(nodePath) {
        createdGlobals = {};
        filenameNoExtCache = null;

        var node = nodePath.node;
        var contents = node.body;
        node.body = [t.expressionStatement(t.callExpression(
          t.memberExpression(
            t.functionExpression(null, [], t.blockStatement(contents)),
            t.identifier('call'),
            false
          ),
          [t.identifier('this')]
        ))];
      }
function(nodePath) {
        createdGlobals = {};
        filenameNoExtCache = null;

        var node = nodePath.node;
        var contents = node.body;
        node.body = [t.expressionStatement(t.callExpression(
          t.memberExpression(
            t.functionExpression(null, [], t.blockStatement(contents)),
            t.identifier('call'),
            false
          ),
          [t.identifier('this')]
        ))];
      }
function ( nodePath ) { createdGlobals = { } ; filenameNoExtCache = null ; var node = nodePath . node ; var contents = node . body ; node . body = [ t . expressionStatement ( t . callExpression ( t . memberExpression ( t . functionExpression ( null , [ ] , t . blockStatement ( contents ) ) , t . identifier ( 'call' ) , false ) , [ t . identifier ( 'this' ) ] ) ) ] ; }
Wraps the program body in a closure, protecting local variables.
@param {!NodePath} nodePath
Wraps the program body in a closure protecting local variables .