2026-02-22 00:03:35 +01:00

29 lines
759 B
JavaScript

// Forked from https://github.com/jsdom/jsdom/blob/main/lib/jsdom/living/helpers/strings.js
"use strict";
/**
* Converts a string to ASCII lowercase.
*
* @see https://infra.spec.whatwg.org/#ascii-lowercase
* @param {string} s - The string to convert.
* @returns {string} The converted string.
*/
function asciiLowercase(s) {
if (!/[^\x00-\x7f]/.test(s)) {
return s.toLowerCase();
}
const len = s.length;
const out = new Array(len);
for (let i = 0; i < len; i++) {
const code = s.charCodeAt(i);
// If the character is between 'A' (65) and 'Z' (90), convert using bitwise OR with 32
out[i] = code >= 65 && code <= 90 ? String.fromCharCode(code | 32) : s[i];
}
return out.join("");
}
module.exports = {
asciiLowercase
};