A little refactoring. Add a new function to get all symbols in a destructuring.

This commit is contained in:
Fábio Santos
2015-08-13 02:58:08 +01:00
committed by Richard van Velzen
parent ceebc466b9
commit 824ecfb8a2

View File

@@ -445,15 +445,13 @@ var AST_Lambda = DEFNODE("Lambda", "name argnames uses_arguments", {
},
args_as_names: function () {
var out = [];
this.walk(new TreeWalker(function (parm) {
var that = this;
if (parm instanceof AST_SymbolFunarg) {
out.push(parm);
for (var i = 0; i < this.argnames.length; i++) {
if (this.argnames[i] instanceof AST_Destructuring) {
out = out.concat(this.argnames[i].all_symbols());
} else {
out.push(this.argnames[i]);
}
if (parm instanceof AST_Expansion) {
out.push(parm.symbol);
}
}));
}
return out;
},
_walk: function(visitor) {
@@ -492,6 +490,18 @@ var AST_Destructuring = DEFNODE("Destructuring", "names is_array", {
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;
}
});