From fbf7fdbdf2a221a668c6accbdd8c46ad98bf3d66 Mon Sep 17 00:00:00 2001 From: Aaron Dodson Date: Thu, 23 Jul 2026 10:49:09 -0700 Subject: [PATCH] fix: Improve performance of variable name comparisons --- packages/blockly/core/variables.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/blockly/core/variables.ts b/packages/blockly/core/variables.ts index 5ad4d1a3855..0b781677f0b 100644 --- a/packages/blockly/core/variables.ts +++ b/packages/blockly/core/variables.ts @@ -23,6 +23,10 @@ import * as utilsXml from './utils/xml.js'; import type {Workspace} from './workspace.js'; import type {WorkspaceSvg} from './workspace_svg.js'; +const nameComparisonCollator = new Intl.Collator(undefined, { + sensitivity: 'base', +}); + /** * String for use in the "custom" attribute of a category in toolbox XML. * This string indicates that the category should be dynamically populated with @@ -805,9 +809,7 @@ export function compareByName( var1: IVariableModel, var2: IVariableModel, ): number { - return var1 - .getName() - .localeCompare(var2.getName(), undefined, {sensitivity: 'base'}); + return nameComparisonCollator.compare(var1.getName(), var2.getName()); } /**