diff --git a/packages/babel-generator/src/node/parentheses.js b/packages/babel-generator/src/node/parentheses.js index 8213fdd92e36..8f7c137f5224 100644 --- a/packages/babel-generator/src/node/parentheses.js +++ b/packages/babel-generator/src/node/parentheses.js @@ -166,6 +166,7 @@ export function YieldExpression(node: Object, parent: Object): boolean { t.isCallExpression(parent) || t.isMemberExpression(parent) || t.isNewExpression(parent) || + (t.isAwaitExpression(parent) && t.isYieldExpression(node)) || (t.isConditionalExpression(parent) && node === parent.test) || isClassExtendsClause(node, parent) ); diff --git a/packages/babel-generator/test/fixtures/parentheses/yield-expression/input.js b/packages/babel-generator/test/fixtures/parentheses/yield-expression/input.js index b000b972b537..2d6b7957f17c 100644 --- a/packages/babel-generator/test/fixtures/parentheses/yield-expression/input.js +++ b/packages/babel-generator/test/fixtures/parentheses/yield-expression/input.js @@ -10,3 +10,7 @@ function* asdf() { function* a(b) { (yield xhr({ url: "views/test.html" })).data; } + +(async function* () { + await (yield 1); +}); diff --git a/packages/babel-generator/test/fixtures/parentheses/yield-expression/output.js b/packages/babel-generator/test/fixtures/parentheses/yield-expression/output.js index 28340375a453..e7c3bcd100df 100644 --- a/packages/babel-generator/test/fixtures/parentheses/yield-expression/output.js +++ b/packages/babel-generator/test/fixtures/parentheses/yield-expression/output.js @@ -11,4 +11,8 @@ function* a(b) { (yield xhr({ url: "views/test.html" })).data; -} \ No newline at end of file +} + +(async function* () { + await (yield 1); +});