From b78fc9b4d0080babaa04eff9f56ce78cfaccf55b Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Sun, 12 Mar 2017 21:40:38 -0400 Subject: [PATCH] Keep parentheses for logical expression when in await expression (fix #5428) (#5433) (#5453) --- 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 5cf16c2324..f2ba48d320 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) {