From 31e70498eab2ee657d8c26d7aa931c5d3b7b1c91 Mon Sep 17 00:00:00 2001 From: alice Date: Sun, 15 Feb 2026 22:02:11 -0800 Subject: [PATCH 1/3] Use nodeId for visitNodes. --- src/modules/utils/getDeclarationWithContext.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/utils/getDeclarationWithContext.js b/src/modules/utils/getDeclarationWithContext.js index f4cfe7d..ae2aa41 100644 --- a/src/modules/utils/getDeclarationWithContext.js +++ b/src/modules/utils/getDeclarationWithContext.js @@ -138,7 +138,7 @@ export function getDeclarationWithContext(originNode, excludeOriginNode = false) const stack = [originNode]; // The working stack for nodes to be reviewed /** @type {ASTNode[]} */ const collected = []; // These will be our context - /** @type {Set} */ + /** @type {Set} */ const visitedNodes = new Set(); // Track visited nodes to prevent infinite loops /** @type {number[][]} */ const collectedRanges = []; // Prevent collecting overlapping nodes @@ -149,7 +149,7 @@ export function getDeclarationWithContext(originNode, excludeOriginNode = false) */ function addToStack(node) { if (!node || - visitedNodes.has(node) || + visitedNodes.has(node.nodeId) || stack.includes(node) || SKIP_TRAVERSAL_TYPES.includes(node.type)) { return; @@ -164,7 +164,7 @@ export function getDeclarationWithContext(originNode, excludeOriginNode = false) if (!cached) { while (stack.length) { const node = stack.shift(); - if (visitedNodes.has(node)) continue; + if (visitedNodes.has(node.nodeId)) continue; visitedNodes.add(node); // Do not collect any context if one of the relevant nodes is marked to be replaced or deleted if (node.isMarked || doesDescendantMatchCondition(node, n => n.isMarked)) { @@ -223,7 +223,7 @@ export function getDeclarationWithContext(originNode, excludeOriginNode = false) for (let i = 0; i < targetNodes.length; i++) { const targetNode = targetNodes[i]; - if (!visitedNodes.has(targetNode)) stack.push(targetNode); + if (!visitedNodes.has(node.nodeId)) stack.push(targetNode); // noinspection JSUnresolvedVariable if (targetNode === targetNode.scope.block) { // Collect out-of-scope variables used inside the scope From f7ae96d0e9b1de9b8a53d39af2fda48e5d2d1c3d Mon Sep 17 00:00:00 2001 From: alice Date: Sun, 15 Feb 2026 23:11:52 -0800 Subject: [PATCH 2/3] Fix missing line. --- src/modules/utils/getDeclarationWithContext.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/utils/getDeclarationWithContext.js b/src/modules/utils/getDeclarationWithContext.js index ae2aa41..50c47e1 100644 --- a/src/modules/utils/getDeclarationWithContext.js +++ b/src/modules/utils/getDeclarationWithContext.js @@ -165,7 +165,7 @@ export function getDeclarationWithContext(originNode, excludeOriginNode = false) while (stack.length) { const node = stack.shift(); if (visitedNodes.has(node.nodeId)) continue; - visitedNodes.add(node); + visitedNodes.add(node.nodeId); // Do not collect any context if one of the relevant nodes is marked to be replaced or deleted if (node.isMarked || doesDescendantMatchCondition(node, n => n.isMarked)) { collected.length = 0; From 0d349fa3bc0909cc63f43d6587fd905854b41759 Mon Sep 17 00:00:00 2001 From: alice Date: Mon, 16 Feb 2026 09:01:12 -0800 Subject: [PATCH 3/3] Fix incorrect line. --- src/modules/utils/getDeclarationWithContext.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/utils/getDeclarationWithContext.js b/src/modules/utils/getDeclarationWithContext.js index 50c47e1..31e8225 100644 --- a/src/modules/utils/getDeclarationWithContext.js +++ b/src/modules/utils/getDeclarationWithContext.js @@ -223,7 +223,7 @@ export function getDeclarationWithContext(originNode, excludeOriginNode = false) for (let i = 0; i < targetNodes.length; i++) { const targetNode = targetNodes[i]; - if (!visitedNodes.has(node.nodeId)) stack.push(targetNode); + if (!visitedNodes.has(targetNode.nodeId)) stack.push(targetNode); // noinspection JSUnresolvedVariable if (targetNode === targetNode.scope.block) { // Collect out-of-scope variables used inside the scope