Flutter Engine
The Flutter Engine
unibrow.cc
Go to the documentation of this file.
1// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4//
5// This file was generated at 2014-10-08 15:25:47.940335 (in v8, copied to dart)
6
7#include "vm/unibrow.h"
8#include "vm/unibrow-inl.h"
9
10#include <stdio.h>
11#include <stdlib.h>
12
13namespace unibrow {
14
15static constexpr intptr_t kStartBit = (1 << 30);
16static constexpr intptr_t kChunkBits = (1 << 13);
17static constexpr int32_t kSentinel = static_cast<int32_t>(-1);
18
19/**
20 * \file
21 * Implementations of functions for working with unicode.
22 */
23
24// All access to the character table should go through this function.
25template <intptr_t D>
26static inline int32_t TableGet(const int32_t* table, intptr_t index) {
27 return table[D * index];
28}
29
30static inline int32_t GetEntry(int32_t entry) {
31 return entry & (kStartBit - 1);
32}
33
34static inline bool IsStart(int32_t entry) {
35 return (entry & kStartBit) != 0;
36}
37
38/**
39 * Look up a character in the unicode table using a mix of binary and
40 * interpolation search. For a uniformly distributed array
41 * interpolation search beats binary search by a wide margin. However,
42 * in this case interpolation search degenerates because of some very
43 * high values in the lower end of the table so this function uses a
44 * combination. The average number of steps to look up the information
45 * about a character is around 10, slightly higher if there is no
46 * information available about the character.
47 */
48static bool LookupPredicate(const int32_t* table, uint16_t size, int32_t chr) {
49 const intptr_t kEntryDist = 1;
50 uint16_t value = chr & (kChunkBits - 1);
51 uint32_t low = 0;
52 uint32_t high = size - 1;
53 while (high != low) {
54 uint32_t mid = low + ((high - low) >> 1);
55 int32_t current_value = GetEntry(TableGet<kEntryDist>(table, mid));
56 // If we've found an entry less than or equal to this one, and the
57 // next one is not also less than this one, we've arrived.
58 if ((current_value <= value) &&
59 (mid + 1 == size ||
60 GetEntry(TableGet<kEntryDist>(table, mid + 1)) > value)) {
61 low = mid;
62 break;
63 } else if (current_value < value) {
64 low = mid + 1;
65 } else if (current_value > value) {
66 // If we've just checked the bottom-most value and it's not
67 // the one we're looking for, we're done.
68 if (mid == 0) break;
69 high = mid - 1;
70 }
71 }
72 int32_t field = TableGet<kEntryDist>(table, low);
73 int32_t entry = GetEntry(field);
74 bool is_start = IsStart(field);
75 return (entry == value) || (entry < value && is_start);
76}
77
78template <intptr_t kW>
80 static constexpr int32_t kEndOfEncoding = kSentinel;
81 int32_t chars[kW];
82};
83
84// Look up the mapping for the given character in the specified table,
85// which is of the specified length and uses the specified special case
86// mapping for multi-char mappings. The next parameter is the character
87// following the one to map. The result will be written into the result
88// buffer and the number of characters written will be returned. Finally,
89// if the allow_caching_ptr is non-null then false will be stored in
90// it if the result contains multiple characters or depends on the
91// context.
92// If ranges are linear, a match between a start and end point is
93// offset by the distance between the match and the start. Otherwise
94// the result is the same as for the start point on the entire range.
95template <bool ranges_are_linear, intptr_t kW>
96static intptr_t LookupMapping(const int32_t* table,
97 uint16_t size,
98 const MultiCharacterSpecialCase<kW>* multi_chars,
99 int32_t chr,
100 int32_t next,
101 int32_t* result,
102 bool* allow_caching_ptr) {
103 const intptr_t kEntryDist = 2;
104 uint16_t key = chr & (kChunkBits - 1);
105 uint16_t chunk_start = chr - key;
106 uint32_t low = 0;
107 uint32_t high = size - 1;
108 while (high != low) {
109 uint32_t mid = low + ((high - low) >> 1);
110 int32_t current_value = GetEntry(TableGet<kEntryDist>(table, mid));
111 // If we've found an entry less than or equal to this one, and the next one
112 // is not also less than this one, we've arrived.
113 if ((current_value <= key) &&
114 (mid + 1 == size ||
115 GetEntry(TableGet<kEntryDist>(table, mid + 1)) > key)) {
116 low = mid;
117 break;
118 } else if (current_value < key) {
119 low = mid + 1;
120 } else if (current_value > key) {
121 // If we've just checked the bottom-most value and it's not
122 // the one we're looking for, we're done.
123 if (mid == 0) break;
124 high = mid - 1;
125 }
126 }
127 int32_t field = TableGet<kEntryDist>(table, low);
128 int32_t entry = GetEntry(field);
129 bool is_start = IsStart(field);
130 bool found = (entry == key) || (entry < key && is_start);
131 if (found) {
132 int32_t value = table[2 * low + 1];
133 if (value == 0) {
134 // 0 means not present
135 return 0;
136 } else if ((value & 3) == 0) {
137 // Low bits 0 means a constant offset from the given character.
138 if (ranges_are_linear) {
139 result[0] = chr + (value >> 2);
140 } else {
141 result[0] = entry + chunk_start + (value >> 2);
142 }
143 return 1;
144 } else if ((value & 3) == 1) {
145 // Low bits 1 means a special case mapping
146 if (allow_caching_ptr) *allow_caching_ptr = false;
147 const MultiCharacterSpecialCase<kW>& mapping = multi_chars[value >> 2];
148 intptr_t length = 0;
149 for (length = 0; length < kW; length++) {
150 int32_t mapped = mapping.chars[length];
152 if (ranges_are_linear) {
153 result[length] = mapped + (key - entry);
154 } else {
155 result[length] = mapped;
156 }
157 }
158 return length;
159 } else {
160 // Low bits 2 means a really really special case
161 if (allow_caching_ptr) *allow_caching_ptr = false;
162 // The cases of this switch are defined in unicode.py in the
163 // really_special_cases mapping.
164 switch (value >> 2) {
165 case 1:
166 // Really special case 1: upper case sigma. This letter
167 // converts to two different lower case sigmas depending on
168 // whether or not it occurs at the end of a word.
169 if (next != 0 && Letter::Is(next)) {
170 result[0] = 0x03C3;
171 } else {
172 result[0] = 0x03C2;
173 }
174 return 1;
175 default:
176 return 0;
177 }
178 return -1;
179 }
180 } else {
181 return 0;
182 }
183}
184
185// Letter: point.category in ['Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl']
186// clang-format off
187static constexpr uint16_t kLetterTable0Size = 431;
188static constexpr int32_t kLetterTable0[431] = {
189 1073741889, 90, 1073741921, 122,
190 170, 181, 186, 1073742016, // NOLINT
191 214, 1073742040, 246, 1073742072,
192 705, 1073742534, 721, 1073742560, // NOLINT
193 740, 748, 750, 1073742704,
194 884, 1073742710, 887, 1073742714, // NOLINT
195 893, 895, 902, 1073742728,
196 906, 908, 1073742734, 929, // NOLINT
197 1073742755, 1013, 1073742839, 1153,
198 1073742986, 1327, 1073743153, 1366, // NOLINT
199 1369, 1073743201, 1415, 1073743312,
200 1514, 1073743344, 1522, 1073743392, // NOLINT
201 1610, 1073743470, 1647, 1073743473,
202 1747, 1749, 1073743589, 1766, // NOLINT
203 1073743598, 1775, 1073743610, 1788,
204 1791, 1808, 1073743634, 1839, // NOLINT
205 1073743693, 1957, 1969, 1073743818,
206 2026, 1073743860, 2037, 2042, // NOLINT
207 1073743872, 2069, 2074, 2084,
208 2088, 1073743936, 2136, 1073744032, // NOLINT
209 2226, 1073744132, 2361, 2365,
210 2384, 1073744216, 2401, 1073744241, // NOLINT
211 2432, 1073744261, 2444, 1073744271,
212 2448, 1073744275, 2472, 1073744298, // NOLINT
213 2480, 2482, 1073744310, 2489,
214 2493, 2510, 1073744348, 2525, // NOLINT
215 1073744351, 2529, 1073744368, 2545,
216 1073744389, 2570, 1073744399, 2576, // NOLINT
217 1073744403, 2600, 1073744426, 2608,
218 1073744434, 2611, 1073744437, 2614, // NOLINT
219 1073744440, 2617, 1073744473, 2652,
220 2654, 1073744498, 2676, 1073744517, // NOLINT
221 2701, 1073744527, 2705, 1073744531,
222 2728, 1073744554, 2736, 1073744562, // NOLINT
223 2739, 1073744565, 2745, 2749,
224 2768, 1073744608, 2785, 1073744645, // NOLINT
225 2828, 1073744655, 2832, 1073744659,
226 2856, 1073744682, 2864, 1073744690, // NOLINT
227 2867, 1073744693, 2873, 2877,
228 1073744732, 2909, 1073744735, 2913, // NOLINT
229 2929, 2947, 1073744773, 2954,
230 1073744782, 2960, 1073744786, 2965, // NOLINT
231 1073744793, 2970, 2972, 1073744798,
232 2975, 1073744803, 2980, 1073744808, // NOLINT
233 2986, 1073744814, 3001, 3024,
234 1073744901, 3084, 1073744910, 3088, // NOLINT
235 1073744914, 3112, 1073744938, 3129,
236 3133, 1073744984, 3161, 1073744992, // NOLINT
237 3169, 1073745029, 3212, 1073745038,
238 3216, 1073745042, 3240, 1073745066, // NOLINT
239 3251, 1073745077, 3257, 3261,
240 3294, 1073745120, 3297, 1073745137, // NOLINT
241 3314, 1073745157, 3340, 1073745166,
242 3344, 1073745170, 3386, 3389, // NOLINT
243 3406, 1073745248, 3425, 1073745274,
244 3455, 1073745285, 3478, 1073745306, // NOLINT
245 3505, 1073745331, 3515, 3517,
246 1073745344, 3526, 1073745409, 3632, // NOLINT
247 1073745458, 3635, 1073745472, 3654,
248 1073745537, 3714, 3716, 1073745543, // NOLINT
249 3720, 3722, 3725, 1073745556,
250 3735, 1073745561, 3743, 1073745569, // NOLINT
251 3747, 3749, 3751, 1073745578,
252 3755, 1073745581, 3760, 1073745586, // NOLINT
253 3763, 3773, 1073745600, 3780,
254 3782, 1073745628, 3807, 3840, // NOLINT
255 1073745728, 3911, 1073745737, 3948,
256 1073745800, 3980, 1073745920, 4138, // NOLINT
257 4159, 1073746000, 4181, 1073746010,
258 4189, 4193, 1073746021, 4198, // NOLINT
259 1073746030, 4208, 1073746037, 4225,
260 4238, 1073746080, 4293, 4295, // NOLINT
261 4301, 1073746128, 4346, 1073746172,
262 4680, 1073746506, 4685, 1073746512, // NOLINT
263 4694, 4696, 1073746522, 4701,
264 1073746528, 4744, 1073746570, 4749, // NOLINT
265 1073746576, 4784, 1073746610, 4789,
266 1073746616, 4798, 4800, 1073746626, // NOLINT
267 4805, 1073746632, 4822, 1073746648,
268 4880, 1073746706, 4885, 1073746712, // NOLINT
269 4954, 1073746816, 5007, 1073746848,
270 5108, 1073746945, 5740, 1073747567, // NOLINT
271 5759, 1073747585, 5786, 1073747616,
272 5866, 1073747694, 5880, 1073747712, // NOLINT
273 5900, 1073747726, 5905, 1073747744,
274 5937, 1073747776, 5969, 1073747808, // NOLINT
275 5996, 1073747822, 6000, 1073747840,
276 6067, 6103, 6108, 1073748000, // NOLINT
277 6263, 1073748096, 6312, 6314,
278 1073748144, 6389, 1073748224, 6430, // NOLINT
279 1073748304, 6509, 1073748336, 6516,
280 1073748352, 6571, 1073748417, 6599, // NOLINT
281 1073748480, 6678, 1073748512, 6740,
282 6823, 1073748741, 6963, 1073748805, // NOLINT
283 6987, 1073748867, 7072, 1073748910,
284 7087, 1073748922, 7141, 1073748992, // NOLINT
285 7203, 1073749069, 7247, 1073749082,
286 7293, 1073749225, 7404, 1073749230, // NOLINT
287 7409, 1073749237, 7414, 1073749248,
288 7615, 1073749504, 7957, 1073749784, // NOLINT
289 7965, 1073749792, 8005, 1073749832,
290 8013, 1073749840, 8023, 8025, // NOLINT
291 8027, 8029, 1073749855, 8061,
292 1073749888, 8116, 1073749942, 8124, // NOLINT
293 8126, 1073749954, 8132, 1073749958,
294 8140, 1073749968, 8147, 1073749974, // NOLINT
295 8155, 1073749984, 8172, 1073750002,
296 8180, 1073750006, 8188}; // NOLINT
297static constexpr uint16_t kLetterTable1Size = 87;
298static constexpr int32_t kLetterTable1[87] = {
299 113, 127, 1073741968, 156, 258, 263, 1073742090, 275, // NOLINT
300 277, 1073742105, 285, 292, 294, 296, 1073742122, 301, // NOLINT
301 1073742127, 313, 1073742140, 319, 1073742149, 329, 334, 1073742176, // NOLINT
302 392, 1073744896, 3118, 1073744944, 3166, 1073744992, 3300, 1073745131, // NOLINT
303 3310, 1073745138, 3315, 1073745152, 3365, 3367, 3373, 1073745200, // NOLINT
304 3431, 3439, 1073745280, 3478, 1073745312, 3494, 1073745320, 3502, // NOLINT
305 1073745328, 3510, 1073745336, 3518, 1073745344, 3526, 1073745352, 3534, // NOLINT
306 1073745360, 3542, 1073745368, 3550, 3631, 1073745925, 4103, 1073745953, // NOLINT
307 4137, 1073745969, 4149, 1073745976, 4156, 1073745985, 4246, 1073746077, // NOLINT
308 4255, 1073746081, 4346, 1073746172, 4351, 1073746181, 4397, 1073746225, // NOLINT
309 4494, 1073746336, 4538, 1073746416, 4607, 1073746944, 8191 }; // NOLINT
310static constexpr uint16_t kLetterTable2Size = 4;
311static constexpr int32_t kLetterTable2[4] = {
312 1073741824, 3509, 1073745408, 8191 }; // NOLINT
313static constexpr uint16_t kLetterTable3Size = 2;
314static constexpr int32_t kLetterTable3[2] = {
315 1073741824, 8191 }; // NOLINT
316static constexpr uint16_t kLetterTable4Size = 2;
317static constexpr int32_t kLetterTable4[2] = {
318 1073741824, 8140 }; // NOLINT
319static constexpr uint16_t kLetterTable5Size = 100;
320static constexpr int32_t kLetterTable5[100] = {
321 1073741824, 1164, 1073743056, 1277,
322 1073743104, 1548, 1073743376, 1567, // NOLINT
323 1073743402, 1579, 1073743424, 1646,
324 1073743487, 1693, 1073743520, 1775, // NOLINT
325 1073743639, 1823, 1073743650, 1928,
326 1073743755, 1934, 1073743760, 1965, // NOLINT
327 1073743792, 1969, 1073743863, 2049,
328 1073743875, 2053, 1073743879, 2058, // NOLINT
329 1073743884, 2082, 1073743936, 2163,
330 1073744002, 2227, 1073744114, 2295, // NOLINT
331 2299, 1073744138, 2341, 1073744176,
332 2374, 1073744224, 2428, 1073744260, // NOLINT
333 2482, 2511, 1073744352, 2532,
334 1073744358, 2543, 1073744378, 2558, // NOLINT
335 1073744384, 2600, 1073744448, 2626,
336 1073744452, 2635, 1073744480, 2678, // NOLINT
337 2682, 1073744510, 2735, 2737,
338 1073744565, 2742, 1073744569, 2749, // NOLINT
339 2752, 2754, 1073744603, 2781,
340 1073744608, 2794, 1073744626, 2804, // NOLINT
341 1073744641, 2822, 1073744649, 2830,
342 1073744657, 2838, 1073744672, 2854, // NOLINT
343 1073744680, 2862, 1073744688, 2906,
344 1073744732, 2911, 1073744740, 2917, // NOLINT
345 1073744832, 3042, 1073744896, 8191}; // NOLINT
346static constexpr uint16_t kLetterTable6Size = 6;
347static constexpr int32_t kLetterTable6[6] = {
348 1073741824, 6051, 1073747888, 6086, 1073747915, 6139 }; // NOLINT
349static constexpr uint16_t kLetterTable7Size = 48;
350static constexpr int32_t kLetterTable7[48] = {
351 1073748224, 6765, 1073748592, 6873, 1073748736, 6918, 1073748755, 6935, // NOLINT
352 6941, 1073748767, 6952, 1073748778, 6966, 1073748792, 6972, 6974, // NOLINT
353 1073748800, 6977, 1073748803, 6980, 1073748806, 7089, 1073748947, 7485, // NOLINT
354 1073749328, 7567, 1073749394, 7623, 1073749488, 7675, 1073749616, 7796, // NOLINT
355 1073749622, 7932, 1073749793, 7994, 1073749825, 8026, 1073749862, 8126, // NOLINT
356 1073749954, 8135, 1073749962, 8143, 1073749970, 8151, 1073749978, 8156 }; // NOLINT
357bool Letter::Is(int32_t c) {
358 intptr_t chunk_index = c >> 13;
359 switch (chunk_index) {
360 case 0: return LookupPredicate(kLetterTable0,
362 c);
363 case 1: return LookupPredicate(kLetterTable1,
365 c);
366 case 2: return LookupPredicate(kLetterTable2,
368 c);
369 case 3: return LookupPredicate(kLetterTable3,
371 c);
372 case 4: return LookupPredicate(kLetterTable4,
374 c);
375 case 5: return LookupPredicate(kLetterTable5,
377 c);
378 case 6: return LookupPredicate(kLetterTable6,
380 c);
381 case 7: return LookupPredicate(kLetterTable7,
383 c);
384 default: return false;
385 }
386}
387
388
390 {{kSentinel}} }; // NOLINT
391static constexpr uint16_t kEcma262CanonicalizeTable0Size = 498; // NOLINT
392static constexpr int32_t kEcma262CanonicalizeTable0[996] = {
393 1073741921, -128, 122, -128, 181, 2972,
394 1073742048, -128, 246, -128, 1073742072, -128,
395 254, -128, 255, 484, // NOLINT
396 257, -4, 259, -4, 261, -4,
397 263, -4, 265, -4, 267, -4,
398 269, -4, 271, -4, // NOLINT
399 273, -4, 275, -4, 277, -4,
400 279, -4, 281, -4, 283, -4,
401 285, -4, 287, -4, // NOLINT
402 289, -4, 291, -4, 293, -4,
403 295, -4, 297, -4, 299, -4,
404 301, -4, 303, -4, // NOLINT
405 307, -4, 309, -4, 311, -4,
406 314, -4, 316, -4, 318, -4,
407 320, -4, 322, -4, // NOLINT
408 324, -4, 326, -4, 328, -4,
409 331, -4, 333, -4, 335, -4,
410 337, -4, 339, -4, // NOLINT
411 341, -4, 343, -4, 345, -4,
412 347, -4, 349, -4, 351, -4,
413 353, -4, 355, -4, // NOLINT
414 357, -4, 359, -4, 361, -4,
415 363, -4, 365, -4, 367, -4,
416 369, -4, 371, -4, // NOLINT
417 373, -4, 375, -4, 378, -4,
418 380, -4, 382, -4, 384, 780,
419 387, -4, 389, -4, // NOLINT
420 392, -4, 396, -4, 402, -4,
421 405, 388, 409, -4, 410, 652,
422 414, 520, 417, -4, // NOLINT
423 419, -4, 421, -4, 424, -4,
424 429, -4, 432, -4, 436, -4,
425 438, -4, 441, -4, // NOLINT
426 445, -4, 447, 224, 453, -4,
427 454, -8, 456, -4, 457, -8,
428 459, -4, 460, -8, // NOLINT
429 462, -4, 464, -4, 466, -4,
430 468, -4, 470, -4, 472, -4,
431 474, -4, 476, -4, // NOLINT
432 477, -316, 479, -4, 481, -4,
433 483, -4, 485, -4, 487, -4,
434 489, -4, 491, -4, // NOLINT
435 493, -4, 495, -4, 498, -4,
436 499, -8, 501, -4, 505, -4,
437 507, -4, 509, -4, // NOLINT
438 511, -4, 513, -4, 515, -4,
439 517, -4, 519, -4, 521, -4,
440 523, -4, 525, -4, // NOLINT
441 527, -4, 529, -4, 531, -4,
442 533, -4, 535, -4, 537, -4,
443 539, -4, 541, -4, // NOLINT
444 543, -4, 547, -4, 549, -4,
445 551, -4, 553, -4, 555, -4,
446 557, -4, 559, -4, // NOLINT
447 561, -4, 563, -4, 572, -4,
448 1073742399, 43260, 576, 43260, 578, -4,
449 583, -4, 585, -4, // NOLINT
450 587, -4, 589, -4, 591, -4,
451 592, 43132, 593, 43120, 594, 43128,
452 595, -840, 596, -824, // NOLINT
453 1073742422, -820, 599, -820, 601, -808,
454 603, -812, 604, 169276, 608, -820,
455 609, 169260, 611, -828, // NOLINT
456 613, 169120, 614, 169232, 616, -836,
457 617, -844, 619, 42972, 620, 169220,
458 623, -844, 625, 42996, // NOLINT
459 626, -852, 629, -856, 637, 42908,
460 640, -872, 643, -872, 647, 169128,
461 648, -872, 649, -276, // NOLINT
462 1073742474, -868, 651, -868, 652, -284,
463 658, -876, 670, 169032, 837, 336,
464 881, -4, 883, -4, // NOLINT
465 887, -4, 1073742715, 520, 893, 520,
466 940, -152, 1073742765, -148, 943, -148,
467 1073742769, -128, 961, -128, // NOLINT
468 962, -124, 1073742787, -128, 971, -128,
469 972, -256, 1073742797, -252, 974, -252,
470 976, -248, 977, -228, // NOLINT
471 981, -188, 982, -216, 983, -32,
472 985, -4, 987, -4, 989, -4,
473 991, -4, 993, -4, // NOLINT
474 995, -4, 997, -4, 999, -4,
475 1001, -4, 1003, -4, 1005, -4,
476 1007, -4, 1008, -344, // NOLINT
477 1009, -320, 1010, 28, 1011, -464,
478 1013, -384, 1016, -4, 1019, -4,
479 1073742896, -128, 1103, -128, // NOLINT
480 1073742928, -320, 1119, -320, 1121, -4,
481 1123, -4, 1125, -4, 1127, -4,
482 1129, -4, 1131, -4, // NOLINT
483 1133, -4, 1135, -4, 1137, -4,
484 1139, -4, 1141, -4, 1143, -4,
485 1145, -4, 1147, -4, // NOLINT
486 1149, -4, 1151, -4, 1153, -4,
487 1163, -4, 1165, -4, 1167, -4,
488 1169, -4, 1171, -4, // NOLINT
489 1173, -4, 1175, -4, 1177, -4,
490 1179, -4, 1181, -4, 1183, -4,
491 1185, -4, 1187, -4, // NOLINT
492 1189, -4, 1191, -4, 1193, -4,
493 1195, -4, 1197, -4, 1199, -4,
494 1201, -4, 1203, -4, // NOLINT
495 1205, -4, 1207, -4, 1209, -4,
496 1211, -4, 1213, -4, 1215, -4,
497 1218, -4, 1220, -4, // NOLINT
498 1222, -4, 1224, -4, 1226, -4,
499 1228, -4, 1230, -4, 1231, -60,
500 1233, -4, 1235, -4, // NOLINT
501 1237, -4, 1239, -4, 1241, -4,
502 1243, -4, 1245, -4, 1247, -4,
503 1249, -4, 1251, -4, // NOLINT
504 1253, -4, 1255, -4, 1257, -4,
505 1259, -4, 1261, -4, 1263, -4,
506 1265, -4, 1267, -4, // NOLINT
507 1269, -4, 1271, -4, 1273, -4,
508 1275, -4, 1277, -4, 1279, -4,
509 1281, -4, 1283, -4, // NOLINT
510 1285, -4, 1287, -4, 1289, -4,
511 1291, -4, 1293, -4, 1295, -4,
512 1297, -4, 1299, -4, // NOLINT
513 1301, -4, 1303, -4, 1305, -4,
514 1307, -4, 1309, -4, 1311, -4,
515 1313, -4, 1315, -4, // NOLINT
516 1317, -4, 1319, -4, 1321, -4,
517 1323, -4, 1325, -4, 1327, -4,
518 1073743201, -192, 1414, -192, // NOLINT
519 7545, 141328, 7549, 15256, 7681, -4,
520 7683, -4, 7685, -4, 7687, -4,
521 7689, -4, 7691, -4, // NOLINT
522 7693, -4, 7695, -4, 7697, -4,
523 7699, -4, 7701, -4, 7703, -4,
524 7705, -4, 7707, -4, // NOLINT
525 7709, -4, 7711, -4, 7713, -4,
526 7715, -4, 7717, -4, 7719, -4,
527 7721, -4, 7723, -4, // NOLINT
528 7725, -4, 7727, -4, 7729, -4,
529 7731, -4, 7733, -4, 7735, -4,
530 7737, -4, 7739, -4, // NOLINT
531 7741, -4, 7743, -4, 7745, -4,
532 7747, -4, 7749, -4, 7751, -4,
533 7753, -4, 7755, -4, // NOLINT
534 7757, -4, 7759, -4, 7761, -4,
535 7763, -4, 7765, -4, 7767, -4,
536 7769, -4, 7771, -4, // NOLINT
537 7773, -4, 7775, -4, 7777, -4,
538 7779, -4, 7781, -4, 7783, -4,
539 7785, -4, 7787, -4, // NOLINT
540 7789, -4, 7791, -4, 7793, -4,
541 7795, -4, 7797, -4, 7799, -4,
542 7801, -4, 7803, -4, // NOLINT
543 7805, -4, 7807, -4, 7809, -4,
544 7811, -4, 7813, -4, 7815, -4,
545 7817, -4, 7819, -4, // NOLINT
546 7821, -4, 7823, -4, 7825, -4,
547 7827, -4, 7829, -4, 7835, -236,
548 7841, -4, 7843, -4, // NOLINT
549 7845, -4, 7847, -4, 7849, -4,
550 7851, -4, 7853, -4, 7855, -4,
551 7857, -4, 7859, -4, // NOLINT
552 7861, -4, 7863, -4, 7865, -4,
553 7867, -4, 7869, -4, 7871, -4,
554 7873, -4, 7875, -4, // NOLINT
555 7877, -4, 7879, -4, 7881, -4,
556 7883, -4, 7885, -4, 7887, -4,
557 7889, -4, 7891, -4, // NOLINT
558 7893, -4, 7895, -4, 7897, -4,
559 7899, -4, 7901, -4, 7903, -4,
560 7905, -4, 7907, -4, // NOLINT
561 7909, -4, 7911, -4, 7913, -4,
562 7915, -4, 7917, -4, 7919, -4,
563 7921, -4, 7923, -4, // NOLINT
564 7925, -4, 7927, -4, 7929, -4,
565 7931, -4, 7933, -4, 7935, -4,
566 1073749760, 32, 7943, 32, // NOLINT
567 1073749776, 32, 7957, 32, 1073749792, 32,
568 7975, 32, 1073749808, 32, 7991, 32,
569 1073749824, 32, 8005, 32, // NOLINT
570 8017, 32, 8019, 32, 8021, 32,
571 8023, 32, 1073749856, 32, 8039, 32,
572 1073749872, 296, 8049, 296, // NOLINT
573 1073749874, 344, 8053, 344, 1073749878, 400,
574 8055, 400, 1073749880, 512, 8057, 512,
575 1073749882, 448, 8059, 448, // NOLINT
576 1073749884, 504, 8061, 504, 1073749936, 32,
577 8113, 32, 8126, -28820, 1073749968, 32,
578 8145, 32, 1073749984, 32, // NOLINT
579 8161, 32, 8165, 28}; // NOLINT
581 {{kSentinel}} }; // NOLINT
582static constexpr uint16_t kEcma262CanonicalizeTable1Size = 73; // NOLINT
583static constexpr int32_t kEcma262CanonicalizeTable1[146] = {
584 334, -112, 1073742192, -64, 383, -64, 388, -4, 1073743056, -104, 1257, -104, 1073744944, -192, 3166, -192, // NOLINT
585 3169, -4, 3173, -43180, 3174, -43168, 3176, -4, 3178, -4, 3180, -4, 3187, -4, 3190, -4, // NOLINT
586 3201, -4, 3203, -4, 3205, -4, 3207, -4, 3209, -4, 3211, -4, 3213, -4, 3215, -4, // NOLINT
587 3217, -4, 3219, -4, 3221, -4, 3223, -4, 3225, -4, 3227, -4, 3229, -4, 3231, -4, // NOLINT
588 3233, -4, 3235, -4, 3237, -4, 3239, -4, 3241, -4, 3243, -4, 3245, -4, 3247, -4, // NOLINT
589 3249, -4, 3251, -4, 3253, -4, 3255, -4, 3257, -4, 3259, -4, 3261, -4, 3263, -4, // NOLINT
590 3265, -4, 3267, -4, 3269, -4, 3271, -4, 3273, -4, 3275, -4, 3277, -4, 3279, -4, // NOLINT
591 3281, -4, 3283, -4, 3285, -4, 3287, -4, 3289, -4, 3291, -4, 3293, -4, 3295, -4, // NOLINT
592 3297, -4, 3299, -4, 3308, -4, 3310, -4, 3315, -4, 1073745152, -29056, 3365, -29056, 3367, -29056, // NOLINT
593 3373, -29056 }; // NOLINT
595 {{kSentinel}} }; // NOLINT
596static constexpr uint16_t kEcma262CanonicalizeTable5Size = 95; // NOLINT
597static constexpr int32_t kEcma262CanonicalizeTable5
598 [190] = {1601, -4, 1603, -4, 1605, -4, 1607, -4,
599 1609, -4, 1611, -4, 1613, -4, 1615, -4, // NOLINT
600 1617, -4, 1619, -4, 1621, -4, 1623, -4,
601 1625, -4, 1627, -4, 1629, -4, 1631, -4, // NOLINT
602 1633, -4, 1635, -4, 1637, -4, 1639, -4,
603 1641, -4, 1643, -4, 1645, -4, 1665, -4, // NOLINT
604 1667, -4, 1669, -4, 1671, -4, 1673, -4,
605 1675, -4, 1677, -4, 1679, -4, 1681, -4, // NOLINT
606 1683, -4, 1685, -4, 1687, -4, 1689, -4,
607 1691, -4, 1827, -4, 1829, -4, 1831, -4, // NOLINT
608 1833, -4, 1835, -4, 1837, -4, 1839, -4,
609 1843, -4, 1845, -4, 1847, -4, 1849, -4, // NOLINT
610 1851, -4, 1853, -4, 1855, -4, 1857, -4,
611 1859, -4, 1861, -4, 1863, -4, 1865, -4, // NOLINT
612 1867, -4, 1869, -4, 1871, -4, 1873, -4,
613 1875, -4, 1877, -4, 1879, -4, 1881, -4, // NOLINT
614 1883, -4, 1885, -4, 1887, -4, 1889, -4,
615 1891, -4, 1893, -4, 1895, -4, 1897, -4, // NOLINT
616 1899, -4, 1901, -4, 1903, -4, 1914, -4,
617 1916, -4, 1919, -4, 1921, -4, 1923, -4, // NOLINT
618 1925, -4, 1927, -4, 1932, -4, 1937, -4,
619 1939, -4, 1943, -4, 1945, -4, 1947, -4, // NOLINT
620 1949, -4, 1951, -4, 1953, -4, 1955, -4,
621 1957, -4, 1959, -4, 1961, -4}; // NOLINT
623 {{kSentinel}} }; // NOLINT
624static constexpr uint16_t kEcma262CanonicalizeTable7Size = 2; // NOLINT
625static constexpr int32_t kEcma262CanonicalizeTable7[4] = {
626 1073749825, -128, 8026, -128 }; // NOLINT
628 int32_t n,
629 int32_t* result,
630 bool* allow_caching_ptr) {
631 intptr_t chunk_index = c >> 13;
632 switch (chunk_index) {
633 case 0: return LookupMapping<true>(kEcma262CanonicalizeTable0,
636 c,
637 n,
638 result,
639 allow_caching_ptr);
640 case 1: return LookupMapping<true>(kEcma262CanonicalizeTable1,
643 c,
644 n,
645 result,
646 allow_caching_ptr);
647 case 5: return LookupMapping<true>(kEcma262CanonicalizeTable5,
650 c,
651 n,
652 result,
653 allow_caching_ptr);
654 case 7: return LookupMapping<true>(kEcma262CanonicalizeTable7,
657 c,
658 n,
659 result,
660 allow_caching_ptr);
661 default: return 0;
662 }
663}
664
667 {{65, 97, kSentinel}},
668 {{90, 122, kSentinel}},
669 {{181, 924, 956, kSentinel}},
670 {{192, 224, kSentinel}}, // NOLINT
671 {{214, 246, kSentinel}},
672 {{216, 248, kSentinel}},
673 {{222, 254, kSentinel}},
674 {{255, 376, kSentinel}}, // NOLINT
675 {{256, 257, kSentinel}},
676 {{258, 259, kSentinel}},
677 {{260, 261, kSentinel}},
678 {{262, 263, kSentinel}}, // NOLINT
679 {{264, 265, kSentinel}},
680 {{266, 267, kSentinel}},
681 {{268, 269, kSentinel}},
682 {{270, 271, kSentinel}}, // NOLINT
683 {{272, 273, kSentinel}},
684 {{274, 275, kSentinel}},
685 {{276, 277, kSentinel}},
686 {{278, 279, kSentinel}}, // NOLINT
687 {{280, 281, kSentinel}},
688 {{282, 283, kSentinel}},
689 {{284, 285, kSentinel}},
690 {{286, 287, kSentinel}}, // NOLINT
691 {{288, 289, kSentinel}},
692 {{290, 291, kSentinel}},
693 {{292, 293, kSentinel}},
694 {{294, 295, kSentinel}}, // NOLINT
695 {{296, 297, kSentinel}},
696 {{298, 299, kSentinel}},
697 {{300, 301, kSentinel}},
698 {{302, 303, kSentinel}}, // NOLINT
699 {{306, 307, kSentinel}},
700 {{308, 309, kSentinel}},
701 {{310, 311, kSentinel}},
702 {{313, 314, kSentinel}}, // NOLINT
703 {{315, 316, kSentinel}},
704 {{317, 318, kSentinel}},
705 {{319, 320, kSentinel}},
706 {{321, 322, kSentinel}}, // NOLINT
707 {{323, 324, kSentinel}},
708 {{325, 326, kSentinel}},
709 {{327, 328, kSentinel}},
710 {{330, 331, kSentinel}}, // NOLINT
711 {{332, 333, kSentinel}},
712 {{334, 335, kSentinel}},
713 {{336, 337, kSentinel}},
714 {{338, 339, kSentinel}}, // NOLINT
715 {{340, 341, kSentinel}},
716 {{342, 343, kSentinel}},
717 {{344, 345, kSentinel}},
718 {{346, 347, kSentinel}}, // NOLINT
719 {{348, 349, kSentinel}},
720 {{350, 351, kSentinel}},
721 {{352, 353, kSentinel}},
722 {{354, 355, kSentinel}}, // NOLINT
723 {{356, 357, kSentinel}},
724 {{358, 359, kSentinel}},
725 {{360, 361, kSentinel}},
726 {{362, 363, kSentinel}}, // NOLINT
727 {{364, 365, kSentinel}},
728 {{366, 367, kSentinel}},
729 {{368, 369, kSentinel}},
730 {{370, 371, kSentinel}}, // NOLINT
731 {{372, 373, kSentinel}},
732 {{374, 375, kSentinel}},
733 {{377, 378, kSentinel}},
734 {{379, 380, kSentinel}}, // NOLINT
735 {{381, 382, kSentinel}},
736 {{384, 579, kSentinel}},
737 {{385, 595, kSentinel}},
738 {{386, 387, kSentinel}}, // NOLINT
739 {{388, 389, kSentinel}},
740 {{390, 596, kSentinel}},
741 {{391, 392, kSentinel}},
742 {{393, 598, kSentinel}}, // NOLINT
743 {{394, 599, kSentinel}},
744 {{395, 396, kSentinel}},
745 {{398, 477, kSentinel}},
746 {{399, 601, kSentinel}}, // NOLINT
747 {{400, 603, kSentinel}},
748 {{401, 402, kSentinel}},
749 {{403, 608, kSentinel}},
750 {{404, 611, kSentinel}}, // NOLINT
751 {{405, 502, kSentinel}},
752 {{406, 617, kSentinel}},
753 {{407, 616, kSentinel}},
754 {{408, 409, kSentinel}}, // NOLINT
755 {{410, 573, kSentinel}},
756 {{412, 623, kSentinel}},
757 {{413, 626, kSentinel}},
758 {{414, 544, kSentinel}}, // NOLINT
759 {{415, 629, kSentinel}},
760 {{416, 417, kSentinel}},
761 {{418, 419, kSentinel}},
762 {{420, 421, kSentinel}}, // NOLINT
763 {{422, 640, kSentinel}},
764 {{423, 424, kSentinel}},
765 {{425, 643, kSentinel}},
766 {{428, 429, kSentinel}}, // NOLINT
767 {{430, 648, kSentinel}},
768 {{431, 432, kSentinel}},
769 {{433, 650, kSentinel}},
770 {{434, 651, kSentinel}}, // NOLINT
771 {{435, 436, kSentinel}},
772 {{437, 438, kSentinel}},
773 {{439, 658, kSentinel}},
774 {{440, 441, kSentinel}}, // NOLINT
775 {{444, 445, kSentinel}},
776 {{447, 503, kSentinel}},
777 {{452, 453, 454, kSentinel}},
778 {{455, 456, 457, kSentinel}}, // NOLINT
779 {{458, 459, 460, kSentinel}},
780 {{461, 462, kSentinel}},
781 {{463, 464, kSentinel}},
782 {{465, 466, kSentinel}}, // NOLINT
783 {{467, 468, kSentinel}},
784 {{469, 470, kSentinel}},
785 {{471, 472, kSentinel}},
786 {{473, 474, kSentinel}}, // NOLINT
787 {{475, 476, kSentinel}},
788 {{478, 479, kSentinel}},
789 {{480, 481, kSentinel}},
790 {{482, 483, kSentinel}}, // NOLINT
791 {{484, 485, kSentinel}},
792 {{486, 487, kSentinel}},
793 {{488, 489, kSentinel}},
794 {{490, 491, kSentinel}}, // NOLINT
795 {{492, 493, kSentinel}},
796 {{494, 495, kSentinel}},
797 {{497, 498, 499, kSentinel}},
798 {{500, 501, kSentinel}}, // NOLINT
799 {{504, 505, kSentinel}},
800 {{506, 507, kSentinel}},
801 {{508, 509, kSentinel}},
802 {{510, 511, kSentinel}}, // NOLINT
803 {{512, 513, kSentinel}},
804 {{514, 515, kSentinel}},
805 {{516, 517, kSentinel}},
806 {{518, 519, kSentinel}}, // NOLINT
807 {{520, 521, kSentinel}},
808 {{522, 523, kSentinel}},
809 {{524, 525, kSentinel}},
810 {{526, 527, kSentinel}}, // NOLINT
811 {{528, 529, kSentinel}},
812 {{530, 531, kSentinel}},
813 {{532, 533, kSentinel}},
814 {{534, 535, kSentinel}}, // NOLINT
815 {{536, 537, kSentinel}},
816 {{538, 539, kSentinel}},
817 {{540, 541, kSentinel}},
818 {{542, 543, kSentinel}}, // NOLINT
819 {{546, 547, kSentinel}},
820 {{548, 549, kSentinel}},
821 {{550, 551, kSentinel}},
822 {{552, 553, kSentinel}}, // NOLINT
823 {{554, 555, kSentinel}},
824 {{556, 557, kSentinel}},
825 {{558, 559, kSentinel}},
826 {{560, 561, kSentinel}}, // NOLINT
827 {{562, 563, kSentinel}},
828 {{570, 11365, kSentinel}},
829 {{571, 572, kSentinel}},
830 {{574, 11366, kSentinel}}, // NOLINT
831 {{575, 11390, kSentinel}},
832 {{576, 11391, kSentinel}},
833 {{577, 578, kSentinel}},
834 {{580, 649, kSentinel}}, // NOLINT
835 {{581, 652, kSentinel}},
836 {{582, 583, kSentinel}},
837 {{584, 585, kSentinel}},
838 {{586, 587, kSentinel}}, // NOLINT
839 {{588, 589, kSentinel}},
840 {{590, 591, kSentinel}},
841 {{592, 11375, kSentinel}},
842 {{593, 11373, kSentinel}}, // NOLINT
843 {{594, 11376, kSentinel}},
844 {{604, 42923, kSentinel}},
845 {{609, 42924, kSentinel}},
846 {{613, 42893, kSentinel}}, // NOLINT
847 {{614, 42922, kSentinel}},
848 {{619, 11362, kSentinel}},
849 {{620, 42925, kSentinel}},
850 {{625, 11374, kSentinel}}, // NOLINT
851 {{637, 11364, kSentinel}},
852 {{647, 42929, kSentinel}},
853 {{670, 42928, kSentinel}},
854 {{837, 921, 953, 8126}}, // NOLINT
855 {{880, 881, kSentinel}},
856 {{882, 883, kSentinel}},
857 {{886, 887, kSentinel}},
858 {{891, 1021, kSentinel}}, // NOLINT
859 {{893, 1023, kSentinel}},
860 {{895, 1011, kSentinel}},
861 {{902, 940, kSentinel}},
862 {{904, 941, kSentinel}}, // NOLINT
863 {{906, 943, kSentinel}},
864 {{908, 972, kSentinel}},
865 {{910, 973, kSentinel}},
866 {{911, 974, kSentinel}}, // NOLINT
867 {{913, 945, kSentinel}},
868 {{914, 946, 976, kSentinel}},
869 {{915, 947, kSentinel}},
870 {{916, 948, kSentinel}}, // NOLINT
871 {{917, 949, 1013, kSentinel}},
872 {{918, 950, kSentinel}},
873 {{919, 951, kSentinel}},
874 {{920, 952, 977, kSentinel}}, // NOLINT
875 {{922, 954, 1008, kSentinel}},
876 {{923, 955, kSentinel}},
877 {{925, 957, kSentinel}},
878 {{927, 959, kSentinel}}, // NOLINT
879 {{928, 960, 982, kSentinel}},
880 {{929, 961, 1009, kSentinel}},
881 {{931, 962, 963, kSentinel}},
882 {{932, 964, kSentinel}}, // NOLINT
883 {{933, 965, kSentinel}},
884 {{934, 966, 981, kSentinel}},
885 {{935, 967, kSentinel}},
886 {{939, 971, kSentinel}}, // NOLINT
887 {{975, 983, kSentinel}},
888 {{984, 985, kSentinel}},
889 {{986, 987, kSentinel}},
890 {{988, 989, kSentinel}}, // NOLINT
891 {{990, 991, kSentinel}},
892 {{992, 993, kSentinel}},
893 {{994, 995, kSentinel}},
894 {{996, 997, kSentinel}}, // NOLINT
895 {{998, 999, kSentinel}},
896 {{1000, 1001, kSentinel}},
897 {{1002, 1003, kSentinel}},
898 {{1004, 1005, kSentinel}}, // NOLINT
899 {{1006, 1007, kSentinel}},
900 {{1010, 1017, kSentinel}},
901 {{1015, 1016, kSentinel}},
902 {{1018, 1019, kSentinel}}, // NOLINT
903 {{1024, 1104, kSentinel}},
904 {{1039, 1119, kSentinel}},
905 {{1040, 1072, kSentinel}},
906 {{1071, 1103, kSentinel}}, // NOLINT
907 {{1120, 1121, kSentinel}},
908 {{1122, 1123, kSentinel}},
909 {{1124, 1125, kSentinel}},
910 {{1126, 1127, kSentinel}}, // NOLINT
911 {{1128, 1129, kSentinel}},
912 {{1130, 1131, kSentinel}},
913 {{1132, 1133, kSentinel}},
914 {{1134, 1135, kSentinel}}, // NOLINT
915 {{1136, 1137, kSentinel}},
916 {{1138, 1139, kSentinel}},
917 {{1140, 1141, kSentinel}},
918 {{1142, 1143, kSentinel}}, // NOLINT
919 {{1144, 1145, kSentinel}},
920 {{1146, 1147, kSentinel}},
921 {{1148, 1149, kSentinel}},
922 {{1150, 1151, kSentinel}}, // NOLINT
923 {{1152, 1153, kSentinel}},
924 {{1162, 1163, kSentinel}},
925 {{1164, 1165, kSentinel}},
926 {{1166, 1167, kSentinel}}, // NOLINT
927 {{1168, 1169, kSentinel}},
928 {{1170, 1171, kSentinel}},
929 {{1172, 1173, kSentinel}},
930 {{1174, 1175, kSentinel}}, // NOLINT
931 {{1176, 1177, kSentinel}},
932 {{1178, 1179, kSentinel}},
933 {{1180, 1181, kSentinel}},
934 {{1182, 1183, kSentinel}}, // NOLINT
935 {{1184, 1185, kSentinel}},
936 {{1186, 1187, kSentinel}},
937 {{1188, 1189, kSentinel}},
938 {{1190, 1191, kSentinel}}, // NOLINT
939 {{1192, 1193, kSentinel}},
940 {{1194, 1195, kSentinel}},
941 {{1196, 1197, kSentinel}},
942 {{1198, 1199, kSentinel}}, // NOLINT
943 {{1200, 1201, kSentinel}},
944 {{1202, 1203, kSentinel}},
945 {{1204, 1205, kSentinel}},
946 {{1206, 1207, kSentinel}}, // NOLINT
947 {{1208, 1209, kSentinel}},
948 {{1210, 1211, kSentinel}},
949 {{1212, 1213, kSentinel}},
950 {{1214, 1215, kSentinel}}, // NOLINT
951 {{1216, 1231, kSentinel}},
952 {{1217, 1218, kSentinel}},
953 {{1219, 1220, kSentinel}},
954 {{1221, 1222, kSentinel}}, // NOLINT
955 {{1223, 1224, kSentinel}},
956 {{1225, 1226, kSentinel}},
957 {{1227, 1228, kSentinel}},
958 {{1229, 1230, kSentinel}}, // NOLINT
959 {{1232, 1233, kSentinel}},
960 {{1234, 1235, kSentinel}},
961 {{1236, 1237, kSentinel}},
962 {{1238, 1239, kSentinel}}, // NOLINT
963 {{1240, 1241, kSentinel}},
964 {{1242, 1243, kSentinel}},
965 {{1244, 1245, kSentinel}},
966 {{1246, 1247, kSentinel}}, // NOLINT
967 {{1248, 1249, kSentinel}},
968 {{1250, 1251, kSentinel}},
969 {{1252, 1253, kSentinel}},
970 {{1254, 1255, kSentinel}}, // NOLINT
971 {{1256, 1257, kSentinel}},
972 {{1258, 1259, kSentinel}},
973 {{1260, 1261, kSentinel}},
974 {{1262, 1263, kSentinel}}, // NOLINT
975 {{1264, 1265, kSentinel}},
976 {{1266, 1267, kSentinel}},
977 {{1268, 1269, kSentinel}},
978 {{1270, 1271, kSentinel}}, // NOLINT
979 {{1272, 1273, kSentinel}},
980 {{1274, 1275, kSentinel}},
981 {{1276, 1277, kSentinel}},
982 {{1278, 1279, kSentinel}}, // NOLINT
983 {{1280, 1281, kSentinel}},
984 {{1282, 1283, kSentinel}},
985 {{1284, 1285, kSentinel}},
986 {{1286, 1287, kSentinel}}, // NOLINT
987 {{1288, 1289, kSentinel}},
988 {{1290, 1291, kSentinel}},
989 {{1292, 1293, kSentinel}},
990 {{1294, 1295, kSentinel}}, // NOLINT
991 {{1296, 1297, kSentinel}},
992 {{1298, 1299, kSentinel}},
993 {{1300, 1301, kSentinel}},
994 {{1302, 1303, kSentinel}}, // NOLINT
995 {{1304, 1305, kSentinel}},
996 {{1306, 1307, kSentinel}},
997 {{1308, 1309, kSentinel}},
998 {{1310, 1311, kSentinel}}, // NOLINT
999 {{1312, 1313, kSentinel}},
1000 {{1314, 1315, kSentinel}},
1001 {{1316, 1317, kSentinel}},
1002 {{1318, 1319, kSentinel}}, // NOLINT
1003 {{1320, 1321, kSentinel}},
1004 {{1322, 1323, kSentinel}},
1005 {{1324, 1325, kSentinel}},
1006 {{1326, 1327, kSentinel}}, // NOLINT
1007 {{1329, 1377, kSentinel}},
1008 {{1366, 1414, kSentinel}},
1009 {{4256, 11520, kSentinel}},
1010 {{4293, 11557, kSentinel}}, // NOLINT
1011 {{4295, 11559, kSentinel}},
1012 {{4301, 11565, kSentinel}},
1013 {{7545, 42877, kSentinel}},
1014 {{7549, 11363, kSentinel}}, // NOLINT
1015 {{7680, 7681, kSentinel}},
1016 {{7682, 7683, kSentinel}},
1017 {{7684, 7685, kSentinel}},
1018 {{7686, 7687, kSentinel}}, // NOLINT
1019 {{7688, 7689, kSentinel}},
1020 {{7690, 7691, kSentinel}},
1021 {{7692, 7693, kSentinel}},
1022 {{7694, 7695, kSentinel}}, // NOLINT
1023 {{7696, 7697, kSentinel}},
1024 {{7698, 7699, kSentinel}},
1025 {{7700, 7701, kSentinel}},
1026 {{7702, 7703, kSentinel}}, // NOLINT
1027 {{7704, 7705, kSentinel}},
1028 {{7706, 7707, kSentinel}},
1029 {{7708, 7709, kSentinel}},
1030 {{7710, 7711, kSentinel}}, // NOLINT
1031 {{7712, 7713, kSentinel}},
1032 {{7714, 7715, kSentinel}},
1033 {{7716, 7717, kSentinel}},
1034 {{7718, 7719, kSentinel}}, // NOLINT
1035 {{7720, 7721, kSentinel}},
1036 {{7722, 7723, kSentinel}},
1037 {{7724, 7725, kSentinel}},
1038 {{7726, 7727, kSentinel}}, // NOLINT
1039 {{7728, 7729, kSentinel}},
1040 {{7730, 7731, kSentinel}},
1041 {{7732, 7733, kSentinel}},
1042 {{7734, 7735, kSentinel}}, // NOLINT
1043 {{7736, 7737, kSentinel}},
1044 {{7738, 7739, kSentinel}},
1045 {{7740, 7741, kSentinel}},
1046 {{7742, 7743, kSentinel}}, // NOLINT
1047 {{7744, 7745, kSentinel}},
1048 {{7746, 7747, kSentinel}},
1049 {{7748, 7749, kSentinel}},
1050 {{7750, 7751, kSentinel}}, // NOLINT
1051 {{7752, 7753, kSentinel}},
1052 {{7754, 7755, kSentinel}},
1053 {{7756, 7757, kSentinel}},
1054 {{7758, 7759, kSentinel}}, // NOLINT
1055 {{7760, 7761, kSentinel}},
1056 {{7762, 7763, kSentinel}},
1057 {{7764, 7765, kSentinel}},
1058 {{7766, 7767, kSentinel}}, // NOLINT
1059 {{7768, 7769, kSentinel}},
1060 {{7770, 7771, kSentinel}},
1061 {{7772, 7773, kSentinel}},
1062 {{7774, 7775, kSentinel}}, // NOLINT
1063 {{7776, 7777, 7835, kSentinel}},
1064 {{7778, 7779, kSentinel}},
1065 {{7780, 7781, kSentinel}},
1066 {{7782, 7783, kSentinel}}, // NOLINT
1067 {{7784, 7785, kSentinel}},
1068 {{7786, 7787, kSentinel}},
1069 {{7788, 7789, kSentinel}},
1070 {{7790, 7791, kSentinel}}, // NOLINT
1071 {{7792, 7793, kSentinel}},
1072 {{7794, 7795, kSentinel}},
1073 {{7796, 7797, kSentinel}},
1074 {{7798, 7799, kSentinel}}, // NOLINT
1075 {{7800, 7801, kSentinel}},
1076 {{7802, 7803, kSentinel}},
1077 {{7804, 7805, kSentinel}},
1078 {{7806, 7807, kSentinel}}, // NOLINT
1079 {{7808, 7809, kSentinel}},
1080 {{7810, 7811, kSentinel}},
1081 {{7812, 7813, kSentinel}},
1082 {{7814, 7815, kSentinel}}, // NOLINT
1083 {{7816, 7817, kSentinel}},
1084 {{7818, 7819, kSentinel}},
1085 {{7820, 7821, kSentinel}},
1086 {{7822, 7823, kSentinel}}, // NOLINT
1087 {{7824, 7825, kSentinel}},
1088 {{7826, 7827, kSentinel}},
1089 {{7828, 7829, kSentinel}},
1090 {{7840, 7841, kSentinel}}, // NOLINT
1091 {{7842, 7843, kSentinel}},
1092 {{7844, 7845, kSentinel}},
1093 {{7846, 7847, kSentinel}},
1094 {{7848, 7849, kSentinel}}, // NOLINT
1095 {{7850, 7851, kSentinel}},
1096 {{7852, 7853, kSentinel}},
1097 {{7854, 7855, kSentinel}},
1098 {{7856, 7857, kSentinel}}, // NOLINT
1099 {{7858, 7859, kSentinel}},
1100 {{7860, 7861, kSentinel}},
1101 {{7862, 7863, kSentinel}},
1102 {{7864, 7865, kSentinel}}, // NOLINT
1103 {{7866, 7867, kSentinel}},
1104 {{7868, 7869, kSentinel}},
1105 {{7870, 7871, kSentinel}},
1106 {{7872, 7873, kSentinel}}, // NOLINT
1107 {{7874, 7875, kSentinel}},
1108 {{7876, 7877, kSentinel}},
1109 {{7878, 7879, kSentinel}},
1110 {{7880, 7881, kSentinel}}, // NOLINT
1111 {{7882, 7883, kSentinel}},
1112 {{7884, 7885, kSentinel}},
1113 {{7886, 7887, kSentinel}},
1114 {{7888, 7889, kSentinel}}, // NOLINT
1115 {{7890, 7891, kSentinel}},
1116 {{7892, 7893, kSentinel}},
1117 {{7894, 7895, kSentinel}},
1118 {{7896, 7897, kSentinel}}, // NOLINT
1119 {{7898, 7899, kSentinel}},
1120 {{7900, 7901, kSentinel}},
1121 {{7902, 7903, kSentinel}},
1122 {{7904, 7905, kSentinel}}, // NOLINT
1123 {{7906, 7907, kSentinel}},
1124 {{7908, 7909, kSentinel}},
1125 {{7910, 7911, kSentinel}},
1126 {{7912, 7913, kSentinel}}, // NOLINT
1127 {{7914, 7915, kSentinel}},
1128 {{7916, 7917, kSentinel}},
1129 {{7918, 7919, kSentinel}},
1130 {{7920, 7921, kSentinel}}, // NOLINT
1131 {{7922, 7923, kSentinel}},
1132 {{7924, 7925, kSentinel}},
1133 {{7926, 7927, kSentinel}},
1134 {{7928, 7929, kSentinel}}, // NOLINT
1135 {{7930, 7931, kSentinel}},
1136 {{7932, 7933, kSentinel}},
1137 {{7934, 7935, kSentinel}},
1138 {{7936, 7944, kSentinel}}, // NOLINT
1139 {{7943, 7951, kSentinel}},
1140 {{7952, 7960, kSentinel}},
1141 {{7957, 7965, kSentinel}},
1142 {{7968, 7976, kSentinel}}, // NOLINT
1143 {{7975, 7983, kSentinel}},
1144 {{7984, 7992, kSentinel}},
1145 {{7991, 7999, kSentinel}},
1146 {{8000, 8008, kSentinel}}, // NOLINT
1147 {{8005, 8013, kSentinel}},
1148 {{8017, 8025, kSentinel}},
1149 {{8019, 8027, kSentinel}},
1150 {{8021, 8029, kSentinel}}, // NOLINT
1151 {{8023, 8031, kSentinel}},
1152 {{8032, 8040, kSentinel}},
1153 {{8039, 8047, kSentinel}},
1154 {{8048, 8122, kSentinel}}, // NOLINT
1155 {{8049, 8123, kSentinel}},
1156 {{8050, 8136, kSentinel}},
1157 {{8053, 8139, kSentinel}},
1158 {{8054, 8154, kSentinel}}, // NOLINT
1159 {{8055, 8155, kSentinel}},
1160 {{8056, 8184, kSentinel}},
1161 {{8057, 8185, kSentinel}},
1162 {{8058, 8170, kSentinel}}, // NOLINT
1163 {{8059, 8171, kSentinel}},
1164 {{8060, 8186, kSentinel}},
1165 {{8061, 8187, kSentinel}},
1166 {{8112, 8120, kSentinel}}, // NOLINT
1167 {{8113, 8121, kSentinel}},
1168 {{8144, 8152, kSentinel}},
1169 {{8145, 8153, kSentinel}},
1170 {{8160, 8168, kSentinel}}, // NOLINT
1171 {{8161, 8169, kSentinel}},
1172 {{8165, 8172, kSentinel}},
1173 {{kSentinel}}}; // NOLINT
1174static constexpr uint16_t kEcma262UnCanonicalizeTable0Size = 1005; // NOLINT
1175static constexpr int32_t kEcma262UnCanonicalizeTable0[2010] = {
1176 1073741889, 1, 90, 5, 1073741921, 1,
1177 122, 5, 181, 9, 1073742016, 13,
1178 214, 17, 1073742040, 21, // NOLINT
1179 222, 25, 1073742048, 13, 246, 17,
1180 1073742072, 21, 254, 25, 255, 29,
1181 256, 33, 257, 33, // NOLINT
1182 258, 37, 259, 37, 260, 41,
1183 261, 41, 262, 45, 263, 45,
1184 264, 49, 265, 49, // NOLINT
1185 266, 53, 267, 53, 268, 57,
1186 269, 57, 270, 61, 271, 61,
1187 272, 65, 273, 65, // NOLINT
1188 274, 69, 275, 69, 276, 73,
1189 277, 73, 278, 77, 279, 77,
1190 280, 81, 281, 81, // NOLINT
1191 282, 85, 283, 85, 284, 89,
1192 285, 89, 286, 93, 287, 93,
1193 288, 97, 289, 97, // NOLINT
1194 290, 101, 291, 101, 292, 105,
1195 293, 105, 294, 109, 295, 109,
1196 296, 113, 297, 113, // NOLINT
1197 298, 117, 299, 117, 300, 121,
1198 301, 121, 302, 125, 303, 125,
1199 306, 129, 307, 129, // NOLINT
1200 308, 133, 309, 133, 310, 137,
1201 311, 137, 313, 141, 314, 141,
1202 315, 145, 316, 145, // NOLINT
1203 317, 149, 318, 149, 319, 153,
1204 320, 153, 321, 157, 322, 157,
1205 323, 161, 324, 161, // NOLINT
1206 325, 165, 326, 165, 327, 169,
1207 328, 169, 330, 173, 331, 173,
1208 332, 177, 333, 177, // NOLINT
1209 334, 181, 335, 181, 336, 185,
1210 337, 185, 338, 189, 339, 189,
1211 340, 193, 341, 193, // NOLINT
1212 342, 197, 343, 197, 344, 201,
1213 345, 201, 346, 205, 347, 205,
1214 348, 209, 349, 209, // NOLINT
1215 350, 213, 351, 213, 352, 217,
1216 353, 217, 354, 221, 355, 221,
1217 356, 225, 357, 225, // NOLINT
1218 358, 229, 359, 229, 360, 233,
1219 361, 233, 362, 237, 363, 237,
1220 364, 241, 365, 241, // NOLINT
1221 366, 245, 367, 245, 368, 249,
1222 369, 249, 370, 253, 371, 253,
1223 372, 257, 373, 257, // NOLINT
1224 374, 261, 375, 261, 376, 29,
1225 377, 265, 378, 265, 379, 269,
1226 380, 269, 381, 273, // NOLINT
1227 382, 273, 384, 277, 385, 281,
1228 386, 285, 387, 285, 388, 289,
1229 389, 289, 390, 293, // NOLINT
1230 391, 297, 392, 297, 1073742217, 301,
1231 394, 305, 395, 309, 396, 309,
1232 398, 313, 399, 317, // NOLINT
1233 400, 321, 401, 325, 402, 325,
1234 403, 329, 404, 333, 405, 337,
1235 406, 341, 407, 345, // NOLINT
1236 408, 349, 409, 349, 410, 353,
1237 412, 357, 413, 361, 414, 365,
1238 415, 369, 416, 373, // NOLINT
1239 417, 373, 418, 377, 419, 377,
1240 420, 381, 421, 381, 422, 385,
1241 423, 389, 424, 389, // NOLINT
1242 425, 393, 428, 397, 429, 397,
1243 430, 401, 431, 405, 432, 405,
1244 1073742257, 409, 434, 413, // NOLINT
1245 435, 417, 436, 417, 437, 421,
1246 438, 421, 439, 425, 440, 429,
1247 441, 429, 444, 433, // NOLINT
1248 445, 433, 447, 437, 452, 441,
1249 453, 441, 454, 441, 455, 445,
1250 456, 445, 457, 445, // NOLINT
1251 458, 449, 459, 449, 460, 449,
1252 461, 453, 462, 453, 463, 457,
1253 464, 457, 465, 461, // NOLINT
1254 466, 461, 467, 465, 468, 465,
1255 469, 469, 470, 469, 471, 473,
1256 472, 473, 473, 477, // NOLINT
1257 474, 477, 475, 481, 476, 481,
1258 477, 313, 478, 485, 479, 485,
1259 480, 489, 481, 489, // NOLINT
1260 482, 493, 483, 493, 484, 497,
1261 485, 497, 486, 501, 487, 501,
1262 488, 505, 489, 505, // NOLINT
1263 490, 509, 491, 509, 492, 513,
1264 493, 513, 494, 517, 495, 517,
1265 497, 521, 498, 521, // NOLINT
1266 499, 521, 500, 525, 501, 525,
1267 502, 337, 503, 437, 504, 529,
1268 505, 529, 506, 533, // NOLINT
1269 507, 533, 508, 537, 509, 537,
1270 510, 541, 511, 541, 512, 545,
1271 513, 545, 514, 549, // NOLINT
1272 515, 549, 516, 553, 517, 553,
1273 518, 557, 519, 557, 520, 561,
1274 521, 561, 522, 565, // NOLINT
1275 523, 565, 524, 569, 525, 569,
1276 526, 573, 527, 573, 528, 577,
1277 529, 577, 530, 581, // NOLINT
1278 531, 581, 532, 585, 533, 585,
1279 534, 589, 535, 589, 536, 593,
1280 537, 593, 538, 597, // NOLINT
1281 539, 597, 540, 601, 541, 601,
1282 542, 605, 543, 605, 544, 365,
1283 546, 609, 547, 609, // NOLINT
1284 548, 613, 549, 613, 550, 617,
1285 551, 617, 552, 621, 553, 621,
1286 554, 625, 555, 625, // NOLINT
1287 556, 629, 557, 629, 558, 633,
1288 559, 633, 560, 637, 561, 637,
1289 562, 641, 563, 641, // NOLINT
1290 570, 645, 571, 649, 572, 649,
1291 573, 353, 574, 653, 1073742399, 657,
1292 576, 661, 577, 665, // NOLINT
1293 578, 665, 579, 277, 580, 669,
1294 581, 673, 582, 677, 583, 677,
1295 584, 681, 585, 681, // NOLINT
1296 586, 685, 587, 685, 588, 689,
1297 589, 689, 590, 693, 591, 693,
1298 592, 697, 593, 701, // NOLINT
1299 594, 705, 595, 281, 596, 293,
1300 1073742422, 301, 599, 305, 601, 317,
1301 603, 321, 604, 709, // NOLINT
1302 608, 329, 609, 713, 611, 333,
1303 613, 717, 614, 721, 616, 345,
1304 617, 341, 619, 725, // NOLINT
1305 620, 729, 623, 357, 625, 733,
1306 626, 361, 629, 369, 637, 737,
1307 640, 385, 643, 393, // NOLINT
1308 647, 741, 648, 401, 649, 669,
1309 1073742474, 409, 651, 413, 652, 673,
1310 658, 425, 670, 745, // NOLINT
1311 837, 749, 880, 753, 881, 753,
1312 882, 757, 883, 757, 886, 761,
1313 887, 761, 1073742715, 765, // NOLINT
1314 893, 769, 895, 773, 902, 777,
1315 1073742728, 781, 906, 785, 908, 789,
1316 1073742734, 793, 911, 797, // NOLINT
1317 913, 801, 914, 805, 1073742739, 809,
1318 916, 813, 917, 817, 1073742742, 821,
1319 919, 825, 920, 829, // NOLINT
1320 921, 749, 922, 833, 923, 837,
1321 924, 9, 1073742749, 841, 927, 845,
1322 928, 849, 929, 853, // NOLINT
1323 931, 857, 1073742756, 861, 933, 865,
1324 934, 869, 1073742759, 873, 939, 877,
1325 940, 777, 1073742765, 781, // NOLINT
1326 943, 785, 945, 801, 946, 805,
1327 1073742771, 809, 948, 813, 949, 817,
1328 1073742774, 821, 951, 825, // NOLINT
1329 952, 829, 953, 749, 954, 833,
1330 955, 837, 956, 9, 1073742781, 841,
1331 959, 845, 960, 849, // NOLINT
1332 961, 853, 962, 857, 963, 857,
1333 1073742788, 861, 965, 865, 966, 869,
1334 1073742791, 873, 971, 877, // NOLINT
1335 972, 789, 1073742797, 793, 974, 797,
1336 975, 881, 976, 805, 977, 829,
1337 981, 869, 982, 849, // NOLINT
1338 983, 881, 984, 885, 985, 885,
1339 986, 889, 987, 889, 988, 893,
1340 989, 893, 990, 897, // NOLINT
1341 991, 897, 992, 901, 993, 901,
1342 994, 905, 995, 905, 996, 909,
1343 997, 909, 998, 913, // NOLINT
1344 999, 913, 1000, 917, 1001, 917,
1345 1002, 921, 1003, 921, 1004, 925,
1346 1005, 925, 1006, 929, // NOLINT
1347 1007, 929, 1008, 833, 1009, 853,
1348 1010, 933, 1011, 773, 1013, 817,
1349 1015, 937, 1016, 937, // NOLINT
1350 1017, 933, 1018, 941, 1019, 941,
1351 1073742845, 765, 1023, 769, 1073742848, 945,
1352 1039, 949, 1073742864, 953, // NOLINT
1353 1071, 957, 1073742896, 953, 1103, 957,
1354 1073742928, 945, 1119, 949, 1120, 961,
1355 1121, 961, 1122, 965, // NOLINT
1356 1123, 965, 1124, 969, 1125, 969,
1357 1126, 973, 1127, 973, 1128, 977,
1358 1129, 977, 1130, 981, // NOLINT
1359 1131, 981, 1132, 985, 1133, 985,
1360 1134, 989, 1135, 989, 1136, 993,
1361 1137, 993, 1138, 997, // NOLINT
1362 1139, 997, 1140, 1001, 1141, 1001,
1363 1142, 1005, 1143, 1005, 1144, 1009,
1364 1145, 1009, 1146, 1013, // NOLINT
1365 1147, 1013, 1148, 1017, 1149, 1017,
1366 1150, 1021, 1151, 1021, 1152, 1025,
1367 1153, 1025, 1162, 1029, // NOLINT
1368 1163, 1029, 1164, 1033, 1165, 1033,
1369 1166, 1037, 1167, 1037, 1168, 1041,
1370 1169, 1041, 1170, 1045, // NOLINT
1371 1171, 1045, 1172, 1049, 1173, 1049,
1372 1174, 1053, 1175, 1053, 1176, 1057,
1373 1177, 1057, 1178, 1061, // NOLINT
1374 1179, 1061, 1180, 1065, 1181, 1065,
1375 1182, 1069, 1183, 1069, 1184, 1073,
1376 1185, 1073, 1186, 1077, // NOLINT
1377 1187, 1077, 1188, 1081, 1189, 1081,
1378 1190, 1085, 1191, 1085, 1192, 1089,
1379 1193, 1089, 1194, 1093, // NOLINT
1380 1195, 1093, 1196, 1097, 1197, 1097,
1381 1198, 1101, 1199, 1101, 1200, 1105,
1382 1201, 1105, 1202, 1109, // NOLINT
1383 1203, 1109, 1204, 1113, 1205, 1113,
1384 1206, 1117, 1207, 1117, 1208, 1121,
1385 1209, 1121, 1210, 1125, // NOLINT
1386 1211, 1125, 1212, 1129, 1213, 1129,
1387 1214, 1133, 1215, 1133, 1216, 1137,
1388 1217, 1141, 1218, 1141, // NOLINT
1389 1219, 1145, 1220, 1145, 1221, 1149,
1390 1222, 1149, 1223, 1153, 1224, 1153,
1391 1225, 1157, 1226, 1157, // NOLINT
1392 1227, 1161, 1228, 1161, 1229, 1165,
1393 1230, 1165, 1231, 1137, 1232, 1169,
1394 1233, 1169, 1234, 1173, // NOLINT
1395 1235, 1173, 1236, 1177, 1237, 1177,
1396 1238, 1181, 1239, 1181, 1240, 1185,
1397 1241, 1185, 1242, 1189, // NOLINT
1398 1243, 1189, 1244, 1193, 1245, 1193,
1399 1246, 1197, 1247, 1197, 1248, 1201,
1400 1249, 1201, 1250, 1205, // NOLINT
1401 1251, 1205, 1252, 1209, 1253, 1209,
1402 1254, 1213, 1255, 1213, 1256, 1217,
1403 1257, 1217, 1258, 1221, // NOLINT
1404 1259, 1221, 1260, 1225, 1261, 1225,
1405 1262, 1229, 1263, 1229, 1264, 1233,
1406 1265, 1233, 1266, 1237, // NOLINT
1407 1267, 1237, 1268, 1241, 1269, 1241,
1408 1270, 1245, 1271, 1245, 1272, 1249,
1409 1273, 1249, 1274, 1253, // NOLINT
1410 1275, 1253, 1276, 1257, 1277, 1257,
1411 1278, 1261, 1279, 1261, 1280, 1265,
1412 1281, 1265, 1282, 1269, // NOLINT
1413 1283, 1269, 1284, 1273, 1285, 1273,
1414 1286, 1277, 1287, 1277, 1288, 1281,
1415 1289, 1281, 1290, 1285, // NOLINT
1416 1291, 1285, 1292, 1289, 1293, 1289,
1417 1294, 1293, 1295, 1293, 1296, 1297,
1418 1297, 1297, 1298, 1301, // NOLINT
1419 1299, 1301, 1300, 1305, 1301, 1305,
1420 1302, 1309, 1303, 1309, 1304, 1313,
1421 1305, 1313, 1306, 1317, // NOLINT
1422 1307, 1317, 1308, 1321, 1309, 1321,
1423 1310, 1325, 1311, 1325, 1312, 1329,
1424 1313, 1329, 1314, 1333, // NOLINT
1425 1315, 1333, 1316, 1337, 1317, 1337,
1426 1318, 1341, 1319, 1341, 1320, 1345,
1427 1321, 1345, 1322, 1349, // NOLINT
1428 1323, 1349, 1324, 1353, 1325, 1353,
1429 1326, 1357, 1327, 1357, 1073743153, 1361,
1430 1366, 1365, 1073743201, 1361, // NOLINT
1431 1414, 1365, 1073746080, 1369, 4293, 1373,
1432 4295, 1377, 4301, 1381, 7545, 1385,
1433 7549, 1389, 7680, 1393, // NOLINT
1434 7681, 1393, 7682, 1397, 7683, 1397,
1435 7684, 1401, 7685, 1401, 7686, 1405,
1436 7687, 1405, 7688, 1409, // NOLINT
1437 7689, 1409, 7690, 1413, 7691, 1413,
1438 7692, 1417, 7693, 1417, 7694, 1421,
1439 7695, 1421, 7696, 1425, // NOLINT
1440 7697, 1425, 7698, 1429, 7699, 1429,
1441 7700, 1433, 7701, 1433, 7702, 1437,
1442 7703, 1437, 7704, 1441, // NOLINT
1443 7705, 1441, 7706, 1445, 7707, 1445,
1444 7708, 1449, 7709, 1449, 7710, 1453,
1445 7711, 1453, 7712, 1457, // NOLINT
1446 7713, 1457, 7714, 1461, 7715, 1461,
1447 7716, 1465, 7717, 1465, 7718, 1469,
1448 7719, 1469, 7720, 1473, // NOLINT
1449 7721, 1473, 7722, 1477, 7723, 1477,
1450 7724, 1481, 7725, 1481, 7726, 1485,
1451 7727, 1485, 7728, 1489, // NOLINT
1452 7729, 1489, 7730, 1493, 7731, 1493,
1453 7732, 1497, 7733, 1497, 7734, 1501,
1454 7735, 1501, 7736, 1505, // NOLINT
1455 7737, 1505, 7738, 1509, 7739, 1509,
1456 7740, 1513, 7741, 1513, 7742, 1517,
1457 7743, 1517, 7744, 1521, // NOLINT
1458 7745, 1521, 7746, 1525, 7747, 1525,
1459 7748, 1529, 7749, 1529, 7750, 1533,
1460 7751, 1533, 7752, 1537, // NOLINT
1461 7753, 1537, 7754, 1541, 7755, 1541,
1462 7756, 1545, 7757, 1545, 7758, 1549,
1463 7759, 1549, 7760, 1553, // NOLINT
1464 7761, 1553, 7762, 1557, 7763, 1557,
1465 7764, 1561, 7765, 1561, 7766, 1565,
1466 7767, 1565, 7768, 1569, // NOLINT
1467 7769, 1569, 7770, 1573, 7771, 1573,
1468 7772, 1577, 7773, 1577, 7774, 1581,
1469 7775, 1581, 7776, 1585, // NOLINT
1470 7777, 1585, 7778, 1589, 7779, 1589,
1471 7780, 1593, 7781, 1593, 7782, 1597,
1472 7783, 1597, 7784, 1601, // NOLINT
1473 7785, 1601, 7786, 1605, 7787, 1605,
1474 7788, 1609, 7789, 1609, 7790, 1613,
1475 7791, 1613, 7792, 1617, // NOLINT
1476 7793, 1617, 7794, 1621, 7795, 1621,
1477 7796, 1625, 7797, 1625, 7798, 1629,
1478 7799, 1629, 7800, 1633, // NOLINT
1479 7801, 1633, 7802, 1637, 7803, 1637,
1480 7804, 1641, 7805, 1641, 7806, 1645,
1481 7807, 1645, 7808, 1649, // NOLINT
1482 7809, 1649, 7810, 1653, 7811, 1653,
1483 7812, 1657, 7813, 1657, 7814, 1661,
1484 7815, 1661, 7816, 1665, // NOLINT
1485 7817, 1665, 7818, 1669, 7819, 1669,
1486 7820, 1673, 7821, 1673, 7822, 1677,
1487 7823, 1677, 7824, 1681, // NOLINT
1488 7825, 1681, 7826, 1685, 7827, 1685,
1489 7828, 1689, 7829, 1689, 7835, 1585,
1490 7840, 1693, 7841, 1693, // NOLINT
1491 7842, 1697, 7843, 1697, 7844, 1701,
1492 7845, 1701, 7846, 1705, 7847, 1705,
1493 7848, 1709, 7849, 1709, // NOLINT
1494 7850, 1713, 7851, 1713, 7852, 1717,
1495 7853, 1717, 7854, 1721, 7855, 1721,
1496 7856, 1725, 7857, 1725, // NOLINT
1497 7858, 1729, 7859, 1729, 7860, 1733,
1498 7861, 1733, 7862, 1737, 7863, 1737,
1499 7864, 1741, 7865, 1741, // NOLINT
1500 7866, 1745, 7867, 1745, 7868, 1749,
1501 7869, 1749, 7870, 1753, 7871, 1753,
1502 7872, 1757, 7873, 1757, // NOLINT
1503 7874, 1761, 7875, 1761, 7876, 1765,
1504 7877, 1765, 7878, 1769, 7879, 1769,
1505 7880, 1773, 7881, 1773, // NOLINT
1506 7882, 1777, 7883, 1777, 7884, 1781,
1507 7885, 1781, 7886, 1785, 7887, 1785,
1508 7888, 1789, 7889, 1789, // NOLINT
1509 7890, 1793, 7891, 1793, 7892, 1797,
1510 7893, 1797, 7894, 1801, 7895, 1801,
1511 7896, 1805, 7897, 1805, // NOLINT
1512 7898, 1809, 7899, 1809, 7900, 1813,
1513 7901, 1813, 7902, 1817, 7903, 1817,
1514 7904, 1821, 7905, 1821, // NOLINT
1515 7906, 1825, 7907, 1825, 7908, 1829,
1516 7909, 1829, 7910, 1833, 7911, 1833,
1517 7912, 1837, 7913, 1837, // NOLINT
1518 7914, 1841, 7915, 1841, 7916, 1845,
1519 7917, 1845, 7918, 1849, 7919, 1849,
1520 7920, 1853, 7921, 1853, // NOLINT
1521 7922, 1857, 7923, 1857, 7924, 1861,
1522 7925, 1861, 7926, 1865, 7927, 1865,
1523 7928, 1869, 7929, 1869, // NOLINT
1524 7930, 1873, 7931, 1873, 7932, 1877,
1525 7933, 1877, 7934, 1881, 7935, 1881,
1526 1073749760, 1885, 7943, 1889, // NOLINT
1527 1073749768, 1885, 7951, 1889, 1073749776, 1893,
1528 7957, 1897, 1073749784, 1893, 7965, 1897,
1529 1073749792, 1901, 7975, 1905, // NOLINT
1530 1073749800, 1901, 7983, 1905, 1073749808, 1909,
1531 7991, 1913, 1073749816, 1909, 7999, 1913,
1532 1073749824, 1917, 8005, 1921, // NOLINT
1533 1073749832, 1917, 8013, 1921, 8017, 1925,
1534 8019, 1929, 8021, 1933, 8023, 1937,
1535 8025, 1925, 8027, 1929, // NOLINT
1536 8029, 1933, 8031, 1937, 1073749856, 1941,
1537 8039, 1945, 1073749864, 1941, 8047, 1945,
1538 1073749872, 1949, 8049, 1953, // NOLINT
1539 1073749874, 1957, 8053, 1961, 1073749878, 1965,
1540 8055, 1969, 1073749880, 1973, 8057, 1977,
1541 1073749882, 1981, 8059, 1985, // NOLINT
1542 1073749884, 1989, 8061, 1993, 1073749936, 1997,
1543 8113, 2001, 1073749944, 1997, 8121, 2001,
1544 1073749946, 1949, 8123, 1953, // NOLINT
1545 8126, 749, 1073749960, 1957, 8139, 1961,
1546 1073749968, 2005, 8145, 2009, 1073749976, 2005,
1547 8153, 2009, 1073749978, 1965, // NOLINT
1548 8155, 1969, 1073749984, 2013, 8161, 2017,
1549 8165, 2021, 1073749992, 2013, 8169, 2017,
1550 1073749994, 1981, 8171, 1985, // NOLINT
1551 8172, 2021, 1073750008, 1973, 8185, 1977,
1552 1073750010, 1989, 8187, 1993}; // NOLINT
1554 {{8498, 8526}}, {{8544, 8560}}, {{8559, 8575}}, {{8579, 8580}}, // NOLINT
1555 {{9398, 9424}}, {{9423, 9449}}, {{11264, 11312}}, {{11310, 11358}}, // NOLINT
1556 {{11360, 11361}}, {{619, 11362}}, {{7549, 11363}}, {{637, 11364}}, // NOLINT
1557 {{570, 11365}}, {{574, 11366}}, {{11367, 11368}}, {{11369, 11370}}, // NOLINT
1558 {{11371, 11372}}, {{593, 11373}}, {{625, 11374}}, {{592, 11375}}, // NOLINT
1559 {{594, 11376}}, {{11378, 11379}}, {{11381, 11382}}, {{575, 11390}}, // NOLINT
1560 {{576, 11391}}, {{11392, 11393}}, {{11394, 11395}}, {{11396, 11397}}, // NOLINT
1561 {{11398, 11399}}, {{11400, 11401}}, {{11402, 11403}}, {{11404, 11405}}, // NOLINT
1562 {{11406, 11407}}, {{11408, 11409}}, {{11410, 11411}}, {{11412, 11413}}, // NOLINT
1563 {{11414, 11415}}, {{11416, 11417}}, {{11418, 11419}}, {{11420, 11421}}, // NOLINT
1564 {{11422, 11423}}, {{11424, 11425}}, {{11426, 11427}}, {{11428, 11429}}, // NOLINT
1565 {{11430, 11431}}, {{11432, 11433}}, {{11434, 11435}}, {{11436, 11437}}, // NOLINT
1566 {{11438, 11439}}, {{11440, 11441}}, {{11442, 11443}}, {{11444, 11445}}, // NOLINT
1567 {{11446, 11447}}, {{11448, 11449}}, {{11450, 11451}}, {{11452, 11453}}, // NOLINT
1568 {{11454, 11455}}, {{11456, 11457}}, {{11458, 11459}}, {{11460, 11461}}, // NOLINT
1569 {{11462, 11463}}, {{11464, 11465}}, {{11466, 11467}}, {{11468, 11469}}, // NOLINT
1570 {{11470, 11471}}, {{11472, 11473}}, {{11474, 11475}}, {{11476, 11477}}, // NOLINT
1571 {{11478, 11479}}, {{11480, 11481}}, {{11482, 11483}}, {{11484, 11485}}, // NOLINT
1572 {{11486, 11487}}, {{11488, 11489}}, {{11490, 11491}}, {{11499, 11500}}, // NOLINT
1573 {{11501, 11502}}, {{11506, 11507}}, {{4256, 11520}}, {{4293, 11557}}, // NOLINT
1574 {{4295, 11559}}, {{4301, 11565}}, {{kSentinel}} }; // NOLINT
1575static constexpr uint16_t kEcma262UnCanonicalizeTable1Size = 149; // NOLINT
1576static constexpr int32_t kEcma262UnCanonicalizeTable1[298] = {
1577 306, 1, 334, 1, 1073742176, 5, 367, 9, 1073742192, 5, 383, 9, 387, 13, 388, 13, // NOLINT
1578 1073743030, 17, 1231, 21, 1073743056, 17, 1257, 21, 1073744896, 25, 3118, 29, 1073744944, 25, 3166, 29, // NOLINT
1579 3168, 33, 3169, 33, 3170, 37, 3171, 41, 3172, 45, 3173, 49, 3174, 53, 3175, 57, // NOLINT
1580 3176, 57, 3177, 61, 3178, 61, 3179, 65, 3180, 65, 3181, 69, 3182, 73, 3183, 77, // NOLINT
1581 3184, 81, 3186, 85, 3187, 85, 3189, 89, 3190, 89, 1073745022, 93, 3199, 97, 3200, 101, // NOLINT
1582 3201, 101, 3202, 105, 3203, 105, 3204, 109, 3205, 109, 3206, 113, 3207, 113, 3208, 117, // NOLINT
1583 3209, 117, 3210, 121, 3211, 121, 3212, 125, 3213, 125, 3214, 129, 3215, 129, 3216, 133, // NOLINT
1584 3217, 133, 3218, 137, 3219, 137, 3220, 141, 3221, 141, 3222, 145, 3223, 145, 3224, 149, // NOLINT
1585 3225, 149, 3226, 153, 3227, 153, 3228, 157, 3229, 157, 3230, 161, 3231, 161, 3232, 165, // NOLINT
1586 3233, 165, 3234, 169, 3235, 169, 3236, 173, 3237, 173, 3238, 177, 3239, 177, 3240, 181, // NOLINT
1587 3241, 181, 3242, 185, 3243, 185, 3244, 189, 3245, 189, 3246, 193, 3247, 193, 3248, 197, // NOLINT
1588 3249, 197, 3250, 201, 3251, 201, 3252, 205, 3253, 205, 3254, 209, 3255, 209, 3256, 213, // NOLINT
1589 3257, 213, 3258, 217, 3259, 217, 3260, 221, 3261, 221, 3262, 225, 3263, 225, 3264, 229, // NOLINT
1590 3265, 229, 3266, 233, 3267, 233, 3268, 237, 3269, 237, 3270, 241, 3271, 241, 3272, 245, // NOLINT
1591 3273, 245, 3274, 249, 3275, 249, 3276, 253, 3277, 253, 3278, 257, 3279, 257, 3280, 261, // NOLINT
1592 3281, 261, 3282, 265, 3283, 265, 3284, 269, 3285, 269, 3286, 273, 3287, 273, 3288, 277, // NOLINT
1593 3289, 277, 3290, 281, 3291, 281, 3292, 285, 3293, 285, 3294, 289, 3295, 289, 3296, 293, // NOLINT
1594 3297, 293, 3298, 297, 3299, 297, 3307, 301, 3308, 301, 3309, 305, 3310, 305, 3314, 309, // NOLINT
1595 3315, 309, 1073745152, 313, 3365, 317, 3367, 321, 3373, 325 }; // NOLINT
1596static const MultiCharacterSpecialCase<2>
1598 {{42560, 42561}},
1599 {{42562, 42563}},
1600 {{42564, 42565}},
1601 {{42566, 42567}}, // NOLINT
1602 {{42568, 42569}},
1603 {{42570, 42571}},
1604 {{42572, 42573}},
1605 {{42574, 42575}}, // NOLINT
1606 {{42576, 42577}},
1607 {{42578, 42579}},
1608 {{42580, 42581}},
1609 {{42582, 42583}}, // NOLINT
1610 {{42584, 42585}},
1611 {{42586, 42587}},
1612 {{42588, 42589}},
1613 {{42590, 42591}}, // NOLINT
1614 {{42592, 42593}},
1615 {{42594, 42595}},
1616 {{42596, 42597}},
1617 {{42598, 42599}}, // NOLINT
1618 {{42600, 42601}},
1619 {{42602, 42603}},
1620 {{42604, 42605}},
1621 {{42624, 42625}}, // NOLINT
1622 {{42626, 42627}},
1623 {{42628, 42629}},
1624 {{42630, 42631}},
1625 {{42632, 42633}}, // NOLINT
1626 {{42634, 42635}},
1627 {{42636, 42637}},
1628 {{42638, 42639}},
1629 {{42640, 42641}}, // NOLINT
1630 {{42642, 42643}},
1631 {{42644, 42645}},
1632 {{42646, 42647}},
1633 {{42648, 42649}}, // NOLINT
1634 {{42650, 42651}},
1635 {{42786, 42787}},
1636 {{42788, 42789}},
1637 {{42790, 42791}}, // NOLINT
1638 {{42792, 42793}},
1639 {{42794, 42795}},
1640 {{42796, 42797}},
1641 {{42798, 42799}}, // NOLINT
1642 {{42802, 42803}},
1643 {{42804, 42805}},
1644 {{42806, 42807}},
1645 {{42808, 42809}}, // NOLINT
1646 {{42810, 42811}},
1647 {{42812, 42813}},
1648 {{42814, 42815}},
1649 {{42816, 42817}}, // NOLINT
1650 {{42818, 42819}},
1651 {{42820, 42821}},
1652 {{42822, 42823}},
1653 {{42824, 42825}}, // NOLINT
1654 {{42826, 42827}},
1655 {{42828, 42829}},
1656 {{42830, 42831}},
1657 {{42832, 42833}}, // NOLINT
1658 {{42834, 42835}},
1659 {{42836, 42837}},
1660 {{42838, 42839}},
1661 {{42840, 42841}}, // NOLINT
1662 {{42842, 42843}},
1663 {{42844, 42845}},
1664 {{42846, 42847}},
1665 {{42848, 42849}}, // NOLINT
1666 {{42850, 42851}},
1667 {{42852, 42853}},
1668 {{42854, 42855}},
1669 {{42856, 42857}}, // NOLINT
1670 {{42858, 42859}},
1671 {{42860, 42861}},
1672 {{42862, 42863}},
1673 {{42873, 42874}}, // NOLINT
1674 {{42875, 42876}},
1675 {{7545, 42877}},
1676 {{42878, 42879}},
1677 {{42880, 42881}}, // NOLINT
1678 {{42882, 42883}},
1679 {{42884, 42885}},
1680 {{42886, 42887}},
1681 {{42891, 42892}}, // NOLINT
1682 {{613, 42893}},
1683 {{42896, 42897}},
1684 {{42898, 42899}},
1685 {{42902, 42903}}, // NOLINT
1686 {{42904, 42905}},
1687 {{42906, 42907}},
1688 {{42908, 42909}},
1689 {{42910, 42911}}, // NOLINT
1690 {{42912, 42913}},
1691 {{42914, 42915}},
1692 {{42916, 42917}},
1693 {{42918, 42919}}, // NOLINT
1694 {{42920, 42921}},
1695 {{614, 42922}},
1696 {{604, 42923}},
1697 {{609, 42924}}, // NOLINT
1698 {{620, 42925}},
1699 {{670, 42928}},
1700 {{647, 42929}},
1701 {{kSentinel}}}; // NOLINT
1702static constexpr uint16_t kEcma262UnCanonicalizeTable5Size = 198; // NOLINT
1703static constexpr int32_t kEcma262UnCanonicalizeTable5
1704 [396] = {1600, 1, 1601, 1, 1602, 5, 1603, 5,
1705 1604, 9, 1605, 9, 1606, 13, 1607, 13, // NOLINT
1706 1608, 17, 1609, 17, 1610, 21, 1611, 21,
1707 1612, 25, 1613, 25, 1614, 29, 1615, 29, // NOLINT
1708 1616, 33, 1617, 33, 1618, 37, 1619, 37,
1709 1620, 41, 1621, 41, 1622, 45, 1623, 45, // NOLINT
1710 1624, 49, 1625, 49, 1626, 53, 1627, 53,
1711 1628, 57, 1629, 57, 1630, 61, 1631, 61, // NOLINT
1712 1632, 65, 1633, 65, 1634, 69, 1635, 69,
1713 1636, 73, 1637, 73, 1638, 77, 1639, 77, // NOLINT
1714 1640, 81, 1641, 81, 1642, 85, 1643, 85,
1715 1644, 89, 1645, 89, 1664, 93, 1665, 93, // NOLINT
1716 1666, 97, 1667, 97, 1668, 101, 1669, 101,
1717 1670, 105, 1671, 105, 1672, 109, 1673, 109, // NOLINT
1718 1674, 113, 1675, 113, 1676, 117, 1677, 117,
1719 1678, 121, 1679, 121, 1680, 125, 1681, 125, // NOLINT
1720 1682, 129, 1683, 129, 1684, 133, 1685, 133,
1721 1686, 137, 1687, 137, 1688, 141, 1689, 141, // NOLINT
1722 1690, 145, 1691, 145, 1826, 149, 1827, 149,
1723 1828, 153, 1829, 153, 1830, 157, 1831, 157, // NOLINT
1724 1832, 161, 1833, 161, 1834, 165, 1835, 165,
1725 1836, 169, 1837, 169, 1838, 173, 1839, 173, // NOLINT
1726 1842, 177, 1843, 177, 1844, 181, 1845, 181,
1727 1846, 185, 1847, 185, 1848, 189, 1849, 189, // NOLINT
1728 1850, 193, 1851, 193, 1852, 197, 1853, 197,
1729 1854, 201, 1855, 201, 1856, 205, 1857, 205, // NOLINT
1730 1858, 209, 1859, 209, 1860, 213, 1861, 213,
1731 1862, 217, 1863, 217, 1864, 221, 1865, 221, // NOLINT
1732 1866, 225, 1867, 225, 1868, 229, 1869, 229,
1733 1870, 233, 1871, 233, 1872, 237, 1873, 237, // NOLINT
1734 1874, 241, 1875, 241, 1876, 245, 1877, 245,
1735 1878, 249, 1879, 249, 1880, 253, 1881, 253, // NOLINT
1736 1882, 257, 1883, 257, 1884, 261, 1885, 261,
1737 1886, 265, 1887, 265, 1888, 269, 1889, 269, // NOLINT
1738 1890, 273, 1891, 273, 1892, 277, 1893, 277,
1739 1894, 281, 1895, 281, 1896, 285, 1897, 285, // NOLINT
1740 1898, 289, 1899, 289, 1900, 293, 1901, 293,
1741 1902, 297, 1903, 297, 1913, 301, 1914, 301, // NOLINT
1742 1915, 305, 1916, 305, 1917, 309, 1918, 313,
1743 1919, 313, 1920, 317, 1921, 317, 1922, 321, // NOLINT
1744 1923, 321, 1924, 325, 1925, 325, 1926, 329,
1745 1927, 329, 1931, 333, 1932, 333, 1933, 337, // NOLINT
1746 1936, 341, 1937, 341, 1938, 345, 1939, 345,
1747 1942, 349, 1943, 349, 1944, 353, 1945, 353, // NOLINT
1748 1946, 357, 1947, 357, 1948, 361, 1949, 361,
1749 1950, 365, 1951, 365, 1952, 369, 1953, 369, // NOLINT
1750 1954, 373, 1955, 373, 1956, 377, 1957, 377,
1751 1958, 381, 1959, 381, 1960, 385, 1961, 385, // NOLINT
1752 1962, 389, 1963, 393, 1964, 397, 1965, 401,
1753 1968, 405, 1969, 409}; // NOLINT
1755 {{65313, 65345}}, {{65338, 65370}}, {{kSentinel}} }; // NOLINT
1756static constexpr uint16_t kEcma262UnCanonicalizeTable7Size = 4; // NOLINT
1757static constexpr int32_t kEcma262UnCanonicalizeTable7[8] = {
1758 1073749793, 1, 7994, 5, 1073749825, 1, 8026, 5 }; // NOLINT
1760 int32_t n,
1761 int32_t* result,
1762 bool* allow_caching_ptr) {
1763 intptr_t chunk_index = c >> 13;
1764 switch (chunk_index) {
1765 case 0: return LookupMapping<true>(kEcma262UnCanonicalizeTable0,
1768 c,
1769 n,
1770 result,
1771 allow_caching_ptr);
1772 case 1: return LookupMapping<true>(kEcma262UnCanonicalizeTable1,
1775 c,
1776 n,
1777 result,
1778 allow_caching_ptr);
1779 case 5: return LookupMapping<true>(kEcma262UnCanonicalizeTable5,
1782 c,
1783 n,
1784 result,
1785 allow_caching_ptr);
1786 case 7: return LookupMapping<true>(kEcma262UnCanonicalizeTable7,
1789 c,
1790 n,
1791 result,
1792 allow_caching_ptr);
1793 default: return 0;
1794 }
1795}
1796
1798 {{kSentinel}} }; // NOLINT
1799static constexpr uint16_t kCanonicalizationRangeTable0Size = 70; // NOLINT
1800static constexpr int32_t kCanonicalizationRangeTable0[140] = {
1801 1073741889, 100, 90, 0, 1073741921, 100, 122, 0, 1073742016, 88, 214, 0, 1073742040, 24, 222, 0, // NOLINT
1802 1073742048, 88, 246, 0, 1073742072, 24, 254, 0, 1073742715, 8, 893, 0, 1073742728, 8, 906, 0, // NOLINT
1803 1073742749, 8, 927, 0, 1073742759, 16, 939, 0, 1073742765, 8, 943, 0, 1073742781, 8, 959, 0, // NOLINT
1804 1073742791, 16, 971, 0, 1073742845, 8, 1023, 0, 1073742848, 60, 1039, 0, 1073742864, 124, 1071, 0, // NOLINT
1805 1073742896, 124, 1103, 0, 1073742928, 60, 1119, 0, 1073743153, 148, 1366, 0, 1073743201, 148, 1414, 0, // NOLINT
1806 1073746080, 148, 4293, 0, 1073749760, 28, 7943, 0, 1073749768, 28, 7951, 0, 1073749776, 20, 7957, 0, // NOLINT
1807 1073749784, 20, 7965, 0, 1073749792, 28, 7975, 0, 1073749800, 28, 7983, 0, 1073749808, 28, 7991, 0, // NOLINT
1808 1073749816, 28, 7999, 0, 1073749824, 20, 8005, 0, 1073749832, 20, 8013, 0, 1073749856, 28, 8039, 0, // NOLINT
1809 1073749864, 28, 8047, 0, 1073749874, 12, 8053, 0, 1073749960, 12, 8139, 0 }; // NOLINT
1811 {{kSentinel}} }; // NOLINT
1812static constexpr uint16_t kCanonicalizationRangeTable1Size = 14; // NOLINT
1813static constexpr int32_t kCanonicalizationRangeTable1[28] = {
1814 1073742176, 60, 367, 0, 1073742192, 60, 383, 0, 1073743030, 100, 1231, 0, 1073743056, 100, 1257, 0, // NOLINT
1815 1073744896, 184, 3118, 0, 1073744944, 184, 3166, 0, 1073745152, 148, 3365, 0 }; // NOLINT
1817 {{kSentinel}} }; // NOLINT
1818static constexpr uint16_t kCanonicalizationRangeTable7Size = 4; // NOLINT
1819static constexpr int32_t kCanonicalizationRangeTable7[8] = {
1820 1073749793, 100, 7994, 0, 1073749825, 100, 8026, 0 }; // NOLINT
1821
1822// clang-format on
1823
1825 int32_t n,
1826 int32_t* result,
1827 bool* allow_caching_ptr) {
1828 intptr_t chunk_index = c >> 13;
1829 switch (chunk_index) {
1830 case 0:
1831 return LookupMapping<false>(
1833 kCanonicalizationRangeMultiStrings0, c, n, result, allow_caching_ptr);
1834 case 1:
1835 return LookupMapping<false>(
1837 kCanonicalizationRangeMultiStrings1, c, n, result, allow_caching_ptr);
1838 case 7:
1839 return LookupMapping<false>(
1841 kCanonicalizationRangeMultiStrings7, c, n, result, allow_caching_ptr);
1842 default:
1843 return 0;
1844 }
1845}
1846
1847} // namespace unibrow
static float next(float f)
SI F table(const skcms_Curve *curve, F v)
constexpr int kW
uint8_t value
GAsyncResult * result
size_t length
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
Definition: switches.h:259
static const MultiCharacterSpecialCase< 1 > kEcma262CanonicalizeMultiStrings1[1]
Definition: unibrow.cc:580
static constexpr uint16_t kCanonicalizationRangeTable7Size
Definition: unibrow.cc:1818
static constexpr uint16_t kLetterTable0Size
Definition: unibrow.cc:187
static constexpr int32_t kEcma262CanonicalizeTable5[190]
Definition: unibrow.cc:598
static const MultiCharacterSpecialCase< 2 > kEcma262UnCanonicalizeMultiStrings1[83]
Definition: unibrow.cc:1553
static constexpr int32_t kCanonicalizationRangeTable7[8]
Definition: unibrow.cc:1819
static constexpr int32_t kLetterTable6[6]
Definition: unibrow.cc:347
static bool IsStart(int32_t entry)
Definition: unibrow.cc:34
static constexpr uint16_t kLetterTable7Size
Definition: unibrow.cc:349
static constexpr int32_t kCanonicalizationRangeTable0[140]
Definition: unibrow.cc:1800
static constexpr uint16_t kLetterTable5Size
Definition: unibrow.cc:319
static const MultiCharacterSpecialCase< 1 > kEcma262CanonicalizeMultiStrings7[1]
Definition: unibrow.cc:622
static constexpr int32_t kEcma262CanonicalizeTable7[4]
Definition: unibrow.cc:625
static constexpr int32_t kSentinel
Definition: unibrow.cc:17
static constexpr uint16_t kEcma262CanonicalizeTable7Size
Definition: unibrow.cc:624
static constexpr int32_t kLetterTable5[100]
Definition: unibrow.cc:320
static constexpr int32_t kLetterTable3[2]
Definition: unibrow.cc:314
static constexpr uint16_t kEcma262CanonicalizeTable1Size
Definition: unibrow.cc:582
static const MultiCharacterSpecialCase< 1 > kEcma262CanonicalizeMultiStrings5[1]
Definition: unibrow.cc:594
static constexpr int32_t kLetterTable1[87]
Definition: unibrow.cc:298
static constexpr uint16_t kEcma262UnCanonicalizeTable7Size
Definition: unibrow.cc:1756
static constexpr uint16_t kLetterTable2Size
Definition: unibrow.cc:310
static const MultiCharacterSpecialCase< 1 > kCanonicalizationRangeMultiStrings7[1]
Definition: unibrow.cc:1816
static int32_t TableGet(const int32_t *table, intptr_t index)
Definition: unibrow.cc:26
static constexpr uint16_t kEcma262UnCanonicalizeTable0Size
Definition: unibrow.cc:1174
static constexpr uint16_t kCanonicalizationRangeTable0Size
Definition: unibrow.cc:1799
static int32_t GetEntry(int32_t entry)
Definition: unibrow.cc:30
static constexpr int32_t kEcma262UnCanonicalizeTable0[2010]
Definition: unibrow.cc:1175
static constexpr int32_t kEcma262UnCanonicalizeTable7[8]
Definition: unibrow.cc:1757
static constexpr uint16_t kLetterTable6Size
Definition: unibrow.cc:346
static bool LookupPredicate(const int32_t *table, uint16_t size, int32_t chr)
Definition: unibrow.cc:48
static const MultiCharacterSpecialCase< 1 > kCanonicalizationRangeMultiStrings1[1]
Definition: unibrow.cc:1810
static constexpr int32_t kLetterTable4[2]
Definition: unibrow.cc:317
static constexpr int32_t kEcma262CanonicalizeTable0[996]
Definition: unibrow.cc:392
static constexpr uint16_t kLetterTable1Size
Definition: unibrow.cc:297
static constexpr intptr_t kChunkBits
Definition: unibrow.cc:16
static constexpr int32_t kCanonicalizationRangeTable1[28]
Definition: unibrow.cc:1813
static constexpr uint16_t kEcma262CanonicalizeTable0Size
Definition: unibrow.cc:391
static constexpr int32_t kEcma262UnCanonicalizeTable5[396]
Definition: unibrow.cc:1704
static constexpr uint16_t kEcma262CanonicalizeTable5Size
Definition: unibrow.cc:596
static const MultiCharacterSpecialCase< 4 > kEcma262UnCanonicalizeMultiStrings0[507]
Definition: unibrow.cc:666
static intptr_t LookupMapping(const int32_t *table, uint16_t size, const MultiCharacterSpecialCase< kW > *multi_chars, int32_t chr, int32_t next, int32_t *result, bool *allow_caching_ptr)
Definition: unibrow.cc:96
static constexpr uint16_t kEcma262UnCanonicalizeTable5Size
Definition: unibrow.cc:1702
static constexpr uint16_t kCanonicalizationRangeTable1Size
Definition: unibrow.cc:1812
static const MultiCharacterSpecialCase< 2 > kEcma262UnCanonicalizeMultiStrings7[3]
Definition: unibrow.cc:1754
static constexpr int32_t kEcma262UnCanonicalizeTable1[298]
Definition: unibrow.cc:1576
static constexpr uint16_t kLetterTable3Size
Definition: unibrow.cc:313
static constexpr int32_t kLetterTable0[431]
Definition: unibrow.cc:188
static constexpr uint16_t kEcma262UnCanonicalizeTable1Size
Definition: unibrow.cc:1575
static constexpr intptr_t kStartBit
Definition: unibrow.cc:15
static const MultiCharacterSpecialCase< 1 > kCanonicalizationRangeMultiStrings0[1]
Definition: unibrow.cc:1797
static constexpr uint16_t kLetterTable4Size
Definition: unibrow.cc:316
static constexpr int32_t kLetterTable7[48]
Definition: unibrow.cc:350
static constexpr int32_t kEcma262CanonicalizeTable1[146]
Definition: unibrow.cc:583
static constexpr int32_t kLetterTable2[4]
Definition: unibrow.cc:311
static const MultiCharacterSpecialCase< 2 > kEcma262UnCanonicalizeMultiStrings5[104]
Definition: unibrow.cc:1597
static const MultiCharacterSpecialCase< 1 > kEcma262CanonicalizeMultiStrings0[1]
Definition: unibrow.cc:389
static intptr_t Convert(int32_t c, int32_t n, int32_t *result, bool *allow_caching_ptr)
Definition: unibrow.cc:1824
static intptr_t Convert(int32_t c, int32_t n, int32_t *result, bool *allow_caching_ptr)
Definition: unibrow.cc:627
static intptr_t Convert(int32_t c, int32_t n, int32_t *result, bool *allow_caching_ptr)
Definition: unibrow.cc:1759
static bool Is(int32_t c)
Definition: unibrow.cc:357
static constexpr int32_t kEndOfEncoding
Definition: unibrow.cc:80