update Scope arguments

This commit is contained in:
Sebastian McKenzie 2014-11-20 21:09:38 +11:00
parent 71ad511322
commit a90f133918
2 changed files with 11 additions and 6 deletions

View File

@ -55,7 +55,7 @@ function traverse(parent, callbacks, opts) {
// //
var opts2 = { scope: opts.scope, blacklist: opts.blacklist }; var opts2 = { scope: opts.scope, blacklist: opts.blacklist };
if (t.isScope(node)) opts2.scope = new Scope(opts.scope, node); if (t.isScope(node)) opts2.scope = new Scope(node, opts.scope);
// enter // enter
if (callbacks.enter) { if (callbacks.enter) {
@ -89,9 +89,10 @@ function traverse(parent, callbacks, opts) {
traverse.removeProperties = function (tree) { traverse.removeProperties = function (tree) {
var clear = function (node) { var clear = function (node) {
delete node._scopeReferences;
delete node.extendedRange; delete node.extendedRange;
delete node._scopeIds;
delete node._parent; delete node._parent;
delete node._scope;
delete node.tokens; delete node.tokens;
delete node.range; delete node.range;
delete node.start; delete node.start;

View File

@ -10,11 +10,15 @@ var FOR_KEYS = ["left", "init"];
* This searches the current "scope" and collects all references/declarations * This searches the current "scope" and collects all references/declarations
* within. * within.
* *
* @param {Scope} [parent]
* @param {Node} block * @param {Node} block
* @param {Scope} [parent]
*/ */
function Scope(parent, block) { function Scope(block, parent) {
if (!parent && block._parent) {
parent = block._parent._scope;
}
this.parent = parent; this.parent = parent;
this.block = block; this.block = block;
@ -23,10 +27,10 @@ function Scope(parent, block) {
Scope.prototype.getReferences = function () { Scope.prototype.getReferences = function () {
var block = this.block; var block = this.block;
if (block._scope) return block._scope; if (block._scopeReferences) return block._scopeReferences;
var self = this; var self = this;
var references = block._scope = {}; var references = block._scopeReferences = {};
var add = function (node) { var add = function (node) {
self.add(node, references); self.add(node, references);