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 () { 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;
} }
}); });