From a85e9521ec2adff36701470009c743eb4e8c8d4b Mon Sep 17 00:00:00 2001 From: shoonia Date: Fri, 19 Apr 2024 17:41:57 +0300 Subject: [PATCH 1/2] Optimization Skip one unnecessary checking in the loop --- packages/babel-types/src/validators/matchesPattern.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/babel-types/src/validators/matchesPattern.ts b/packages/babel-types/src/validators/matchesPattern.ts index cc144cffd5f7..83a3c35fa040 100644 --- a/packages/babel-types/src/validators/matchesPattern.ts +++ b/packages/babel-types/src/validators/matchesPattern.ts @@ -22,10 +22,10 @@ export default function matchesPattern( if (!isMemberExpression(member)) return false; const parts = Array.isArray(match) ? match : match.split("."); - const nodes = []; + const nodes = [member.property]; - let node; - for (node = member; isMemberExpression(node); node = node.object) { + let node = member.object; + for (; isMemberExpression(node); node = node.object) { nodes.push(node.property); } nodes.push(node); From fdf8cb847e7bdd4c1befea735b75111bcbea167a Mon Sep 17 00:00:00 2001 From: shoonia Date: Fri, 19 Apr 2024 18:02:04 +0300 Subject: [PATCH 2/2] Fix types --- packages/babel-types/src/validators/matchesPattern.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-types/src/validators/matchesPattern.ts b/packages/babel-types/src/validators/matchesPattern.ts index 83a3c35fa040..993226dec8ed 100644 --- a/packages/babel-types/src/validators/matchesPattern.ts +++ b/packages/babel-types/src/validators/matchesPattern.ts @@ -24,7 +24,7 @@ export default function matchesPattern( const parts = Array.isArray(match) ? match : match.split("."); const nodes = [member.property]; - let node = member.object; + let node: t.Node = member.object; for (; isMemberExpression(node); node = node.object) { nodes.push(node.property); }