simplify parentheses logic and properly parenthesise unaries - fixes #2711
This commit is contained in:
parent
1e725f4806
commit
cdeff2fbb1
@ -154,7 +154,15 @@ export function ClassExpression(node: Object, parent: Object): boolean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function UnaryLike(node: Object, parent: Object): boolean {
|
export function UnaryLike(node: Object, parent: Object): boolean {
|
||||||
return t.isMemberExpression(parent) && parent.object === node;
|
if (t.isMemberExpression(parent, { object: node })) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (t.isCallExpression(parent, { callee: node }) || t.isNewExpression(parent, { callee: node })) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function FunctionExpression(node: Object, parent: Object): boolean {
|
export function FunctionExpression(node: Object, parent: Object): boolean {
|
||||||
@ -172,17 +180,7 @@ export function ArrowFunctionExpression(node: Object, parent: Object): boolean {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// (function test() {}).name;
|
return UnaryLike(node, parent);
|
||||||
if (t.isMemberExpression(parent) && parent.object === node) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// (function () {})();
|
|
||||||
if (t.isCallExpression(parent) && parent.callee === node) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function ConditionalExpression(node: Object, parent: Object): boolean {
|
export function ConditionalExpression(node: Object, parent: Object): boolean {
|
||||||
@ -194,21 +192,11 @@ export function ConditionalExpression(node: Object, parent: Object): boolean {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t.isCallExpression(parent) || t.isNewExpression(parent)) {
|
if (t.isConditionalExpression(parent, { test: node })) {
|
||||||
if (parent.callee === node) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (t.isConditionalExpression(parent) && parent.test === node) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t.isMemberExpression(parent) && parent.object === node) {
|
return UnaryLike(node, parent);
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function AssignmentExpression(node: Object): boolean {
|
export function AssignmentExpression(node: Object): boolean {
|
||||||
|
|||||||
@ -3,3 +3,5 @@ delete delete i;
|
|||||||
!!i;
|
!!i;
|
||||||
+ ++i;
|
+ ++i;
|
||||||
- --i;
|
- --i;
|
||||||
|
typeof a();
|
||||||
|
(typeof a)();
|
||||||
|
|||||||
@ -3,3 +3,5 @@ delete delete i;
|
|||||||
!!i;
|
!!i;
|
||||||
+ ++i;
|
+ ++i;
|
||||||
- --i;
|
- --i;
|
||||||
|
typeof a();
|
||||||
|
(typeof a)();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user