From f8bc1d5d0455a91a079943a3282dd4571d952e88 Mon Sep 17 00:00:00 2001 From: Edward Faulkner Date: Wed, 27 May 2015 14:26:36 -0400 Subject: [PATCH] Support RestElement Closes #225 --- escodegen.js | 4 ++++ test/harmony.js | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/escodegen.js b/escodegen.js index 45b63289..3f1c330a 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 625cb5f1..68f94b32 100644 --- a/test/harmony.js +++ b/test/harmony.js @@ -1459,6 +1459,41 @@ data = { 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" + } + } + } + ] + } } },