From 57b817fbadf17a28b5fa532a510621fc6260f02c Mon Sep 17 00:00:00 2001 From: Mert Can Altin Date: Thu, 18 Dec 2025 11:55:04 +0300 Subject: [PATCH 1/4] util: optimize toASCIILower function using V8s native toLowerCase --- lib/internal/mime.js | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/lib/internal/mime.js b/lib/internal/mime.js index efe6a2212b0483..57d94be995db75 100644 --- a/lib/internal/mime.js +++ b/lib/internal/mime.js @@ -23,15 +23,7 @@ const END_BEGINNING_WHITESPACE = /[^\r\n\t ]|$/; const START_ENDING_WHITESPACE = /[\r\n\t ]*$/; function toASCIILower(str) { - let result = ''; - for (let i = 0; i < str.length; i++) { - const char = str[i]; - - result += char >= 'A' && char <= 'Z' ? - StringPrototypeToLowerCase(char) : - char; - } - return result; + return StringPrototypeToLowerCase(str); } const SOLIDUS = '/'; From 6fe4c8cb618ed4a73b0672ae8546ac879ee923ce Mon Sep 17 00:00:00 2001 From: Mert Can Altin Date: Thu, 18 Dec 2025 12:46:43 +0300 Subject: [PATCH 2/4] Update lib/internal/mime.js Co-authored-by: Nikita Skovoroda --- lib/internal/mime.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/internal/mime.js b/lib/internal/mime.js index 57d94be995db75..fdad970c9d9cdc 100644 --- a/lib/internal/mime.js +++ b/lib/internal/mime.js @@ -23,7 +23,15 @@ const END_BEGINNING_WHITESPACE = /[^\r\n\t ]|$/; const START_ENDING_WHITESPACE = /[\r\n\t ]*$/; function toASCIILower(str) { - return StringPrototypeToLowerCase(str); + if (!/[^\x00-\x7f]/.test(str)) return StringPrototypeToLowerCase(str); + for (let i = 0; i < str.length; i++) { + const char = str[i]; + + result += char >= 'A' && char <= 'Z' ? + StringPrototypeToLowerCase(char) : + char; + } + return result; } const SOLIDUS = '/'; From 8eb0dba6191301161aba1bb74a39f0f1891663ac Mon Sep 17 00:00:00 2001 From: Mert Can Altin Date: Thu, 18 Dec 2025 12:47:42 +0300 Subject: [PATCH 3/4] util added result --- lib/internal/mime.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/internal/mime.js b/lib/internal/mime.js index fdad970c9d9cdc..fef15a29986ad8 100644 --- a/lib/internal/mime.js +++ b/lib/internal/mime.js @@ -24,6 +24,7 @@ const START_ENDING_WHITESPACE = /[\r\n\t ]*$/; function toASCIILower(str) { if (!/[^\x00-\x7f]/.test(str)) return StringPrototypeToLowerCase(str); + let result = ''; for (let i = 0; i < str.length; i++) { const char = str[i]; From 34692cf25e84034ddcee024f91aa6e2bd7a7b9be Mon Sep 17 00:00:00 2001 From: Mert Can Altin Date: Thu, 18 Dec 2025 12:48:28 +0300 Subject: [PATCH 4/4] added no-control-regex --- lib/internal/mime.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/internal/mime.js b/lib/internal/mime.js index fef15a29986ad8..de691a745031e0 100644 --- a/lib/internal/mime.js +++ b/lib/internal/mime.js @@ -23,6 +23,7 @@ const END_BEGINNING_WHITESPACE = /[^\r\n\t ]|$/; const START_ENDING_WHITESPACE = /[\r\n\t ]*$/; function toASCIILower(str) { + // eslint-disable-next-line no-control-regex if (!/[^\x00-\x7f]/.test(str)) return StringPrototypeToLowerCase(str); let result = ''; for (let i = 0; i < str.length; i++) {