Support RestElement
Closes #225
diff --git a/escodegen.js b/escodegen.js
index 45b6328..3f1c330 100644
--- a/escodegen.js
+++ b/escodegen.js
@@ -2062,6 +2062,10 @@
return result;
},
+ RestElement: function(expr, precedence, flags) {
+ return '...' + generateIdentifier(expr.argument);
+ },
+
ClassExpression: function (expr, precedence, flags) {
var result, fragment;
result = ['class'];
diff --git a/test/harmony.js b/test/harmony.js
index 625cb5f..68f94b3 100644
--- a/test/harmony.js
+++ b/test/harmony.js
@@ -1459,6 +1459,41 @@
expression: false
}]
}
+ },
+
+ '[\n x,\n ...y\n] = list;': {
+ generateFrom: {
+ "type": "Program",
+ "body": [
+ {
+ "type": "ExpressionStatement",
+ "expression": {
+ "type": "AssignmentExpression",
+ "operator": "=",
+ "left": {
+ "type": "ArrayPattern",
+ "elements": [
+ {
+ "type": "Identifier",
+ "name": "x"
+ },
+ {
+ "type": "RestElement",
+ "argument": {
+ "type": "Identifier",
+ "name": "y"
+ }
+ }
+ ]
+ },
+ "right": {
+ "type": "Identifier",
+ "name": "list"
+ }
+ }
+ }
+ ]
+ }
}
},