From 276c98f7f0fcc7dae1fd8847a5a8dc185dd35b5d Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Sat, 19 Dec 2015 22:47:56 -0500 Subject: [PATCH 1/2] Remove await* from babel-generator, add parsing error to babylon - (fixes T6688) --- packages/babel-generator/src/generators/expressions.js | 2 +- .../test/fixtures/types/AwaitExpression/actual.js | 4 ---- .../test/fixtures/types/AwaitExpression/expected.js | 4 ---- packages/babel-plugin-transform-regenerator/src/visit.js | 2 +- packages/babylon/src/parser/expression.js | 5 ++++- .../fixtures/experimental/await/illegal-await-star/actual.js | 3 +++ .../experimental/await/illegal-await-star/options.json | 4 ++++ 7 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 packages/babylon/test/fixtures/experimental/await/illegal-await-star/actual.js create mode 100644 packages/babylon/test/fixtures/experimental/await/illegal-await-star/options.json diff --git a/packages/babel-generator/src/generators/expressions.js b/packages/babel-generator/src/generators/expressions.js index db021892af8c..b5d9ecb860aa 100644 --- a/packages/babel-generator/src/generators/expressions.js +++ b/packages/babel-generator/src/generators/expressions.js @@ -118,7 +118,7 @@ function buildYieldAwait(keyword: string) { return function (node: Object) { this.push(keyword); - if (node.delegate || node.all) { + if (node.delegate) { this.push("*"); } diff --git a/packages/babel-generator/test/fixtures/types/AwaitExpression/actual.js b/packages/babel-generator/test/fixtures/types/AwaitExpression/actual.js index 17bd494915eb..939e81e678f0 100644 --- a/packages/babel-generator/test/fixtures/types/AwaitExpression/actual.js +++ b/packages/babel-generator/test/fixtures/types/AwaitExpression/actual.js @@ -1,7 +1,3 @@ async function foo() { await bar(); } - -async function bar() { - await* foo(); -} diff --git a/packages/babel-generator/test/fixtures/types/AwaitExpression/expected.js b/packages/babel-generator/test/fixtures/types/AwaitExpression/expected.js index 17bd494915eb..939e81e678f0 100644 --- a/packages/babel-generator/test/fixtures/types/AwaitExpression/expected.js +++ b/packages/babel-generator/test/fixtures/types/AwaitExpression/expected.js @@ -1,7 +1,3 @@ async function foo() { await bar(); } - -async function bar() { - await* foo(); -} diff --git a/packages/babel-plugin-transform-regenerator/src/visit.js b/packages/babel-plugin-transform-regenerator/src/visit.js index 15e522ace19f..6d3448659d65 100644 --- a/packages/babel-plugin-transform-regenerator/src/visit.js +++ b/packages/babel-plugin-transform-regenerator/src/visit.js @@ -247,7 +247,7 @@ let awaitVisitor = { }, AwaitExpression: function(path) { - // Convert await and await* expressions to yield expressions. + // Convert await expressions to yield expressions. let argument = path.node.argument; // Transforming `await x` to `yield regeneratorRuntime.awrap(x)` diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index 64b7f1c18d59..82d0fd7f2e53 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -968,7 +968,10 @@ pp.parseAwait = function (node) { if (this.isLineTerminator()) { this.unexpected(); } - node.all = this.eat(tt.star); + node.all = false; + if (this.match(tt.star)) { + this.raise(node.start, "await* has been removed from the async functions proposal. Use Promise.all() instead.") + } node.argument = this.parseMaybeUnary(); return this.finishNode(node, "AwaitExpression"); }; diff --git a/packages/babylon/test/fixtures/experimental/await/illegal-await-star/actual.js b/packages/babylon/test/fixtures/experimental/await/illegal-await-star/actual.js new file mode 100644 index 000000000000..52f31ef5d1a8 --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/await/illegal-await-star/actual.js @@ -0,0 +1,3 @@ +async function bar() { + await* foo(); +} diff --git a/packages/babylon/test/fixtures/experimental/await/illegal-await-star/options.json b/packages/babylon/test/fixtures/experimental/await/illegal-await-star/options.json new file mode 100644 index 000000000000..85fdea96e968 --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/await/illegal-await-star/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["asyncFunctions"], + "throws": "await* has been removed from the async functions proposal. Use Promise.all() instead. (2:2)" +} From 0037cf6b34f8e1049bcf2874008aa96027d59475 Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Wed, 23 Dec 2015 00:02:02 -0500 Subject: [PATCH 2/2] remove all property, fixup tests --- packages/babylon/src/parser/expression.js | 1 - .../experimental/async-generators/class-method/expected.json | 3 +-- .../experimental/async-generators/object-method/expected.json | 3 +-- .../test/fixtures/experimental/uncategorised/18/expected.json | 3 +-- .../test/fixtures/experimental/uncategorised/19/expected.json | 3 +-- .../test/fixtures/experimental/uncategorised/20/expected.json | 3 +-- .../test/fixtures/experimental/uncategorised/21/expected.json | 3 +-- .../test/fixtures/experimental/uncategorised/22/expected.json | 3 +-- .../test/fixtures/experimental/uncategorised/23/expected.json | 3 +-- .../test/fixtures/experimental/uncategorised/25/expected.json | 3 +-- 10 files changed, 9 insertions(+), 19 deletions(-) diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index 82d0fd7f2e53..0bf5ad079d19 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -968,7 +968,6 @@ pp.parseAwait = function (node) { if (this.isLineTerminator()) { this.unexpected(); } - node.all = false; if (this.match(tt.star)) { this.raise(node.start, "await* has been removed from the async functions proposal. Use Promise.all() instead.") } diff --git a/packages/babylon/test/fixtures/experimental/async-generators/class-method/expected.json b/packages/babylon/test/fixtures/experimental/async-generators/class-method/expected.json index cf205e9395de..f1a8cb05c148 100644 --- a/packages/babylon/test/fixtures/experimental/async-generators/class-method/expected.json +++ b/packages/babylon/test/fixtures/experimental/async-generators/class-method/expected.json @@ -282,7 +282,6 @@ "column": 38 } }, - "all": false, "argument": { "type": "CallExpression", "start": 97, @@ -380,4 +379,4 @@ ], "directives": [] } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/async-generators/object-method/expected.json b/packages/babylon/test/fixtures/experimental/async-generators/object-method/expected.json index 75c555d271a6..5a25c2ce85e9 100644 --- a/packages/babylon/test/fixtures/experimental/async-generators/object-method/expected.json +++ b/packages/babylon/test/fixtures/experimental/async-generators/object-method/expected.json @@ -297,7 +297,6 @@ "column": 38 } }, - "all": false, "argument": { "type": "CallExpression", "start": 99, @@ -398,4 +397,4 @@ ], "directives": [] } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/18/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/18/expected.json index 556ab1b1c3c6..1624ec005011 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/18/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/18/expected.json @@ -122,7 +122,6 @@ "column": 43 } }, - "all": false, "argument": { "type": "Identifier", "start": 36, @@ -146,4 +145,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/19/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/19/expected.json index eb899c91ea0b..7656d8bdf0bb 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/19/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/19/expected.json @@ -170,7 +170,6 @@ "column": 47 } }, - "all": false, "argument": { "type": "Identifier", "start": 46, @@ -204,4 +203,4 @@ ], "directives": [] } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/20/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/20/expected.json index 4a03ca9df07d..236d7969c2be 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/20/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/20/expected.json @@ -152,7 +152,6 @@ "column": 49 } }, - "all": false, "argument": { "type": "Identifier", "start": 42, @@ -180,4 +179,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json index 1319a5f9a593..3e9c3b46082a 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json @@ -241,7 +241,6 @@ "column": 50 } }, - "all": false, "argument": { "type": "Identifier", "start": 43, @@ -273,4 +272,4 @@ ], "directives": [] } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/22/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/22/expected.json index a0fd07d5125f..b845c0fb2231 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/22/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/22/expected.json @@ -172,7 +172,6 @@ "column": 46 } }, - "all": false, "argument": { "type": "Identifier", "start": 39, @@ -201,4 +200,4 @@ ], "directives": [] } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/23/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/23/expected.json index 605c1f789f00..e84017c8707a 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/23/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/23/expected.json @@ -139,7 +139,6 @@ "column": 35 } }, - "all": false, "argument": { "type": "Identifier", "start": 28, @@ -163,4 +162,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/25/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/25/expected.json index b194ce1ae85f..44b482a1e8d7 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/25/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/25/expected.json @@ -152,7 +152,6 @@ "column": 41 } }, - "all": false, "argument": { "type": "Identifier", "start": 34, @@ -179,4 +178,4 @@ } ] } -} \ No newline at end of file +}