EstraverseというJavaScript ASTのtraverseを行うライブラリがあります。 JavaScript ASTについては以下を参照して下さい。 JavaScript AST Walker カジュアルJavaScript AST このtraverse関数にはそれぞれのnodeの通り方としてenterとleaveというものが用意されています。 estraverse.traverse(ast, { enter: function (node, parent) { if (node.type == 'FunctionExpression' || node.type == 'FunctionDeclaration') return estraverse.VisitorOption.Skip; }, leave: function (node, parent) { if (node