From 9902f54c937bdd217b9ffb984a3c7c60c9815c6f Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Mon, 25 May 2026 17:40:31 -0700 Subject: [PATCH] perf(addon-search): avoid repeated substring allocation in reverse regex Hoist searchStringLine.slice(0, offset) outside the reverse regex exec loop. Co-authored-by: Cursor --- addons/addon-search/src/SearchEngine.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/addon-search/src/SearchEngine.ts b/addons/addon-search/src/SearchEngine.ts index 22b3d8d2e..fbca97a84 100644 --- a/addons/addon-search/src/SearchEngine.ts +++ b/addons/addon-search/src/SearchEngine.ts @@ -288,7 +288,8 @@ export class SearchEngine { let foundTerm: RegExpExecArray | null; if (isReverseSearch) { // This loop will get the resultIndex of the _last_ regex match in the range 0..offset - while (foundTerm = searchRegex.exec(searchStringLine.slice(0, offset))) { + const searchSubstring = searchStringLine.slice(0, offset); + while (foundTerm = searchRegex.exec(searchSubstring)) { if (foundTerm[0].length === 0) { continue; }