From 13fa559536549d959d509239b7b9d783b8eeb428 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Wed, 7 Oct 2026 04:04:44 +0000 Subject: [PATCH] perf: optimize registry phrase addition string allocations Co-authored-by: Horizontal42 <75383519+Horizontal42@users.noreply.github.com> --- src/engine/registry.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/engine/registry.ts b/src/engine/registry.ts index 194cc86..47ee9e4 100644 --- a/src/engine/registry.ts +++ b/src/engine/registry.ts @@ -88,7 +88,12 @@ export class Registry { const list = this.byFirst.get(key); if (list) { // first registration of an identical phrase wins (core vocab is added first) - if (list.some((e) => e.caseSensitive === caseSensitive && (caseSensitive ? e.lexemes.join(" ") === lexemes.join(" ") : e.lower.join(" ") === entry.lower.join(" ")))) { + if (list.some((e) => { + if (e.caseSensitive !== caseSensitive || e.lexemes.length !== lexemes.length) return false; + const target = caseSensitive ? lexemes : entry.lower; + const source = caseSensitive ? e.lexemes : e.lower; + return source.every((val, i) => val === target[i]); + })) { return; } list.push(entry);