UNPKG

@awayfl/avm2

Version:

Virtual machine for executing AS3 code

27 lines (26 loc) 801 B
/** * AS3 has a bug when converting a certain character range to lower case. */ export function as3ToLowerCase(value) { var chars = null; for (var i = 0; i < value.length; i++) { var charCode = value.charCodeAt(i); if (charCode >= 0x10A0 && charCode <= 0x10C5) { if (!chars) { chars = new Array(value.length); } chars[i] = String.fromCharCode(charCode + 48); } } if (chars) { // Fill in remaining chars if the bug needs to be emulated. for (var i = 0; i < chars.length; i++) { var char = chars[i]; if (!char) { chars[i] = value.charAt(i).toLocaleString(); } } return chars.join(''); } return value.toLowerCase(); }