-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGeneralCategory.js
26 lines (26 loc) · 7.55 KB
/
GeneralCategory.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const uGeneralCategoryAsInt = (function () {
const bytes = atob("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");
const len = bytes.length;
const entries = []
let value = 0;
for (let i = 0; i < len; ++i) {
const byte = bytes.charCodeAt(i);
if (byte & 0x80) {
value = (value | (byte & 0x7F)) << 7;
continue;
}
value |= byte;
entries.push((value >> 5) + 1);
entries.push(value & 31);
value = 0;
}
return function (c) {
for (let i = 0; i < entries.length; i += 2) {
c -= entries[i];
if (c < 0)
return entries[i + 1];
}
}
})();
const uGeneralCategoryValues = ["Cc","Zs","Po","Sc","Ps","Pe","Sm","Pd","Nd","Lu","Sk","Pc","Ll","So","Lo","Pi","Cf","No","Pf","Lt","Lm","Mn","Cn","Me","Mc","Nl","Zl","Zp","Cs","Co"];
function uGeneralCategory(c) { return uGeneralCategoryValues[uGeneralCategoryAsInt(c)]; }