Parenthesize `new F(await a)` and `x[await a]` correctly (#1513)
parent
ccf509abb6
commit
e290514a9e
|
@ -395,10 +395,12 @@ FPp.needsParens = function() {
|
|||
case "LogicalExpression":
|
||||
case "SpreadElement":
|
||||
case "SpreadProperty":
|
||||
case "NewExpression":
|
||||
case "MemberExpression":
|
||||
return true;
|
||||
|
||||
case "MemberExpression":
|
||||
return parent.object === node;
|
||||
|
||||
case "NewExpression":
|
||||
case "CallExpression":
|
||||
return parent.callee === node;
|
||||
|
||||
|
|
|
@ -13,6 +13,10 @@ function *f(){
|
|||
async function f() {
|
||||
a = !(await f());
|
||||
}
|
||||
async () => {
|
||||
new A(await x);
|
||||
obj[await x];
|
||||
}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
async function f() {
|
||||
(await f()).length;
|
||||
|
@ -26,6 +30,10 @@ function* f() {
|
|||
async function f() {
|
||||
a = !await f();
|
||||
}
|
||||
async () => {
|
||||
new A(await x);
|
||||
obj[await x];
|
||||
};
|
||||
|
||||
`;
|
||||
|
||||
|
|
|
@ -10,3 +10,7 @@ function *f(){
|
|||
async function f() {
|
||||
a = !(await f());
|
||||
}
|
||||
async () => {
|
||||
new A(await x);
|
||||
obj[await x];
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue