Fix await parenthesis (#185)

This is the first time I'm adding something inside of fast-path so I'm not sure if it's correct, but it seems more correct than before!

Fixes #164
master
Christopher Chedeau 2017-01-14 20:12:17 -08:00 committed by James Long
parent 60c0b52fed
commit 281417ac1d
3 changed files with 26 additions and 3 deletions

View File

@ -289,6 +289,7 @@ FPp.needsParens = function(assumeExpressionContext) {
return true;
}
case "AwaitExpression":
case "YieldExpression":
switch (parent.type) {
case "BinaryExpression":
@ -296,13 +297,14 @@ FPp.needsParens = function(assumeExpressionContext) {
case "UnaryExpression":
case "SpreadElement":
case "SpreadProperty":
case "CallExpression":
case "MemberExpression":
case "NewExpression":
case "ConditionalExpression":
case "YieldExpression":
case "MemberExpression":
return true;
case "CallExpression":
return parent.callee === node;
default:
return false;
}

View File

@ -459,6 +459,13 @@ console.log(x.await);
var await = 3;
var y = { await };
async function f() { (await f()).length }
async function g() {
invariant(
(await driver.navigator.getUrl()).substr(-7)
);
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
async function f() {
await 1;
@ -514,5 +521,12 @@ console.log(x.await);
var await = 3;
var y = { await };
async function f() {
(await f()).length;
}
async function g() {
invariant((await driver.navigator.getUrl()).substr(-7));
}
"
`;

View File

@ -22,3 +22,10 @@ console.log(x.await);
var await = 3;
var y = { await };
async function f() { (await f()).length }
async function g() {
invariant(
(await driver.navigator.getUrl()).substr(-7)
);
}