Skip to content

Instantly share code, notes, and snippets.

@program247365
Created June 8, 2015 17:59
Show Gist options
  • Select an option

  • Save program247365/fba52fb5017a2d602b77 to your computer and use it in GitHub Desktop.

Select an option

Save program247365/fba52fb5017a2d602b77 to your computer and use it in GitHub Desktop.

Revisions

  1. program247365 created this gist Jun 8, 2015.
    18 changes: 18 additions & 0 deletions addLogging.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,18 @@
    function addLogging(code) {
    var ast = esprima.parse(code);
    estraverse.traverse(ast, {
    enter: function(node, parent) {
    if (node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression') {
    addBeforeCode(node);
    }
    }
    });
    return escodegen.generate(ast);
    }

    function addBeforeCode(node) {
    var name = node.id ? node.id.name : '<anonymous function>';
    var beforeCode = "console.log('Entering " + name + "()');";
    var beforeNodes = esprima.parse(beforeCode).body;
    node.body.body = beforeNodes.concat(node.body.body);
    }