From 6834cc5b468f4f76f0f03c2f103c5535e0a2b93f Mon Sep 17 00:00:00 2001 From: Amjad Masad Date: Fri, 8 May 2015 19:12:10 -0700 Subject: [PATCH 1/2] Add failing tests for trailing commas in new expressions --- .../es7.trailing-function-commas/new-expression/actual.js | 1 + .../es7.trailing-function-commas/new-expression/expected.js | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 test/core/fixtures/transformation/es7.trailing-function-commas/new-expression/actual.js create mode 100644 test/core/fixtures/transformation/es7.trailing-function-commas/new-expression/expected.js diff --git a/test/core/fixtures/transformation/es7.trailing-function-commas/new-expression/actual.js b/test/core/fixtures/transformation/es7.trailing-function-commas/new-expression/actual.js new file mode 100644 index 0000000000..8b6de60f82 --- /dev/null +++ b/test/core/fixtures/transformation/es7.trailing-function-commas/new-expression/actual.js @@ -0,0 +1 @@ +new Foo(a, b,); diff --git a/test/core/fixtures/transformation/es7.trailing-function-commas/new-expression/expected.js b/test/core/fixtures/transformation/es7.trailing-function-commas/new-expression/expected.js new file mode 100644 index 0000000000..70e032ca1c --- /dev/null +++ b/test/core/fixtures/transformation/es7.trailing-function-commas/new-expression/expected.js @@ -0,0 +1,3 @@ +"use strict"; + +new Foo(a, b); From 6d2723eec504c5a2572977c1333f74b144bb3d31 Mon Sep 17 00:00:00 2001 From: Amjad Masad Date: Fri, 8 May 2015 19:12:53 -0700 Subject: [PATCH 2/2] New expressions is allowed to have trailing commas in es7 proposal --- src/acorn/src/expression.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/acorn/src/expression.js b/src/acorn/src/expression.js index 3540956fe3..6b8e842e8d 100755 --- a/src/acorn/src/expression.js +++ b/src/acorn/src/expression.js @@ -474,7 +474,10 @@ pp.parseNew = function() { } let start = this.markPosition() node.callee = this.parseSubscripts(this.parseExprAtom(), start, true) - if (this.eat(tt.parenL)) node.arguments = this.parseExprList(tt.parenR, false) + if (this.eat(tt.parenL)) node.arguments = this.parseExprList( + tt.parenR, + this.options.features["es7.trailingFunctionCommas"] + ) else node.arguments = empty return this.finishNode(node, "NewExpression") }