From 3d987ed6c03c271c995d79b860b4627747e2a24b Mon Sep 17 00:00:00 2001 From: Aaron Ang Date: Thu, 9 Mar 2017 06:13:53 -0800 Subject: [PATCH] Keep parentheses for logical expression when in await expression (fix #5428) (#5433) --- packages/babel-generator/src/node/parentheses.js | 3 ++- .../test/fixtures/parentheses/await-expression/actual.js | 1 + .../test/fixtures/parentheses/await-expression/expected.js | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/babel-generator/src/node/parentheses.js b/packages/babel-generator/src/node/parentheses.js index 0175a6312d..79ef9b448c 100644 --- a/packages/babel-generator/src/node/parentheses.js +++ b/packages/babel-generator/src/node/parentheses.js @@ -50,7 +50,8 @@ export function Binary(node: Object, parent: Object): boolean { if ( ((t.isCallExpression(parent) || t.isNewExpression(parent)) && parent.callee === node) || t.isUnaryLike(parent) || - (t.isMemberExpression(parent) && parent.object === node) + (t.isMemberExpression(parent) && parent.object === node) || + t.isAwaitExpression(parent) ) { return true; } 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 d4bdc6b74a..8289263007 100644 --- a/packages/babel-generator/test/fixtures/parentheses/await-expression/actual.js +++ b/packages/babel-generator/test/fixtures/parentheses/await-expression/actual.js @@ -5,6 +5,7 @@ async function asdf() { true ? (await 1) : (await 2); await (1 ? 2 : 3); await (await 1); + await (a || b); } async function a(b) { 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 dc2cb361e0..271a15791e 100644 --- a/packages/babel-generator/test/fixtures/parentheses/await-expression/expected.js +++ b/packages/babel-generator/test/fixtures/parentheses/await-expression/expected.js @@ -5,6 +5,7 @@ async function asdf() { true ? await 1 : await 2; await (1 ? 2 : 3); await await 1; + await (a || b); } async function a(b) {