Merge pull request #3158 from babel/paren-object
Parenthesize object expression when it may end up at the start of an expression
This commit is contained in:
commit
4e82edb6d0
@ -55,6 +55,13 @@ export function ObjectExpression(node: Object, parent: Object): boolean {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((t.isBinaryExpression(parent) || t.isLogicalExpression(parent)) && parent.left === node) {
|
||||
// We'd need to check that the parent's parent is an ExpressionStatement. But this
|
||||
// code doesn't make any sense to begin with and should be rare.
|
||||
// `({}) === foo`
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
2
packages/babel-generator/test/fixtures/parentheses/object/actual.js
vendored
Normal file
2
packages/babel-generator/test/fixtures/parentheses/object/actual.js
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
({}) === foo;
|
||||
({}) && foo;
|
||||
2
packages/babel-generator/test/fixtures/parentheses/object/expected.js
vendored
Normal file
2
packages/babel-generator/test/fixtures/parentheses/object/expected.js
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
({}) === foo;
|
||||
({}) && foo;
|
||||
Loading…
x
Reference in New Issue
Block a user