polish: align optional chain whitespace behavior to their sibiling (#11328)
This commit is contained in:
parent
025e4ae44c
commit
8e7ef30968
@ -14,13 +14,13 @@ type WhitespaceObject = {
|
||||
*/
|
||||
|
||||
function crawl(node, state = {}) {
|
||||
if (t.isMemberExpression(node)) {
|
||||
if (t.isMemberExpression(node) || t.isOptionalMemberExpression(node)) {
|
||||
crawl(node.object, state);
|
||||
if (node.computed) crawl(node.property, state);
|
||||
} else if (t.isBinary(node) || t.isAssignmentExpression(node)) {
|
||||
crawl(node.left, state);
|
||||
crawl(node.right, state);
|
||||
} else if (t.isCallExpression(node)) {
|
||||
} else if (t.isCallExpression(node) || t.isOptionalCallExpression(node)) {
|
||||
state.hasCall = true;
|
||||
crawl(node.callee, state);
|
||||
} else if (t.isFunction(node)) {
|
||||
@ -119,7 +119,7 @@ export const nodes = {
|
||||
},
|
||||
|
||||
/**
|
||||
* Test if CallExpression needs whitespace.
|
||||
* Test if CallExpressionish needs whitespace.
|
||||
*/
|
||||
|
||||
CallExpression(node: Object): ?WhitespaceObject {
|
||||
@ -131,6 +131,15 @@ export const nodes = {
|
||||
}
|
||||
},
|
||||
|
||||
OptionalCallExpression(node: Object): ?WhitespaceObject {
|
||||
if (t.isFunction(node.callee)) {
|
||||
return {
|
||||
before: true,
|
||||
after: true,
|
||||
};
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Test if VariableDeclaration needs whitespace.
|
||||
*/
|
||||
|
||||
5
packages/babel-generator/test/fixtures/whitespace/call-expression/input.js
vendored
Normal file
5
packages/babel-generator/test/fixtures/whitespace/call-expression/input.js
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
(() => {})();
|
||||
foo();
|
||||
|
||||
(() => {})?.();
|
||||
foo();
|
||||
7
packages/babel-generator/test/fixtures/whitespace/call-expression/output.js
vendored
Normal file
7
packages/babel-generator/test/fixtures/whitespace/call-expression/output.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
(() => {})();
|
||||
|
||||
foo();
|
||||
|
||||
(() => {})?.();
|
||||
|
||||
foo();
|
||||
5
packages/babel-generator/test/fixtures/whitespace/member-expression/input.js
vendored
Normal file
5
packages/babel-generator/test/fixtures/whitespace/member-expression/input.js
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
foo = (() => {}).call();
|
||||
foo;
|
||||
|
||||
foo = (() => {})?.call();
|
||||
foo;
|
||||
7
packages/babel-generator/test/fixtures/whitespace/member-expression/output.js
vendored
Normal file
7
packages/babel-generator/test/fixtures/whitespace/member-expression/output.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
foo = (() => {}).call();
|
||||
|
||||
foo;
|
||||
|
||||
foo = (() => {})?.call();
|
||||
|
||||
foo;
|
||||
Loading…
x
Reference in New Issue
Block a user