diff --git a/lib/6to5/generation/generators/expressions.js b/lib/6to5/generation/generators/expressions.js index 962f7d6389..2f1a2adb5b 100644 --- a/lib/6to5/generation/generators/expressions.js +++ b/lib/6to5/generation/generators/expressions.js @@ -87,7 +87,11 @@ exports.CallExpression = function (node, print) { var buildYieldAwait = function (keyword) { return function (node, print) { this.push(keyword); - if (node.delegate) this.push("*"); + + if (node.delegate || node.all) { + this.push("*"); + } + if (node.argument) { this.space(); print(node.argument); diff --git a/lib/6to5/transformation/helpers/remap-async-to-generator.js b/lib/6to5/transformation/helpers/remap-async-to-generator.js index 39541cc0d5..059d30639c 100644 --- a/lib/6to5/transformation/helpers/remap-async-to-generator.js +++ b/lib/6to5/transformation/helpers/remap-async-to-generator.js @@ -9,6 +9,12 @@ var visitor = { if (t.isAwaitExpression(node)) { node.type = "YieldExpression"; + + if (node.all) { + // await* foo; -> yield Promise.all(foo); + node.all = false; + node.argument = t.callExpression(t.memberExpression(t.identifier("Promise"), t.identifier("all")), [node.argument]); + } } } };