From 13fd99228cb641afc942450510e6c4f1be319f11 Mon Sep 17 00:00:00 2001 From: riteshshukla04 Date: Tue, 11 Aug 2026 14:23:16 +0530 Subject: [PATCH 1/4] perf: Cache the processColors --- packages/normalize-color/index.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/normalize-color/index.js b/packages/normalize-color/index.js index 67c5bdbb82ed..802f3951017c 100644 --- a/packages/normalize-color/index.js +++ b/packages/normalize-color/index.js @@ -12,6 +12,8 @@ 'use strict'; +const cachedColors = new Map(); + function normalizeColor(color) { if (typeof color === 'number') { if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) { @@ -24,6 +26,21 @@ function normalizeColor(color) { return null; } + const cachedColor = cachedColors.get(color); + if (cachedColor !== undefined) { + return cachedColor; + } + const normalizedColor = parseColorString(color); + // To avoid CachedColors increasing indefinetly + if (cachedColors.size >= 1024) { + cachedColors.clear(); + } + cachedColors.set(color, normalizedColor); + return normalizedColor; +} + +function parseColorString(color) { + const matchers = getMatchers(); let match; From b156f44192e257307d467a3b12a5e15279d23e63 Mon Sep 17 00:00:00 2001 From: riteshshukla04 Date: Tue, 11 Aug 2026 14:39:53 +0530 Subject: [PATCH 2/4] perf: Cache the processColors --- packages/normalize-color/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/normalize-color/index.js b/packages/normalize-color/index.js index 802f3951017c..f2ae22739db1 100644 --- a/packages/normalize-color/index.js +++ b/packages/normalize-color/index.js @@ -40,7 +40,6 @@ function normalizeColor(color) { } function parseColorString(color) { - const matchers = getMatchers(); let match; From 5df460ede996ce0b030cc41dc39ce4904320c3af Mon Sep 17 00:00:00 2001 From: riteshshukla04 Date: Tue, 11 Aug 2026 22:45:04 +0530 Subject: [PATCH 3/4] perf: Cache the processColors --- packages/normalize-color/index.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/normalize-color/index.js b/packages/normalize-color/index.js index f2ae22739db1..05bdc3adc93e 100644 --- a/packages/normalize-color/index.js +++ b/packages/normalize-color/index.js @@ -26,14 +26,17 @@ function normalizeColor(color) { return null; } - const cachedColor = cachedColors.get(color); - if (cachedColor !== undefined) { + if (cachedColors.has(color)) { + // Map iteration order follows insertion order, so re-inserting on every + // hit keeps the least-recently-used entry first. + const cachedColor = cachedColors.get(color); + cachedColors.delete(color); + cachedColors.set(color, cachedColor); return cachedColor; } const normalizedColor = parseColorString(color); - // To avoid CachedColors increasing indefinetly if (cachedColors.size >= 1024) { - cachedColors.clear(); + cachedColors.delete(cachedColors.keys().next().value); } cachedColors.set(color, normalizedColor); return normalizedColor; From f60c060b6f042a2a8f3ae410eb6854b9c028d46c Mon Sep 17 00:00:00 2001 From: riteshshukla04 Date: Wed, 12 Aug 2026 03:02:32 +0530 Subject: [PATCH 4/4] re trigger ci