diff --git a/packages/babel-generator/src/node/parentheses.js b/packages/babel-generator/src/node/parentheses.js index 4da106ce99..558bceb14c 100644 --- a/packages/babel-generator/src/node/parentheses.js +++ b/packages/babel-generator/src/node/parentheses.js @@ -197,6 +197,10 @@ export function ConditionalExpression(node: Object, parent: Object): boolean { return true; } + if (t.isAwaitExpression(parent)) { + return true; + } + return UnaryLike(node, parent); } diff --git a/packages/babel-generator/test/fixtures/parentheses/await-expression/actual.js b/packages/babel-generator/test/fixtures/parentheses/await-expression/actual.js index 6ac1480c55..d4bdc6b74a 100644 --- a/packages/babel-generator/test/fixtures/parentheses/await-expression/actual.js +++ b/packages/babel-generator/test/fixtures/parentheses/await-expression/actual.js @@ -3,6 +3,7 @@ async function asdf() { (await b)(); new (await b)(); true ? (await 1) : (await 2); + await (1 ? 2 : 3); await (await 1); } diff --git a/packages/babel-generator/test/fixtures/parentheses/await-expression/expected.js b/packages/babel-generator/test/fixtures/parentheses/await-expression/expected.js index a5ec177acd..dc2cb361e0 100644 --- a/packages/babel-generator/test/fixtures/parentheses/await-expression/expected.js +++ b/packages/babel-generator/test/fixtures/parentheses/await-expression/expected.js @@ -3,6 +3,7 @@ async function asdf() { (await b)(); new (await b)(); true ? await 1 : await 2; + await (1 ? 2 : 3); await await 1; } diff --git a/packages/babel-generator/test/fixtures/parentheses/yield-expression/actual.js b/packages/babel-generator/test/fixtures/parentheses/yield-expression/actual.js index 97ef823d3c..b000b972b5 100644 --- a/packages/babel-generator/test/fixtures/parentheses/yield-expression/actual.js +++ b/packages/babel-generator/test/fixtures/parentheses/yield-expression/actual.js @@ -3,6 +3,7 @@ function* asdf() { (yield b)(); new (yield b)(); (yield 1) ? (yield 2) : (yield 3); + yield (1 ? 2 : 3); yield (yield 1); } diff --git a/packages/babel-generator/test/fixtures/parentheses/yield-expression/expected.js b/packages/babel-generator/test/fixtures/parentheses/yield-expression/expected.js index cbc86c5c5c..68c2e6b123 100644 --- a/packages/babel-generator/test/fixtures/parentheses/yield-expression/expected.js +++ b/packages/babel-generator/test/fixtures/parentheses/yield-expression/expected.js @@ -3,6 +3,7 @@ function* asdf() { (yield b)(); new (yield b)(); (yield 1) ? yield 2 : yield 3; + yield 1 ? 2 : 3; yield yield 1; }