support SpreadElement in destructuring - fixes #128

This commit is contained in:
Sebastian McKenzie
2014-11-07 20:46:02 +11:00
parent b3206d94a6
commit f8e8cd3979
3 changed files with 25 additions and 1 deletions

View File

@@ -40,7 +40,15 @@ var pushArrayPattern = function (kind, nodes, pattern, parentId) {
_.each(pattern.elements, function (elem, i) {
if (!elem) return;
var newPatternId = t.memberExpression(parentId, t.literal(i), true);
var newPatternId;
if (t.isSpreadElement(elem)) {
newPatternId = t.callExpression(t.memberExpression(parentId, t.identifier("slice")), [t.literal(i)]);
elem = elem.argument;
} else {
newPatternId = t.memberExpression(parentId, t.literal(i), true);
}
push(kind, nodes, elem, newPatternId);
});
};