Fix parens issues with exponentiation in generator (#5830)
This commit is contained in:
parent
f1303aa54c
commit
cce83a0cea
@ -47,6 +47,13 @@ export function DoExpression(node: Object, parent: Object, printStack: Array<Obj
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function Binary(node: Object, parent: Object): boolean {
|
export function Binary(node: Object, parent: Object): boolean {
|
||||||
|
if (
|
||||||
|
node.operator === "**" &&
|
||||||
|
t.isBinaryExpression(parent, { operator: "**" })
|
||||||
|
) {
|
||||||
|
return parent.left === node;
|
||||||
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
((t.isCallExpression(parent) || t.isNewExpression(parent)) && parent.callee === node) ||
|
((t.isCallExpression(parent) || t.isNewExpression(parent)) && parent.callee === node) ||
|
||||||
t.isUnaryLike(parent) ||
|
t.isUnaryLike(parent) ||
|
||||||
@ -124,7 +131,8 @@ export function ClassExpression(node: Object, parent: Object, printStack: Array<
|
|||||||
export function UnaryLike(node: Object, parent: Object): boolean {
|
export function UnaryLike(node: Object, parent: Object): boolean {
|
||||||
return t.isMemberExpression(parent, { object: node }) ||
|
return t.isMemberExpression(parent, { object: node }) ||
|
||||||
t.isCallExpression(parent, { callee: node }) ||
|
t.isCallExpression(parent, { callee: node }) ||
|
||||||
t.isNewExpression(parent, { callee: node });
|
t.isNewExpression(parent, { callee: node }) ||
|
||||||
|
t.isBinaryExpression(parent, { operator: "**", left: node });
|
||||||
}
|
}
|
||||||
|
|
||||||
export function FunctionExpression(node: Object, parent: Object, printStack: Array<Object>): boolean {
|
export function FunctionExpression(node: Object, parent: Object, printStack: Array<Object>): boolean {
|
||||||
|
|||||||
9
packages/babel-generator/test/fixtures/parentheses/exponentiation/actual.js
vendored
Normal file
9
packages/babel-generator/test/fixtures/parentheses/exponentiation/actual.js
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Math.sqrt(3**2 + (-5)**2);
|
||||||
|
a ** b ** c;
|
||||||
|
(a ** b) ** c;
|
||||||
|
a.b ** c;
|
||||||
|
(-a) ** b;
|
||||||
|
a ** -b;
|
||||||
|
-(a**b);
|
||||||
|
(a * b) ** c;
|
||||||
|
a ** (b * c);
|
||||||
9
packages/babel-generator/test/fixtures/parentheses/exponentiation/expected.js
vendored
Normal file
9
packages/babel-generator/test/fixtures/parentheses/exponentiation/expected.js
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Math.sqrt(3 ** 2 + (-5) ** 2);
|
||||||
|
a ** b ** c;
|
||||||
|
(a ** b) ** c;
|
||||||
|
a.b ** c;
|
||||||
|
(-a) ** b;
|
||||||
|
a ** -b;
|
||||||
|
-(a ** b);
|
||||||
|
(a * b) ** c;
|
||||||
|
a ** (b * c);
|
||||||
Loading…
x
Reference in New Issue
Block a user