Skip to content

Commit e9756cb

Browse files
authored
Eager t.* access in shouldStoreRHSInTemporaryVariable (#14191)
1 parent 19ede09 commit e9756cb

1 file changed

Lines changed: 13 additions & 6 deletions

File tree

packages/babel-plugin-proposal-object-rest-spread/src/shouldStoreRHSInTemporaryVariable.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
import { types as t } from "@babel/core";
22

3-
const { isObjectProperty } = t;
3+
const {
4+
isObjectProperty,
5+
isArrayPattern,
6+
isObjectPattern,
7+
isAssignmentPattern,
8+
isRestElement,
9+
isIdentifier,
10+
} = t;
411
/**
512
* This is a helper function to determine if we should create an intermediate variable
613
* such that the RHS of an assignment is not duplicated.
@@ -9,11 +16,11 @@ const { isObjectProperty } = t;
916
* on further optimizations.
1017
*/
1118
export default function shouldStoreRHSInTemporaryVariable(node: t.LVal) {
12-
if (t.isArrayPattern(node)) {
19+
if (isArrayPattern(node)) {
1320
const nonNullElements = node.elements.filter(element => element !== null);
1421
if (nonNullElements.length > 1) return true;
1522
else return shouldStoreRHSInTemporaryVariable(nonNullElements[0]);
16-
} else if (t.isObjectPattern(node)) {
23+
} else if (isObjectPattern(node)) {
1724
const { properties } = node;
1825
if (properties.length > 1) return true;
1926
else if (properties.length === 0) return false;
@@ -26,10 +33,10 @@ export default function shouldStoreRHSInTemporaryVariable(node: t.LVal) {
2633
return shouldStoreRHSInTemporaryVariable(firstProperty);
2734
}
2835
}
29-
} else if (t.isAssignmentPattern(node)) {
36+
} else if (isAssignmentPattern(node)) {
3037
return shouldStoreRHSInTemporaryVariable(node.left);
31-
} else if (t.isRestElement(node)) {
32-
if (t.isIdentifier(node.argument)) return true;
38+
} else if (isRestElement(node)) {
39+
if (isIdentifier(node.argument)) return true;
3340
return shouldStoreRHSInTemporaryVariable(node.argument);
3441
} else {
3542
// node is Identifier or MemberExpression

0 commit comments

Comments
 (0)