From ab2135bc9f8b2e40588a6a41e44d0e81a1571d96 Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Mon, 4 Jan 2016 08:29:12 -0500 Subject: [PATCH] Add a check for parentheses for AwaitExpressions (fixes T6913) --- packages/babel-generator/src/node/parentheses.js | 10 ++++++++++ .../fixtures/parentheses/await-expression/actual.js | 11 +++++++++++ .../fixtures/parentheses/await-expression/expected.js | 11 +++++++++++ 3 files changed, 32 insertions(+) create mode 100644 packages/babel-generator/test/fixtures/parentheses/await-expression/actual.js create mode 100644 packages/babel-generator/test/fixtures/parentheses/await-expression/expected.js diff --git a/packages/babel-generator/src/node/parentheses.js b/packages/babel-generator/src/node/parentheses.js index e29411e65c..16e5b4d11e 100644 --- a/packages/babel-generator/src/node/parentheses.js +++ b/packages/babel-generator/src/node/parentheses.js @@ -144,6 +144,16 @@ export function SequenceExpression(node: Object, parent: Object): boolean { return true; } +export function AwaitExpression(node: Object, parent: Object): boolean { + return t.isBinary(parent) || + t.isUnaryLike(parent) || + t.isCallExpression(parent) || + t.isMemberExpression(parent) || + t.isNewExpression(parent) || + t.isConditionalExpression(parent) || + t.isAwaitExpression(parent); +} + export function YieldExpression(node: Object, parent: Object): boolean { return t.isBinary(parent) || t.isUnaryLike(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 new file mode 100644 index 0000000000..6ac1480c55 --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/await-expression/actual.js @@ -0,0 +1,11 @@ +async function asdf() { + (await 1) || (await 2); + (await b)(); + new (await b)(); + true ? (await 1) : (await 2); + await (await 1); +} + +async function a(b) { + (await xhr({ url: "views/test.html" })).data; +} diff --git a/packages/babel-generator/test/fixtures/parentheses/await-expression/expected.js b/packages/babel-generator/test/fixtures/parentheses/await-expression/expected.js new file mode 100644 index 0000000000..6ac1480c55 --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/await-expression/expected.js @@ -0,0 +1,11 @@ +async function asdf() { + (await 1) || (await 2); + (await b)(); + new (await b)(); + true ? (await 1) : (await 2); + await (await 1); +} + +async function a(b) { + (await xhr({ url: "views/test.html" })).data; +}