refactor traversals that have scopes to use the scope helper method

This commit is contained in:
Sebastian McKenzie
2015-02-04 13:25:23 +11:00
parent 7d950cd60a
commit 4f023e83f8
15 changed files with 28 additions and 28 deletions

View File

@@ -389,7 +389,7 @@ File.prototype.checkNode = function (node, scope) {
check(node, scope);
traverse(node, checkTransformerVisitor, scope, {
scope.traverse(node, checkTransformerVisitor, {
check: check
});
};

View File

@@ -35,7 +35,7 @@ exports.property = function (node, file, scope) {
outerDeclar: scope.getBinding(id),
};
traverse(node, visitor, scope, state);
scope.traverse(node, visitor, state);
if (state.selfReference) {
// todo: support generators

View File

@@ -23,7 +23,7 @@ module.exports = function (node, callId, scope) {
node.async = false;
node.generator = true;
traverse(node, visitor, scope);
scope.traverse(node, visitor);
var call = t.callExpression(callId, [node]);
var id = node.id;

View File

@@ -167,7 +167,7 @@ var visitor = {
ReplaceSupers.prototype.traverseLevel = function (node, topLevel) {
var state = { self: this, topLevel: topLevel };
traverse(node, visitor, this.scope, state);
this.scope.traverse(node, visitor, state);
};
/**

View File

@@ -60,7 +60,7 @@ var exportsVisitor = {
};
DefaultFormatter.prototype.getLocalExports = function () {
traverse(this.file.ast, exportsVisitor, this.file.scope, this);
this.file.scope.traverse(this.file.ast, exportsVisitor, this);
};
var importsVisitor = {
@@ -74,7 +74,7 @@ var importsVisitor = {
};
DefaultFormatter.prototype.getLocalImports = function () {
traverse(this.file.ast, importsVisitor, this.file.scope, this);
this.file.scope.traverse(this.file.ast, importsVisitor, this);
};
var remapVisitor = {
@@ -116,7 +116,7 @@ var remapVisitor = {
DefaultFormatter.prototype.remapAssignments = function () {
if (this.hasLocalImports) {
traverse(this.file.ast, remapVisitor, this.file.scope, this);
this.file.scope.traverse(this.file.ast, remapVisitor, this);
}
};

View File

@@ -97,7 +97,7 @@ SystemFormatter.prototype.buildRunnerSetters = function (block, hoistDeclarators
hoistDeclarators: hoistDeclarators
};
traverse(block, runnerSettersVisitor, scope, state);
scope.traverse(block, runnerSettersVisitor, state);
return t.functionExpression(null, [uid], t.blockStatement(state.nodes));
}));
@@ -182,7 +182,7 @@ SystemFormatter.prototype.transform = function (ast) {
var returnStatement = handlerBody.pop();
// hoist up all variable declarations
traverse(block, hoistVariablesVisitor, this.file.scope, hoistDeclarators);
this.file.scope.traverse(block, hoistVariablesVisitor, hoistDeclarators);
if (hoistDeclarators.length) {
var hoistDeclar = t.variableDeclaration("var", hoistDeclarators);
@@ -191,7 +191,7 @@ SystemFormatter.prototype.transform = function (ast) {
}
// hoist up function declarations for circular references
traverse(block, hoistFunctionsVisitor, this.file.scope, handlerBody);
this.file.scope.traverse(block, hoistFunctionsVisitor, handlerBody);
handlerBody.push(returnStatement);

View File

@@ -89,7 +89,7 @@ TransformerPass.prototype.transform = function () {
this.astRun("before");
var state = { file: file, handlers: this.handlers, pass: this };
traverse(file.ast, transformVisitor, file.scope, state);
file.scope.traverse(file.ast, transformVisitor, state);
this.astRun("after");
};

View File

@@ -46,5 +46,5 @@ exports.BlockStatement = function (node, parent, scope, context, file) {
file: file
};
traverse(node, visitor, scope, state);
scope.traverse(node, visitor, state);
};

View File

@@ -130,7 +130,7 @@ var replaceVisitor = {
function traverseReplace(node, parent, scope, remaps) {
replace(node, parent, scope, null, remaps);
traverse(node, replaceVisitor, scope, remaps);
scope.traverse(node, replaceVisitor, remaps);
}
/**
@@ -176,7 +176,7 @@ BlockScoping.prototype.remap = function () {
traverseReplace(loopParent.update, loopParent, scope, remaps);
}
traverse(this.block, replaceVisitor, scope, remaps);
scope.traverse(this.block, replaceVisitor, remaps);
};
/**
@@ -243,7 +243,7 @@ var letReferenceFunctionVisitor = {
var letReferenceBlockVisitor = {
enter: function (node, parent, scope, context, state) {
if (t.isFunction(node)) {
traverse(node, letReferenceFunctionVisitor, scope, state);
scope.traverse(node, letReferenceFunctionVisitor, state);
return context.skip();
}
}
@@ -296,7 +296,7 @@ BlockScoping.prototype.getLetReferences = function () {
// traverse through this block, stopping on functions and checking if they
// contain any local let references
traverse(this.block, letReferenceBlockVisitor, this.scope, state);
this.scope.traverse(this.block, letReferenceBlockVisitor, state);
return state.closurify;
};
@@ -315,7 +315,7 @@ var loopVisitor = {
if (t.isLoop(node)) {
state.ignoreLabeless = true;
traverse(node, loopVisitor, scope, state);
scope.traverse(node, loopVisitor, state);
state.ignoreLabeless = false;
}
@@ -388,8 +388,8 @@ BlockScoping.prototype.checkLoop = function () {
map: {}
};
traverse(this.block, loopLabelVisitor, this.scope, state);
traverse(this.block, loopVisitor, this.scope, state);
this.scope.traverse(this.block, loopLabelVisitor, state);
this.scope.traverse(this.block, loopVisitor, state);
return state;
};

View File

@@ -37,7 +37,7 @@ var visitor = {
};
exports.Scope = function (node, parent, scope, context, file) {
traverse(node, visitor, scope, {
scope.traverse(node, visitor, {
constants: scope.getAllDeclarationsOfKind("const"),
file: file
});

View File

@@ -55,7 +55,7 @@ exports.Function = function (node, parent, scope) {
if (t.isIdentifier(right) && scope.hasOwnReference(right.name)) {
state.iife = true;
} else {
traverse(right, iifeVisitor, scope, state);
scope.traverse(right, iifeVisitor, state);
}
}

View File

@@ -37,7 +37,7 @@ var functionVisitor = {
}
// traverse all child nodes of this function and find `arguments` and `this`
traverse(node, functionChildrenVisitor, scope, state);
scope.traverse(node, functionChildrenVisitor, 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, functionVisitor, scope, state);
scope.traverse(node, functionVisitor, state);
var body;

View File

@@ -77,7 +77,7 @@ exports.ast = {
},
after: function (ast, file) {
traverse(ast, astVisitor, null, file);
file.scope.traverse(ast, astVisitor, file);
}
};

View File

@@ -39,5 +39,5 @@ exports.MethodDefinition = function (node, parent, scope, context, file) {
file: file
};
traverse(value, visitor, scope, state);
scope.traverse(value, visitor, state);
};

View File

@@ -308,7 +308,7 @@ Scope.prototype.crawl = function () {
// Program, BlockStatement - let variables
if (t.isBlockStatement(block) || t.isProgram(block)) {
traverse(block, blockVariableVisitor, this, this);
this.traverse(block, blockVariableVisitor, this);
}
// CatchClause - param
@@ -334,7 +334,7 @@ Scope.prototype.crawl = function () {
// Program, Function - var variables
if (t.isProgram(block) || t.isFunction(block)) {
traverse(block, functionVariableVisitor, this, {
this.traverse(block, functionVariableVisitor, {
blockId: block.id,
scope: this
});
@@ -351,7 +351,7 @@ Scope.prototype.crawl = function () {
// Program
if (t.isProgram(block)) {
traverse(block, programReferenceVisitor, this, this);
this.traverse(block, programReferenceVisitor, this);
}
};