rename traverser to visitor
This commit is contained in:
@@ -4,7 +4,7 @@ var traverse = require("../../traverse");
|
||||
var util = require("../../util");
|
||||
var t = require("../../types");
|
||||
|
||||
var traverser = {
|
||||
var visitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
// check if this node is an identifier that matches the same as our function id
|
||||
if (!t.isIdentifier(node, { name: state.id })) return;
|
||||
@@ -35,7 +35,7 @@ exports.property = function (node, file, scope) {
|
||||
outerDeclar: scope.get(id, true),
|
||||
};
|
||||
|
||||
traverse(node, traverser, scope, state);
|
||||
traverse(node, visitor, scope, state);
|
||||
|
||||
if (state.selfReference) {
|
||||
// todo: support generators
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
var traverse = require("../../traverse");
|
||||
var t = require("../../types");
|
||||
|
||||
var traverser = {
|
||||
var visitor = {
|
||||
enter: function (node, parent, scope, context) {
|
||||
if (t.isFunction(node)) context.skip();
|
||||
|
||||
@@ -17,7 +17,7 @@ module.exports = function (node, callId, scope) {
|
||||
node.async = false;
|
||||
node.generator = true;
|
||||
|
||||
traverse(node, traverser, scope);
|
||||
traverse(node, visitor, scope);
|
||||
|
||||
var call = t.callExpression(callId, [node]);
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ ReplaceSupers.prototype.replace = function () {
|
||||
this.traverseLevel(this.methodNode.value, true);
|
||||
};
|
||||
|
||||
var traverser = {
|
||||
var visitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
var topLevel = state.topLevel;
|
||||
var self = state.self;
|
||||
@@ -142,7 +142,7 @@ var traverser = {
|
||||
|
||||
ReplaceSupers.prototype.traverseLevel = function (node, topLevel) {
|
||||
var state = { self: this, topLevel: topLevel };
|
||||
traverse(node, traverser, this.scope, state);
|
||||
traverse(node, visitor, this.scope, state);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -18,7 +18,7 @@ function DefaultFormatter(file) {
|
||||
//this.checkCollisions();
|
||||
}
|
||||
|
||||
var exportsTraverser = {
|
||||
var exportsVisitor = {
|
||||
enter: function (node, parent, scope, context, localExports) {
|
||||
var declar = node && node.declaration;
|
||||
if (t.isExportDeclaration(node) && declar && t.isStatement(declar)) {
|
||||
@@ -29,11 +29,11 @@ var exportsTraverser = {
|
||||
|
||||
DefaultFormatter.prototype.getLocalExports = function () {
|
||||
var localExports = {};
|
||||
traverse(this.file.ast, exportsTraverser, this.file.scope, localExports);
|
||||
traverse(this.file.ast, exportsVisitor, this.file.scope, localExports);
|
||||
return localExports;
|
||||
};
|
||||
|
||||
var importsTraverser = {
|
||||
var importsVisitor = {
|
||||
enter: function (node, parent, scope, context, localImports) {
|
||||
if (t.isImportDeclaration(node)) {
|
||||
_.extend(localImports, t.getIds(node, true));
|
||||
@@ -43,7 +43,7 @@ var importsTraverser = {
|
||||
|
||||
DefaultFormatter.prototype.getLocalImports = function () {
|
||||
var localImports = {};
|
||||
traverse(this.file.ast, importsTraverser, this.file.scope, localImports);
|
||||
traverse(this.file.ast, importsVisitor, this.file.scope, localImports);
|
||||
return localImports;
|
||||
};
|
||||
|
||||
@@ -59,7 +59,7 @@ DefaultFormatter.prototype.checkLocalReference = function (node) {
|
||||
}
|
||||
};
|
||||
|
||||
var collissionsTraverser = {
|
||||
var collissionsVisitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
var self = state.self;
|
||||
if (t.isAssignmentExpression(node)) {
|
||||
@@ -79,7 +79,7 @@ var collissionsTraverser = {
|
||||
DefaultFormatter.prototype.checkCollisions = function () {
|
||||
// todo: all check export collissions
|
||||
var state = { self: this };
|
||||
traverse(this.file.ast, collissionsTraverser, null, state);
|
||||
traverse(this.file.ast, collissionsVisitor, null, state);
|
||||
};
|
||||
|
||||
DefaultFormatter.prototype.remapExportAssignment = function (node) {
|
||||
@@ -100,7 +100,7 @@ DefaultFormatter.prototype.isLocalReference = function (node, scope) {
|
||||
return t.isIdentifier(node) && localExports[name] && localExports[name] === scope.get(name, true);
|
||||
};
|
||||
|
||||
var remapTraverser = {
|
||||
var remapVisitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
var self = state.self;
|
||||
if (t.isUpdateExpression(node) && self.isLocalReference(node.argument, scope)) {
|
||||
@@ -140,7 +140,7 @@ var remapTraverser = {
|
||||
|
||||
DefaultFormatter.prototype.remapAssignments = function () {
|
||||
var state = { self: this };
|
||||
traverse(this.file.ast, remapTraverser, this.file.scope, state);
|
||||
traverse(this.file.ast, remapVisitor, this.file.scope, state);
|
||||
};
|
||||
|
||||
DefaultFormatter.prototype.getModuleName = function () {
|
||||
|
||||
@@ -8,7 +8,7 @@ var util = require("../../util");
|
||||
var t = require("../../types");
|
||||
var _ = require("lodash");
|
||||
|
||||
var traverser = {
|
||||
var visitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
if (t.isExportDeclaration(node) && !node.default) state.hasNonDefaultExports = true;
|
||||
}
|
||||
@@ -18,7 +18,7 @@ function CommonJSFormatter(file) {
|
||||
DefaultFormatter.apply(this, arguments);
|
||||
|
||||
var state = { hasNonDefaultExports: false };
|
||||
traverse(file.ast, traverser, file.scope, state);
|
||||
traverse(file.ast, visitor, file.scope, state);
|
||||
|
||||
this.hasNonDefaultExports = state.hasNonDefaultExports;
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ SystemFormatter.prototype.importSpecifier = function (specifier, node, nodes) {
|
||||
this._addImportSource(_.last(nodes), node);
|
||||
};
|
||||
|
||||
var runnerSettersTraverser = {
|
||||
var runnerSettersVisitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
if (node._importSource === state.source) {
|
||||
if (t.isVariableDeclaration(node)) {
|
||||
@@ -92,13 +92,13 @@ SystemFormatter.prototype.buildRunnerSetters = function (block, hoistDeclarators
|
||||
hoistDeclarators: hoistDeclarators
|
||||
};
|
||||
|
||||
traverse(block, runnerSettersTraverser, scope, state);
|
||||
traverse(block, runnerSettersVisitor, scope, state);
|
||||
|
||||
return t.functionExpression(null, [uid], t.blockStatement(state.nodes));
|
||||
}));
|
||||
};
|
||||
|
||||
var hoistVariablesTraverser = {
|
||||
var hoistVariablesVisitor = {
|
||||
enter: function (node, parent, scope, context, hoistDeclarators) {
|
||||
if (t.isFunction(node)) {
|
||||
// nothing inside is accessible
|
||||
@@ -139,7 +139,7 @@ var hoistVariablesTraverser = {
|
||||
}
|
||||
};
|
||||
|
||||
var hoistFunctionsTraverser = {
|
||||
var hoistFunctionsVisitor = {
|
||||
enter: function (node, parent, scope, context, handlerBody) {
|
||||
if (t.isFunction(node)) context.skip();
|
||||
|
||||
@@ -173,7 +173,7 @@ SystemFormatter.prototype.transform = function (ast) {
|
||||
var returnStatement = handlerBody.pop();
|
||||
|
||||
// hoist up all variable declarations
|
||||
traverse(block, hoistVariablesTraverser, this.file.scope, hoistDeclarators);
|
||||
traverse(block, hoistVariablesVisitor, this.file.scope, hoistDeclarators);
|
||||
|
||||
if (hoistDeclarators.length) {
|
||||
var hoistDeclar = t.variableDeclaration("var", hoistDeclarators);
|
||||
@@ -182,7 +182,7 @@ SystemFormatter.prototype.transform = function (ast) {
|
||||
}
|
||||
|
||||
// hoist up function declarations for circular references
|
||||
traverse(block, hoistFunctionsTraverser, this.file.scope, handlerBody);
|
||||
traverse(block, hoistFunctionsVisitor, this.file.scope, handlerBody);
|
||||
|
||||
handlerBody.push(returnStatement);
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ Transformer.prototype.astRun = function (file, key) {
|
||||
}
|
||||
};
|
||||
|
||||
var transformTraverser = {
|
||||
var transformVisitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
var fns = state.transformer[node.type];
|
||||
if (!fns) return;
|
||||
@@ -76,7 +76,7 @@ Transformer.prototype.transform = function (file) {
|
||||
this.astRun(file, "before");
|
||||
|
||||
var state = { file: file, transformer: this.transformer };
|
||||
traverse(file.ast, transformTraverser, file.scope, state);
|
||||
traverse(file.ast, transformVisitor, file.scope, state);
|
||||
|
||||
this.astRun(file, "after");
|
||||
};
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
var traverse = require("../../traverse");
|
||||
var t = require("../../types");
|
||||
|
||||
var functionChildrenTraverser = {
|
||||
var functionChildrenVisitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
if (t.isFunction(node) && !node._aliasFunction) {
|
||||
return context.skip();
|
||||
@@ -25,7 +25,7 @@ var functionChildrenTraverser = {
|
||||
}
|
||||
};
|
||||
|
||||
var functionTraverser = {
|
||||
var functionVisitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
if (!node._aliasFunction) {
|
||||
if (t.isFunction(node)) {
|
||||
@@ -37,7 +37,7 @@ var functionTraverser = {
|
||||
}
|
||||
|
||||
// traverse all child nodes of this function and find `arguments` and `this`
|
||||
traverse(node, functionChildrenTraverser, scope, state);
|
||||
traverse(node, functionChildrenVisitor, scope, state);
|
||||
|
||||
return context.skip();
|
||||
}
|
||||
@@ -58,7 +58,7 @@ var go = function (getBody, node, scope) {
|
||||
|
||||
// traverse the function and find all alias functions so we can alias
|
||||
// `arguments` and `this` if necessary
|
||||
traverse(node, functionTraverser, scope, state);
|
||||
traverse(node, functionVisitor, scope, state);
|
||||
|
||||
var body;
|
||||
|
||||
|
||||
@@ -128,13 +128,13 @@ function replace(node, parent, scope, context, remaps) {
|
||||
}
|
||||
}
|
||||
|
||||
var replaceTraverser = {
|
||||
var replaceVisitor = {
|
||||
enter: replace
|
||||
};
|
||||
|
||||
function traverseReplace(node, parent, scope, remaps) {
|
||||
replace(node, parent, scope, null, remaps);
|
||||
traverse(node, replaceTraverser, scope, remaps);
|
||||
traverse(node, replaceVisitor, scope, remaps);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -181,7 +181,7 @@ LetScoping.prototype.remap = function () {
|
||||
traverseReplace(loopParent.update, loopParent, scope, remaps);
|
||||
}
|
||||
|
||||
traverse(this.block, replaceTraverser, scope, remaps);
|
||||
traverse(this.block, replaceVisitor, scope, remaps);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -221,7 +221,7 @@ LetScoping.prototype.needsClosure = function () {
|
||||
this.build(ret, call);
|
||||
};
|
||||
|
||||
var letReferenceFunctionTraverser = {
|
||||
var letReferenceFunctionVisitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
// not a direct reference
|
||||
if (!t.isReferencedIdentifier(node, parent)) return;
|
||||
@@ -237,10 +237,10 @@ var letReferenceFunctionTraverser = {
|
||||
}
|
||||
};
|
||||
|
||||
var letReferenceBlockTraverser = {
|
||||
var letReferenceBlockVisitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
if (t.isFunction(node)) {
|
||||
traverse(node, letReferenceFunctionTraverser, scope, state);
|
||||
traverse(node, letReferenceFunctionVisitor, scope, state);
|
||||
return context.skip();
|
||||
}
|
||||
}
|
||||
@@ -293,12 +293,12 @@ LetScoping.prototype.getLetReferences = function () {
|
||||
|
||||
// traverse through this block, stopping on functions and checking if they
|
||||
// contain any local let references
|
||||
traverse(this.block, letReferenceBlockTraverser, this.scope, state);
|
||||
traverse(this.block, letReferenceBlockVisitor, this.scope, state);
|
||||
|
||||
return state.closurify;
|
||||
};
|
||||
|
||||
var loopTraverser = {
|
||||
var loopVisitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
var replace;
|
||||
|
||||
@@ -345,11 +345,11 @@ LetScoping.prototype.checkLoop = function () {
|
||||
hasBreak: false,
|
||||
};
|
||||
|
||||
traverse(this.block, loopTraverser, this.scope, state);
|
||||
traverse(this.block, loopVisitor, this.scope, state);
|
||||
return state;
|
||||
};
|
||||
|
||||
var hoistVarDeclarationsTraverser = {
|
||||
var hoistVarDeclarationsVisitor = {
|
||||
enter: function (node, parent, scope, context, self) {
|
||||
if (t.isForStatement(node)) {
|
||||
if (isVar(node.init, node)) {
|
||||
@@ -373,7 +373,7 @@ var hoistVarDeclarationsTraverser = {
|
||||
*/
|
||||
|
||||
LetScoping.prototype.hoistVarDeclarations = function () {
|
||||
traverse(this.block, hoistVarDeclarationsTraverser, this.scope, this);
|
||||
traverse(this.block, hoistVarDeclarationsVisitor, this.scope, this);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,7 +4,7 @@ var traverse = require("../../../traverse");
|
||||
var t = require("../../../types");
|
||||
var _ = require("lodash");
|
||||
|
||||
var traverser = {
|
||||
var visitor = {
|
||||
enter: function (child, parent, scope, context, state) {
|
||||
if (child._ignoreConstant) return;
|
||||
if (t.isVariableDeclaration(child)) return;
|
||||
@@ -83,5 +83,5 @@ exports.ForStatement = function (node, parent, scope, context, file) {
|
||||
if (!hasConstants) return;
|
||||
|
||||
var state = { check: check, getIds: getIds };
|
||||
traverse(node, traverser, scope, state);
|
||||
traverse(node, visitor, scope, state);
|
||||
};
|
||||
|
||||
@@ -16,7 +16,7 @@ function checkTDZ(node, parent, scope, context, state) {
|
||||
}
|
||||
}
|
||||
|
||||
var checkTDZTraverser = {
|
||||
var checkTDZVisitor = {
|
||||
enter: checkTDZ
|
||||
};
|
||||
|
||||
@@ -50,7 +50,7 @@ exports.Function = function (node, parent, scope, context, file) {
|
||||
checkTDZ(def, node, scope, context, state);
|
||||
|
||||
if (!t.isPattern(param)) {
|
||||
traverse(def, checkTDZTraverser, scope, state);
|
||||
traverse(def, checkTDZVisitor, scope, state);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
var traverse = require("../../../traverse");
|
||||
var t = require("../../../types");
|
||||
|
||||
var traverser = {
|
||||
var visitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
if (!t.isReferencedIdentifier(node, parent)) return;
|
||||
|
||||
@@ -44,5 +44,5 @@ exports.BlockStatement = function (node, parent, scope, context, file) {
|
||||
file: file
|
||||
};
|
||||
|
||||
traverse(node, traverser, scope, state);
|
||||
traverse(node, visitor, scope, state);
|
||||
};
|
||||
|
||||
@@ -19,7 +19,7 @@ var ALIASABLE_CONSTRUCTORS = [
|
||||
"WeakSet"
|
||||
];
|
||||
|
||||
var astTraverser = {
|
||||
var astVisitor = {
|
||||
enter: function (node, parent, scope, context, file) {
|
||||
var prop;
|
||||
|
||||
@@ -68,7 +68,7 @@ exports.ast = {
|
||||
},
|
||||
|
||||
exit: function (ast, file) {
|
||||
traverse(ast, astTraverser, null, file);
|
||||
traverse(ast, astVisitor, null, file);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
var traverse = require("../../../traverse");
|
||||
var t = require("../../../types");
|
||||
|
||||
var traverser = {
|
||||
var visitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
if (t.isFunction(node)) return;
|
||||
|
||||
@@ -36,5 +36,5 @@ exports.MethodDefinition = function (node, parent, scope, context, file) {
|
||||
file: file
|
||||
};
|
||||
|
||||
traverse(value, traverser, scope, state);
|
||||
traverse(value, visitor, scope, state);
|
||||
};
|
||||
|
||||
@@ -202,7 +202,7 @@ function clearNode(node) {
|
||||
clearComments(node.leadingComments);
|
||||
}
|
||||
|
||||
var clearTraverser = { enter: clearNode };
|
||||
var clearVisitor = { enter: clearNode };
|
||||
|
||||
function clearComments(comments) {
|
||||
for (var i = 0; i < comments.length; i++)
|
||||
@@ -211,7 +211,7 @@ function clearComments(comments) {
|
||||
|
||||
traverse.removeProperties = function (tree) {
|
||||
clearNode(tree);
|
||||
traverse(tree, clearTraverser);
|
||||
traverse(tree, clearVisitor);
|
||||
|
||||
return tree;
|
||||
};
|
||||
|
||||
@@ -139,7 +139,7 @@ Scope.prototype.generateTempBasedOnNode = function (node) {
|
||||
return id;
|
||||
};
|
||||
|
||||
var functionVariableTraverser = {
|
||||
var functionVariableVisitor = {
|
||||
enter: function (node, parent, scope, context, state) {
|
||||
if (t.isFor(node)) {
|
||||
_.each(FOR_KEYS, function (key) {
|
||||
@@ -167,7 +167,7 @@ var functionVariableTraverser = {
|
||||
}
|
||||
};
|
||||
|
||||
var blockVariableTraverser = {
|
||||
var blockVariableVisitor = {
|
||||
enter: function (node, parent, scope, context, add) {
|
||||
if (t.isScope(node)) {
|
||||
return context.skip();
|
||||
@@ -214,7 +214,7 @@ Scope.prototype.getInfo = function () {
|
||||
// Program, BlockStatement - let variables
|
||||
|
||||
if (t.isBlockStatement(block) || t.isProgram(block)) {
|
||||
traverse(block, blockVariableTraverser, this, add);
|
||||
traverse(block, blockVariableVisitor, this, add);
|
||||
}
|
||||
|
||||
// CatchClause - param
|
||||
@@ -232,7 +232,7 @@ Scope.prototype.getInfo = function () {
|
||||
// Program, Function - var variables
|
||||
|
||||
if (t.isProgram(block) || t.isFunction(block)) {
|
||||
traverse(block, functionVariableTraverser, this, {
|
||||
traverse(block, functionVariableVisitor, this, {
|
||||
blockId: block.id,
|
||||
add: add
|
||||
});
|
||||
|
||||
@@ -131,7 +131,7 @@ exports.buildDefineProperties = function (mutatorMap) {
|
||||
return objExpr;
|
||||
};
|
||||
|
||||
var templateTraverser = {
|
||||
var templateVisitor = {
|
||||
enter: function (node, parent, scope, context, nodes) {
|
||||
if (t.isIdentifier(node) && _.has(nodes, node.name)) {
|
||||
return nodes[node.name];
|
||||
@@ -151,7 +151,7 @@ exports.template = function (name, nodes, keepExpression) {
|
||||
template = _.cloneDeep(template);
|
||||
|
||||
if (!_.isEmpty(nodes)) {
|
||||
traverse(template, templateTraverser, null, nodes);
|
||||
traverse(template, templateVisitor, null, nodes);
|
||||
}
|
||||
|
||||
var node = template.body[0];
|
||||
|
||||
Reference in New Issue
Block a user