UNPKG

41.1 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.toTypeName = exports.toValidIdentifier = exports.checkInvalidCharacter = void 0;
4const typescript_1 = require("typescript");
5function checkInvalidCharacter(text, target) {
6 const firstCharCode = text.charCodeAt(0);
7 if (!isIdentifierStart(firstCharCode, target)) {
8 return false;
9 }
10 for (let i = 1; i < text.length; i++) {
11 const ch = text.charCodeAt(i);
12 if (!isIdentifierPart(ch, target)) {
13 return false;
14 }
15 }
16 return true;
17}
18exports.checkInvalidCharacter = checkInvalidCharacter;
19function toValidIdentifier(text, target) {
20 if (/^\d/.test(text)) {
21 text = '$' + text;
22 }
23 let res = '';
24 let lastCharWasValid = true;
25 const firstCharCode = text.charCodeAt(0);
26 if (isIdentifierStart(firstCharCode, target)) {
27 res += String.fromCharCode(firstCharCode);
28 }
29 else {
30 lastCharWasValid = false;
31 }
32 for (let i = 1; i < text.length; i++) {
33 const ch = text.charCodeAt(i);
34 const isValid = isIdentifierPart(ch, target);
35 if (isValid) {
36 let char = String.fromCharCode(ch);
37 if (!lastCharWasValid) {
38 char = char.toUpperCase();
39 }
40 res += char;
41 }
42 lastCharWasValid = isValid;
43 }
44 return res || '_';
45}
46exports.toValidIdentifier = toValidIdentifier;
47function toTypeName(text, target) {
48 if (/^\d/.test(text)) {
49 text = '$' + text;
50 }
51 let res = '';
52 let lastCharWasValid = true;
53 const firstCharCode = text.charCodeAt(0);
54 if (firstCharCode !== 95 &&
55 isIdentifierStart(firstCharCode, target)) {
56 res += String.fromCharCode(firstCharCode).toUpperCase();
57 if (firstCharCode === 36) {
58 lastCharWasValid = false;
59 }
60 }
61 else {
62 lastCharWasValid = false;
63 }
64 for (let i = 1; i < text.length; i++) {
65 const ch = text.charCodeAt(i);
66 const isValid = ch !== 95 && isIdentifierPart(ch, target);
67 if (isValid) {
68 let char = String.fromCharCode(ch);
69 if (!lastCharWasValid) {
70 char = char.toUpperCase();
71 }
72 res += char;
73 }
74 lastCharWasValid = isValid && ch !== 36;
75 }
76 return res || '_';
77}
78exports.toTypeName = toTypeName;
79const unicodeES3IdentifierStart = [
80 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592,
81 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902,
82 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153,
83 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366,
84 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610,
85 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836,
86 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444,
87 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525,
88 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608,
89 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676,
90 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739,
91 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832,
92 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909,
93 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972,
94 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084,
95 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212,
96 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297,
97 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478,
98 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635,
99 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725,
100 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755,
101 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805,
102 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135,
103 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514,
104 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694,
105 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782,
106 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814,
107 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894,
108 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786,
109 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929,
110 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025,
111 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126,
112 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180,
113 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469,
114 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497,
115 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344,
116 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588,
117 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032,
118 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296,
119 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326,
120 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138,
121 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474,
122 65479, 65482, 65487, 65490, 65495, 65498, 65500,
123];
124const unicodeES3IdentifierPart = [
125 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592,
126 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866,
127 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986,
128 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232,
129 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443,
130 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520,
131 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759,
132 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305,
133 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433,
134 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486,
135 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524,
136 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579,
137 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622,
138 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689,
139 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738,
140 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784,
141 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858,
142 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902,
143 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958,
144 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984,
145 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031,
146 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114,
147 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168,
148 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242,
149 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294,
150 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346,
151 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424,
152 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517,
153 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570,
154 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719,
155 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749,
156 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782,
157 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872,
158 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953,
159 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131,
160 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256,
161 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616,
162 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704,
163 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792,
164 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848,
165 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969,
166 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016,
167 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840,
168 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025,
169 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126,
170 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178,
171 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450,
172 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486,
173 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293,
174 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442,
175 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312,
176 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262,
177 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320,
178 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967,
179 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140,
180 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370,
181 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,
182];
183const unicodeES5IdentifierStart = [
184 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736,
185 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906,
186 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369,
187 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649,
188 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808,
189 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042,
190 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208,
191 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417,
192 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482,
193 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544,
194 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613,
195 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703,
196 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768,
197 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866,
198 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947,
199 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974,
200 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086,
201 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168,
202 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261,
203 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346,
204 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482,
205 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648,
206 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732,
207 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757,
208 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840,
209 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176,
210 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238,
211 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682,
212 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752,
213 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824,
214 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743,
215 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920,
216 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108,
217 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480,
218 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823,
219 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168,
220 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424,
221 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025,
222 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126,
223 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178,
224 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455,
225 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488,
226 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544,
227 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507,
228 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648,
229 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718,
230 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321,
231 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538,
232 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312,
233 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527,
234 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786,
235 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43009, 43011, 43013,
236 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259,
237 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471,
238 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648,
239 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714,
240 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793,
241 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238,
242 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285,
243 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321,
244 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008,
245 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470,
246 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,
247];
248const unicodeES5IdentifierPart = [
249 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736,
250 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906,
251 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329,
252 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476,
253 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646,
254 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869,
255 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210,
256 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433,
257 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486,
258 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527,
259 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602,
260 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631,
261 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689,
262 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741,
263 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790,
264 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866,
265 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908,
266 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958,
267 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984,
268 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031,
269 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114,
270 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160,
271 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218,
272 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285,
273 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333,
274 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415,
275 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482,
276 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542,
277 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713,
278 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737,
279 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771,
280 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840,
281 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902,
282 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096,
283 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348,
284 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746,
285 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808,
286 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024,
287 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888,
288 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002,
289 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160,
290 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448,
291 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656,
292 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912,
293 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245,
294 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968,
295 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031,
296 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144,
297 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255,
298 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417,
299 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473,
300 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508,
301 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360,
302 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623,
303 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704,
304 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775,
305 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353,
306 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589,
307 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960,
308 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621,
309 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896,
310 42899, 42912, 42922, 43000, 43047, 43072, 43123, 43136, 43204, 43216, 43225,
311 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392,
312 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638,
313 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777,
314 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010,
315 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744,
316 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310,
317 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467,
318 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062,
319 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313,
320 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487,
321 65490, 65495, 65498, 65500,
322];
323const unicodeESNextIdentifierStart = [
324 65, 90, 97, 122, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705,
325 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 895,
326 895, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162,
327 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1488, 1514, 1519, 1522, 1568,
328 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786,
329 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994,
330 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088,
331 2088, 2112, 2136, 2144, 2154, 2208, 2228, 2230, 2237, 2308, 2361, 2365,
332 2365, 2384, 2384, 2392, 2401, 2417, 2432, 2437, 2444, 2447, 2448, 2451,
333 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524,
334 2525, 2527, 2529, 2544, 2545, 2556, 2556, 2565, 2570, 2575, 2576, 2579,
335 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654,
336 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738,
337 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2809, 2809, 2821,
338 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877,
339 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958,
340 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984,
341 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114,
342 3129, 3133, 3133, 3160, 3162, 3168, 3169, 3200, 3200, 3205, 3212, 3214,
343 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296,
344 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406,
345 3406, 3412, 3414, 3423, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507,
346 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713,
347 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3760, 3762,
348 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904,
349 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186,
350 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256,
351 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688,
352 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786,
353 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882,
354 4885, 4888, 4954, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743,
355 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5900, 5902, 5905, 5920,
356 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108,
357 6108, 6176, 6264, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6430, 6480,
358 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6656, 6678, 6688, 6740, 6823,
359 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168,
360 7203, 7245, 7247, 7258, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7401,
361 7404, 7406, 7411, 7413, 7414, 7418, 7418, 7424, 7615, 7680, 7957, 7960,
362 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029,
363 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134,
364 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305,
365 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469,
366 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508,
367 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360,
368 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565,
369 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696,
370 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742,
371 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12443,
372 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12730,
373 12784, 12799, 13312, 19893, 19968, 40943, 40960, 42124, 42192, 42237, 42240,
374 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42653, 42656, 42735,
375 42775, 42783, 42786, 42888, 42891, 42943, 42946, 42950, 42999, 43009, 43011,
376 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255,
377 43259, 43259, 43261, 43262, 43274, 43301, 43312, 43334, 43360, 43388, 43396,
378 43442, 43471, 43471, 43488, 43492, 43494, 43503, 43514, 43518, 43520, 43560,
379 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43646, 43695, 43697,
380 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741,
381 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808,
382 43814, 43816, 43822, 43824, 43866, 43868, 43879, 43888, 44002, 44032, 55203,
383 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275,
384 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318,
385 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914,
386 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370,
387 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536,
388 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629,
389 65664, 65786, 65856, 65908, 66176, 66204, 66208, 66256, 66304, 66335, 66349,
390 66378, 66384, 66421, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517,
391 66560, 66717, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 67072,
392 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67592, 67594, 67637,
393 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808,
394 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031,
395 68096, 68096, 68112, 68115, 68117, 68119, 68121, 68149, 68192, 68220, 68224,
396 68252, 68288, 68295, 68297, 68324, 68352, 68405, 68416, 68437, 68448, 68466,
397 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68899, 69376,
398 69404, 69415, 69415, 69424, 69445, 69600, 69622, 69635, 69687, 69763, 69807,
399 69840, 69864, 69891, 69926, 69956, 69956, 69968, 70002, 70006, 70006, 70019,
400 70066, 70081, 70084, 70106, 70106, 70108, 70108, 70144, 70161, 70163, 70187,
401 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320,
402 70366, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451,
403 70453, 70457, 70461, 70461, 70480, 70480, 70493, 70497, 70656, 70708, 70727,
404 70730, 70751, 70751, 70784, 70831, 70852, 70853, 70855, 70855, 71040, 71086,
405 71128, 71131, 71168, 71215, 71236, 71236, 71296, 71338, 71352, 71352, 71424,
406 71450, 71680, 71723, 71840, 71903, 71935, 71935, 72096, 72103, 72106, 72144,
407 72161, 72161, 72163, 72163, 72192, 72192, 72203, 72242, 72250, 72250, 72272,
408 72272, 72284, 72329, 72349, 72349, 72384, 72440, 72704, 72712, 72714, 72750,
409 72768, 72768, 72818, 72847, 72960, 72966, 72968, 72969, 72971, 73008, 73030,
410 73030, 73056, 73061, 73063, 73064, 73066, 73097, 73112, 73112, 73440, 73458,
411 73728, 74649, 74752, 74862, 74880, 75075, 77824, 78894, 82944, 83526, 92160,
412 92728, 92736, 92766, 92880, 92909, 92928, 92975, 92992, 92995, 93027, 93047,
413 93053, 93071, 93760, 93823, 93952, 94026, 94032, 94032, 94099, 94111, 94176,
414 94177, 94179, 94179, 94208, 100343, 100352, 101106, 110592, 110878, 110928,
415 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788,
416 113792, 113800, 113808, 113817, 119808, 119892, 119894, 119964, 119966,
417 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993,
418 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077,
419 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132,
420 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514,
421 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654,
422 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772,
423 120779, 123136, 123180, 123191, 123197, 123214, 123214, 123584, 123627,
424 124928, 125124, 125184, 125251, 125259, 125259, 126464, 126467, 126469,
425 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514,
426 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535,
427 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546,
428 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557,
429 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570,
430 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592,
431 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651,
432 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984,
433 191456, 194560, 195101,
434];
435const unicodeESNextIdentifierPart = [
436 48, 57, 65, 90, 95, 95, 97, 122, 170, 170, 181, 181, 183, 183, 186, 186,
437 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768,
438 884, 886, 887, 890, 893, 895, 895, 902, 906, 908, 908, 910, 929, 931, 1013,
439 1015, 1153, 1155, 1159, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416,
440 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514,
441 1519, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768,
442 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042,
443 2045, 2045, 2048, 2093, 2112, 2139, 2144, 2154, 2208, 2228, 2230, 2237,
444 2259, 2273, 2275, 2403, 2406, 2415, 2417, 2435, 2437, 2444, 2447, 2448,
445 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504,
446 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2556, 2556,
447 2558, 2558, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608,
448 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632,
449 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691,
450 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745,
451 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799,
452 2809, 2815, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864,
453 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903,
454 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954,
455 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980,
456 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024,
457 3031, 3031, 3046, 3055, 3072, 3084, 3086, 3088, 3090, 3112, 3114, 3129,
458 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3162, 3168, 3171,
459 3174, 3183, 3200, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251,
460 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294,
461 3296, 3299, 3302, 3311, 3313, 3314, 3328, 3331, 3333, 3340, 3342, 3344,
462 3346, 3396, 3398, 3400, 3402, 3406, 3412, 3415, 3423, 3427, 3430, 3439,
463 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517,
464 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3558, 3567,
465 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716,
466 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3773, 3776, 3780, 3782, 3782,
467 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881,
468 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972,
469 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293,
470 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694,
471 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789,
472 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885,
473 4888, 4954, 4957, 4959, 4969, 4977, 4992, 5007, 5024, 5109, 5112, 5117,
474 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5900,
475 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003,
476 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169,
477 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6430, 6432, 6443, 6448, 6459,
478 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6656, 6683,
479 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6832, 6845,
480 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241,
481 7245, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7376, 7378, 7380, 7418,
482 7424, 7673, 7675, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023,
483 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124,
484 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172,
485 8178, 8180, 8182, 8188, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319,
486 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455,
487 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488,
488 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310,
489 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565,
490 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694,
491 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736,
492 11742, 11744, 11775, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348,
493 12353, 12438, 12441, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593,
494 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40943, 40960, 42124,
495 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623,
496 42737, 42775, 42783, 42786, 42888, 42891, 42943, 42946, 42950, 42999, 43047,
497 43072, 43123, 43136, 43205, 43216, 43225, 43232, 43255, 43259, 43259, 43261,
498 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43488, 43518,
499 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43714, 43739,
500 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798,
501 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43879, 43888, 44010, 44012,
502 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109,
503 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312,
504 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829,
505 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65071, 65075,
506 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338,
507 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490,
508 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597,
509 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66045, 66045, 66176,
510 66204, 66208, 66256, 66272, 66272, 66304, 66335, 66349, 66378, 66384, 66426,
511 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66720,
512 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 67072, 67382,
513 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67592, 67594, 67637, 67639,
514 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826,
515 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096,
516 68099, 68101, 68102, 68108, 68115, 68117, 68119, 68121, 68149, 68152, 68154,
517 68159, 68159, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68326, 68352,
518 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786,
519 68800, 68850, 68864, 68903, 68912, 68921, 69376, 69404, 69415, 69415, 69424,
520 69456, 69600, 69622, 69632, 69702, 69734, 69743, 69759, 69818, 69840, 69864,
521 69872, 69881, 69888, 69940, 69942, 69951, 69956, 69958, 69968, 70003, 70006,
522 70006, 70016, 70084, 70089, 70092, 70096, 70106, 70108, 70108, 70144, 70161,
523 70163, 70199, 70206, 70206, 70272, 70278, 70280, 70280, 70282, 70285, 70287,
524 70301, 70303, 70312, 70320, 70378, 70384, 70393, 70400, 70403, 70405, 70412,
525 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70459,
526 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499,
527 70502, 70508, 70512, 70516, 70656, 70730, 70736, 70745, 70750, 70751, 70784,
528 70853, 70855, 70855, 70864, 70873, 71040, 71093, 71096, 71104, 71128, 71133,
529 71168, 71232, 71236, 71236, 71248, 71257, 71296, 71352, 71360, 71369, 71424,
530 71450, 71453, 71467, 71472, 71481, 71680, 71738, 71840, 71913, 71935, 71935,
531 72096, 72103, 72106, 72151, 72154, 72161, 72163, 72164, 72192, 72254, 72263,
532 72263, 72272, 72345, 72349, 72349, 72384, 72440, 72704, 72712, 72714, 72758,
533 72760, 72768, 72784, 72793, 72818, 72847, 72850, 72871, 72873, 72886, 72960,
534 72966, 72968, 72969, 72971, 73014, 73018, 73018, 73020, 73021, 73023, 73031,
535 73040, 73049, 73056, 73061, 73063, 73064, 73066, 73102, 73104, 73105, 73107,
536 73112, 73120, 73129, 73440, 73462, 73728, 74649, 74752, 74862, 74880, 75075,
537 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92768, 92777, 92880,
538 92909, 92912, 92916, 92928, 92982, 92992, 92995, 93008, 93017, 93027, 93047,
539 93053, 93071, 93760, 93823, 93952, 94026, 94031, 94087, 94095, 94111, 94176,
540 94177, 94179, 94179, 94208, 100343, 100352, 101106, 110592, 110878, 110928,
541 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788,
542 113792, 113800, 113808, 113817, 113821, 113822, 119141, 119145, 119149,
543 119154, 119163, 119170, 119173, 119179, 119210, 119213, 119362, 119364,
544 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973,
545 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003,
546 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094,
547 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144,
548 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572,
549 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712,
550 120714, 120744, 120746, 120770, 120772, 120779, 120782, 120831, 121344,
551 121398, 121403, 121452, 121461, 121461, 121476, 121476, 121499, 121503,
552 121505, 121519, 122880, 122886, 122888, 122904, 122907, 122913, 122915,
553 122916, 122918, 122922, 123136, 123180, 123184, 123197, 123200, 123209,
554 123214, 123214, 123584, 123641, 124928, 125124, 125136, 125142, 125184,
555 125259, 125264, 125273, 126464, 126467, 126469, 126495, 126497, 126498,
556 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521,
557 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537,
558 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551,
559 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559,
560 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580,
561 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619,
562 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173782, 173824,
563 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101,
564 917760, 917999,
565];
566function lookupInUnicodeMap(code, map) {
567 if (code < map[0]) {
568 return false;
569 }
570 let lo = 0;
571 let hi = map.length;
572 let mid;
573 while (lo + 1 < hi) {
574 mid = lo + (hi - lo) / 2;
575 mid -= mid % 2;
576 if (map[mid] <= code && code <= map[mid + 1]) {
577 return true;
578 }
579 if (code < map[mid]) {
580 hi = mid;
581 }
582 else {
583 lo = mid + 2;
584 }
585 }
586 return false;
587}
588function isUnicodeIdentifierStart(code, languageVersion) {
589 return languageVersion >= typescript_1.ScriptTarget.ES2015
590 ? lookupInUnicodeMap(code, unicodeESNextIdentifierStart)
591 : languageVersion === typescript_1.ScriptTarget.ES5
592 ? lookupInUnicodeMap(code, unicodeES5IdentifierStart)
593 : lookupInUnicodeMap(code, unicodeES3IdentifierStart);
594}
595function isUnicodeIdentifierPart(code, languageVersion) {
596 return languageVersion >= typescript_1.ScriptTarget.ES2015
597 ? lookupInUnicodeMap(code, unicodeESNextIdentifierPart)
598 : languageVersion === typescript_1.ScriptTarget.ES5
599 ? lookupInUnicodeMap(code, unicodeES5IdentifierPart)
600 : lookupInUnicodeMap(code, unicodeES3IdentifierPart);
601}
602function isIdentifierStart(ch, languageVersion) {
603 return ((ch >= 65 && ch <= 90) ||
604 (ch >= 97 && ch <= 122) ||
605 ch === 36 ||
606 ch === 95 ||
607 (ch > 127 &&
608 isUnicodeIdentifierStart(ch, languageVersion)));
609}
610function isIdentifierPart(ch, languageVersion) {
611 return ((ch >= 65 && ch <= 90) ||
612 (ch >= 97 && ch <= 122) ||
613 (ch >= 48 && ch <= 57) ||
614 ch === 36 ||
615 ch === 95 ||
616 (ch > 127 &&
617 isUnicodeIdentifierPart(ch, languageVersion)));
618}