A little refactoring. Add a new function to get all symbols in a destructuring.
This commit is contained in:
committed by
Richard van Velzen
parent
ceebc466b9
commit
824ecfb8a2
26
lib/ast.js
26
lib/ast.js
@@ -445,15 +445,13 @@ var AST_Lambda = DEFNODE("Lambda", "name argnames uses_arguments", {
|
|||||||
},
|
},
|
||||||
args_as_names: function () {
|
args_as_names: function () {
|
||||||
var out = [];
|
var out = [];
|
||||||
this.walk(new TreeWalker(function (parm) {
|
for (var i = 0; i < this.argnames.length; i++) {
|
||||||
var that = this;
|
if (this.argnames[i] instanceof AST_Destructuring) {
|
||||||
if (parm instanceof AST_SymbolFunarg) {
|
out = out.concat(this.argnames[i].all_symbols());
|
||||||
out.push(parm);
|
} else {
|
||||||
|
out.push(this.argnames[i]);
|
||||||
}
|
}
|
||||||
if (parm instanceof AST_Expansion) {
|
}
|
||||||
out.push(parm.symbol);
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
return out;
|
return out;
|
||||||
},
|
},
|
||||||
_walk: function(visitor) {
|
_walk: function(visitor) {
|
||||||
@@ -492,6 +490,18 @@ var AST_Destructuring = DEFNODE("Destructuring", "names is_array", {
|
|||||||
name._walk(visitor);
|
name._walk(visitor);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
all_symbols: function() {
|
||||||
|
var out = [];
|
||||||
|
this.walk(new TreeWalker(function (node) {
|
||||||
|
if (node instanceof AST_Symbol) {
|
||||||
|
out.push(node);
|
||||||
|
}
|
||||||
|
if (node instanceof AST_Expansion) {
|
||||||
|
out.push(node.symbol);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
return out;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user