Wrap awaits in unary expressions (#4315)

master
Zach Gawlik 2018-04-14 15:27:18 -04:00 committed by Jed Fox
parent 1f84880fb1
commit 0a22f5ec15
4 changed files with 7 additions and 6 deletions

View File

@ -317,6 +317,7 @@ function needsParens(path, options) {
case "AwaitExpression": case "AwaitExpression":
switch (parent.type) { switch (parent.type) {
case "TaggedTemplateExpression": case "TaggedTemplateExpression":
case "UnaryExpression":
case "BinaryExpression": case "BinaryExpression":
case "LogicalExpression": case "LogicalExpression":
case "SpreadElement": case "SpreadElement":

View File

@ -35,7 +35,7 @@ function *f(){
!(yield a); !(yield a);
} }
async function f() { async function f() {
a = !(await f()); a = !await f();
} }
async () => { async () => {
new A(await x); new A(await x);
@ -52,7 +52,7 @@ function* f() {
!(yield a); !(yield a);
} }
async function f() { async function f() {
a = !await f(); a = !(await f());
} }
async () => { async () => {
new A(await x); new A(await x);

View File

@ -8,7 +8,7 @@ function *f(){
!(yield a); !(yield a);
} }
async function f() { async function f() {
a = !(await f()); a = !await f();
} }
async () => { async () => {
new A(await x); new A(await x);

View File

@ -53,9 +53,9 @@ async function f() {
// @target: es6 // @target: es6
async function f() { async function f() {
<number>await 0; <number>await 0;
typeof await 0; typeof (await 0);
void await 0; void (await 0);
await void (<string>typeof (<number>void await 0)); await void (<string>typeof (<number>void (await 0)));
await await 0; await await 0;
} }