124 lines
3.0 KiB
JavaScript
124 lines
3.0 KiB
JavaScript
// Metro module 1010 (f1011).
|
|
export function utf8ToBytes(a0, a1) {
|
|
let r14, r44, r45, r58, r59;
|
|
let r39 = a1 ? a1 : Infinity;
|
|
const length = a0.length;
|
|
const r35 = [];
|
|
const r34 = 0 < length;
|
|
let r6 = 0;
|
|
let r36 = null;
|
|
if (r34) {
|
|
do {
|
|
L33: {
|
|
L18: {
|
|
const r42 = a0.charCodeAt(r6);
|
|
r14 = r6;
|
|
const r46 = r36;
|
|
const r43 = r39;
|
|
if (r42 > 55295 && r42 < 57344) {
|
|
if (r46) {
|
|
if (r42 < 56320) {
|
|
const r100 = r43 - 3;
|
|
r58 = r42;
|
|
r59 = r100;
|
|
if (!(-1 < r100)) {
|
|
break L33;
|
|
}
|
|
r35.push(239, 191, 189);
|
|
r58 = r42;
|
|
r59 = r100;
|
|
break L33;
|
|
}
|
|
r45 = 65536 + (r46 - 55296 << 10 | r42 - 56320);
|
|
r44 = r43;
|
|
break L18;
|
|
}
|
|
if (r42 > 56319) {
|
|
const r62 = r43 - 3;
|
|
r58 = r46;
|
|
r59 = r62;
|
|
if (!(-1 < r59)) {
|
|
break L33;
|
|
}
|
|
r35.push(239, 191, 189);
|
|
r58 = r46;
|
|
r59 = r62;
|
|
break L33;
|
|
}
|
|
const r57 = r14 + 1;
|
|
r58 = r42;
|
|
r59 = r43;
|
|
if (r57 !== length) {
|
|
break L33;
|
|
}
|
|
const r60 = r43 - 3;
|
|
r58 = r46;
|
|
r59 = r60;
|
|
if (!(-1 < r59)) {
|
|
break L33;
|
|
}
|
|
r35.push(239, 191, 189);
|
|
r58 = r46;
|
|
r59 = r60;
|
|
break L33;
|
|
}
|
|
let r41 = r46;
|
|
let r54 = r43;
|
|
if (r46) {
|
|
const r0 = r43 - 3;
|
|
r41 = r0 > -1;
|
|
r54 = r0;
|
|
}
|
|
r45 = r42;
|
|
r44 = r54;
|
|
if (r41) {
|
|
r35.push(239, 191, 189);
|
|
r45 = r42;
|
|
r44 = r54;
|
|
}
|
|
}
|
|
if (r45 < 128) {
|
|
const r97 = r44 - 1;
|
|
if (r97 < 0) {
|
|
break;
|
|
}
|
|
r35.push(r45);
|
|
r58 = null;
|
|
r59 = r97;
|
|
} else if (r45 < 2048) {
|
|
const r90 = r44 - 2;
|
|
if (r90 < 0) {
|
|
break;
|
|
}
|
|
r35.push(r45 >> 6 | 192, 63 & r45 | 128);
|
|
r58 = null;
|
|
r59 = r90;
|
|
} else if (r45 < 65536) {
|
|
const r80 = r44 - 3;
|
|
if (r80 < 0) {
|
|
break;
|
|
}
|
|
r35.push(r45 >> 12 | 224, r45 >> 6 & 63 | 128, 63 & r45 | 128);
|
|
r58 = null;
|
|
r59 = r80;
|
|
} else {
|
|
if (!(r45 < 1114112)) {
|
|
throw new Error("Invalid code point");
|
|
}
|
|
const r72 = r44 - 4;
|
|
if (r72 < 0) {
|
|
break;
|
|
}
|
|
r35.push(r45 >> 18 | 240, r45 >> 12 & 63 | 128, r45 >> 6 & 63 | 128, 63 & r45 | 128);
|
|
r58 = null;
|
|
r59 = r72;
|
|
}
|
|
}
|
|
r6 = r14 + 1;
|
|
r36 = r58;
|
|
r39 = r59;
|
|
} while (r6 < length);
|
|
}
|
|
return r35;
|
|
}
|