diff --git a/packages/babel-generator/src/node/parentheses.js b/packages/babel-generator/src/node/parentheses.js index d4c8e335c2..199252d96e 100644 --- a/packages/babel-generator/src/node/parentheses.js +++ b/packages/babel-generator/src/node/parentheses.js @@ -142,7 +142,9 @@ export function YieldExpression(node: Object, parent: Object): boolean { t.isUnaryLike(parent) || t.isCallExpression(parent) || t.isMemberExpression(parent) || - t.isNewExpression(parent); + t.isNewExpression(parent) || + (t.isConditionalExpression(parent) && node === parent.test); + } export { YieldExpression as AwaitExpression }; 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 ea61f3583c..97ef823d3c 100644 --- a/packages/babel-generator/test/fixtures/parentheses/yield-expression/actual.js +++ b/packages/babel-generator/test/fixtures/parentheses/yield-expression/actual.js @@ -2,7 +2,7 @@ function* asdf() { (yield 1) || (yield 2); (yield b)(); new (yield b)(); - true ? (yield 1) : (yield 2); + (yield 1) ? (yield 2) : (yield 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 9d5aab1a3a..cbc86c5c5c 100644 --- a/packages/babel-generator/test/fixtures/parentheses/yield-expression/expected.js +++ b/packages/babel-generator/test/fixtures/parentheses/yield-expression/expected.js @@ -2,7 +2,7 @@ function* asdf() { (yield 1) || (yield 2); (yield b)(); new (yield b)(); - true ? yield 1 : yield 2; + (yield 1) ? yield 2 : yield 3; yield yield 1; }