36 static const int kStartBit = (1 << 30);
38 static const uchar kSentinel =
static_cast<uchar>(-1);
51 static inline uchar TableGet(
const int32_t* table,
int index) {
52 return table[
D * index];
57 return entry & (kStartBit - 1);
61 static inline bool IsStart(
int32_t entry) {
62 return (entry & kStartBit) != 0;
77 static const int kEntryDist = 1;
80 unsigned int high = size - 1;
82 unsigned int mid = low + ((high - low) >> 1);
83 uchar current_value = GetEntry(TableGet<kEntryDist>(table, mid));
86 if ((current_value <= value) &&
88 GetEntry(TableGet<kEntryDist>(table, mid + 1)) > value)) {
91 }
else if (current_value < value) {
93 }
else if (current_value > value) {
100 int32_t field = TableGet<kEntryDist>(table, low);
101 uchar entry = GetEntry(field);
102 bool is_start = IsStart(field);
103 return (entry == value) || (entry < value && is_start);
124 template <
bool ranges_are_linear,
int kW>
125 static int LookupMapping(
const int32_t* table,
131 bool* allow_caching_ptr) {
132 static const int kEntryDist = 2;
133 uint16_t key = chr & (kChunkBits - 1);
135 unsigned int low = 0;
136 unsigned int high = size - 1;
137 while (high != low) {
138 unsigned int mid = low + ((high - low) >> 1);
139 uchar current_value = GetEntry(TableGet<kEntryDist>(table, mid));
142 if ((current_value <= key) &&
144 GetEntry(TableGet<kEntryDist>(table, mid + 1)) > key)) {
147 }
else if (current_value < key) {
149 }
else if (current_value > key) {
156 int32_t field = TableGet<kEntryDist>(table, low);
157 uchar entry = GetEntry(field);
158 bool is_start = IsStart(field);
159 bool found = (entry == key) || (entry < key && is_start);
161 int32_t value = table[2 * low + 1];
165 }
else if ((value & 3) == 0) {
167 if (ranges_are_linear) {
168 result[0] = chr + (value >> 2);
170 result[0] = entry + chunk_start + (value >> 2);
173 }
else if ((value & 3) == 1) {
175 if (allow_caching_ptr) *allow_caching_ptr =
false;
176 const MultiCharacterSpecialCase<kW>& mapping = multi_chars[value >> 2];
178 for (length = 0; length < kW; length++) {
179 uchar mapped = mapping.chars[length];
180 if (mapped == MultiCharacterSpecialCase<kW>::kEndOfEncoding)
break;
181 if (ranges_are_linear) {
182 result[length] = mapped + (key - entry);
184 result[length] = mapped;
190 if (allow_caching_ptr) *allow_caching_ptr =
false;
193 switch (value >> 2) {
223 byte second = str[1] ^ 0x80;
245 byte third = str[2] ^ 0x80;
251 uchar code_point = ((((first << 6) | second) << 6) | third)
264 byte fourth = str[3] ^ 0x80;
270 uchar code_point = (((((first << 6 | second) << 6) | third) << 6) | fourth)
285 unsigned buffer_length,
286 const uint8_t* stream,
287 unsigned stream_length) {
291 bool writing_to_buffer =
true;
293 unsigned utf16_length = 0;
294 while (stream_length != 0) {
296 uint32_t character =
Utf8::ValueOf(stream, stream_length, &cursor);
297 ASSERT(cursor > 0 && cursor <= stream_length);
299 stream_length -= cursor;
301 utf16_length += is_two_characters ? 2 : 1;
303 if (!writing_to_buffer)
continue;
306 if (utf16_length <= buffer_length) {
307 if (is_two_characters) {
311 *buffer++ = character;
313 if (utf16_length == buffer_length) {
315 writing_to_buffer =
false;
322 ASSERT(is_two_characters);
323 writing_to_buffer =
false;
333 unsigned data_length) {
334 while (data_length != 0) {
355 static const uint16_t kUppercaseTable0Size = 450;
356 static const int32_t kUppercaseTable0[450] = {
357 1073741889, 90, 1073742016, 214, 1073742040, 222, 256, 258,
358 260, 262, 264, 266, 268, 270, 272, 274,
359 276, 278, 280, 282, 284, 286, 288, 290,
360 292, 294, 296, 298, 300, 302, 304, 306,
361 308, 310, 313, 315, 317, 319, 321, 323,
362 325, 327, 330, 332, 334, 336, 338, 340,
363 342, 344, 346, 348, 350, 352, 354, 356,
364 358, 360, 362, 364, 366, 368, 370, 372,
365 374, 1073742200, 377, 379, 381, 1073742209, 386, 388,
366 1073742214, 391, 1073742217, 395, 1073742222, 401, 1073742227, 404,
367 1073742230, 408, 1073742236, 413, 1073742239, 416, 418, 420,
368 1073742246, 423, 425, 428, 1073742254, 431, 1073742257, 435,
369 437, 1073742263, 440, 444, 452, 455, 458, 461,
370 463, 465, 467, 469, 471, 473, 475, 478,
371 480, 482, 484, 486, 488, 490, 492, 494,
372 497, 500, 1073742326, 504, 506, 508, 510, 512,
373 514, 516, 518, 520, 522, 524, 526, 528,
374 530, 532, 534, 536, 538, 540, 542, 544,
375 546, 548, 550, 552, 554, 556, 558, 560,
376 562, 1073742394, 571, 1073742397, 574, 577, 1073742403, 582,
377 584, 586, 588, 590, 880, 882, 886, 902,
378 1073742728, 906, 908, 1073742734, 911, 1073742737, 929, 1073742755,
379 939, 975, 1073742802, 980, 984, 986, 988, 990,
380 992, 994, 996, 998, 1000, 1002, 1004, 1006,
381 1012, 1015, 1073742841, 1018, 1073742845, 1071, 1120, 1122,
382 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1138,
383 1140, 1142, 1144, 1146, 1148, 1150, 1152, 1162,
384 1164, 1166, 1168, 1170, 1172, 1174, 1176, 1178,
385 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194,
386 1196, 1198, 1200, 1202, 1204, 1206, 1208, 1210,
387 1212, 1214, 1073743040, 1217, 1219, 1221, 1223, 1225,
388 1227, 1229, 1232, 1234, 1236, 1238, 1240, 1242,
389 1244, 1246, 1248, 1250, 1252, 1254, 1256, 1258,
390 1260, 1262, 1264, 1266, 1268, 1270, 1272, 1274,
391 1276, 1278, 1280, 1282, 1284, 1286, 1288, 1290,
392 1292, 1294, 1296, 1298, 1300, 1302, 1304, 1306,
393 1308, 1310, 1312, 1314, 1316, 1318, 1073743153, 1366,
394 1073746080, 4293, 4295, 4301, 7680, 7682, 7684, 7686,
395 7688, 7690, 7692, 7694, 7696, 7698, 7700, 7702,
396 7704, 7706, 7708, 7710, 7712, 7714, 7716, 7718,
397 7720, 7722, 7724, 7726, 7728, 7730, 7732, 7734,
398 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750,
399 7752, 7754, 7756, 7758, 7760, 7762, 7764, 7766,
400 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782,
401 7784, 7786, 7788, 7790, 7792, 7794, 7796, 7798,
402 7800, 7802, 7804, 7806, 7808, 7810, 7812, 7814,
403 7816, 7818, 7820, 7822, 7824, 7826, 7828, 7838,
404 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854,
405 7856, 7858, 7860, 7862, 7864, 7866, 7868, 7870,
406 7872, 7874, 7876, 7878, 7880, 7882, 7884, 7886,
407 7888, 7890, 7892, 7894, 7896, 7898, 7900, 7902,
408 7904, 7906, 7908, 7910, 7912, 7914, 7916, 7918,
409 7920, 7922, 7924, 7926, 7928, 7930, 7932, 7934,
410 1073749768, 7951, 1073749784, 7965, 1073749800, 7983, 1073749816, 7999,
411 1073749832, 8013, 8025, 8027, 8029, 8031, 1073749864, 8047,
412 1073749944, 8123, 1073749960, 8139, 1073749976, 8155, 1073749992, 8172,
414 static const uint16_t kUppercaseTable1Size = 86;
415 static const int32_t kUppercaseTable1[86] = {
416 258, 263, 1073742091, 269, 1073742096, 274, 277, 1073742105,
417 285, 292, 294, 296, 1073742122, 301, 1073742128, 307,
418 1073742142, 319, 325, 387, 1073744896, 3118, 3168, 1073744994,
419 3172, 3175, 3177, 3179, 1073745005, 3184, 3186, 3189,
420 1073745022, 3200, 3202, 3204, 3206, 3208, 3210, 3212,
421 3214, 3216, 3218, 3220, 3222, 3224, 3226, 3228,
422 3230, 3232, 3234, 3236, 3238, 3240, 3242, 3244,
423 3246, 3248, 3250, 3252, 3254, 3256, 3258, 3260,
424 3262, 3264, 3266, 3268, 3270, 3272, 3274, 3276,
425 3278, 3280, 3282, 3284, 3286, 3288, 3290, 3292,
426 3294, 3296, 3298, 3307, 3309, 3314 };
427 static const uint16_t kUppercaseTable5Size = 91;
428 static const int32_t kUppercaseTable5[91] = {
429 1600, 1602, 1604, 1606, 1608, 1610, 1612, 1614,
430 1616, 1618, 1620, 1622, 1624, 1626, 1628, 1630,
431 1632, 1634, 1636, 1638, 1640, 1642, 1644, 1664,
432 1666, 1668, 1670, 1672, 1674, 1676, 1678, 1680,
433 1682, 1684, 1686, 1826, 1828, 1830, 1832, 1834,
434 1836, 1838, 1842, 1844, 1846, 1848, 1850, 1852,
435 1854, 1856, 1858, 1860, 1862, 1864, 1866, 1868,
436 1870, 1872, 1874, 1876, 1878, 1880, 1882, 1884,
437 1886, 1888, 1890, 1892, 1894, 1896, 1898, 1900,
438 1902, 1913, 1915, 1073743741, 1918, 1920, 1922, 1924,
439 1926, 1931, 1933, 1936, 1938, 1952, 1954, 1956,
441 static const uint16_t kUppercaseTable7Size = 2;
442 static const int32_t kUppercaseTable7[2] = {
445 int chunk_index = c >> 13;
446 switch (chunk_index) {
447 case 0:
return LookupPredicate(kUppercaseTable0,
448 kUppercaseTable0Size,
450 case 1:
return LookupPredicate(kUppercaseTable1,
451 kUppercaseTable1Size,
453 case 5:
return LookupPredicate(kUppercaseTable5,
454 kUppercaseTable5Size,
456 case 7:
return LookupPredicate(kUppercaseTable7,
457 kUppercaseTable7Size,
459 default:
return false;
466 static const uint16_t kLowercaseTable0Size = 463;
467 static const int32_t kLowercaseTable0[463] = {
468 1073741921, 122, 181, 1073742047, 246, 1073742072, 255, 257,
469 259, 261, 263, 265, 267, 269, 271, 273,
470 275, 277, 279, 281, 283, 285, 287, 289,
471 291, 293, 295, 297, 299, 301, 303, 305,
472 307, 309, 1073742135, 312, 314, 316, 318, 320,
473 322, 324, 326, 1073742152, 329, 331, 333, 335,
474 337, 339, 341, 343, 345, 347, 349, 351,
475 353, 355, 357, 359, 361, 363, 365, 367,
476 369, 371, 373, 375, 378, 380, 1073742206, 384,
477 387, 389, 392, 1073742220, 397, 402, 405, 1073742233,
478 411, 414, 417, 419, 421, 424, 1073742250, 427,
479 429, 432, 436, 438, 1073742265, 442, 1073742269, 447,
480 454, 457, 460, 462, 464, 466, 468, 470,
481 472, 474, 1073742300, 477, 479, 481, 483, 485,
482 487, 489, 491, 493, 1073742319, 496, 499, 501,
483 505, 507, 509, 511, 513, 515, 517, 519,
484 521, 523, 525, 527, 529, 531, 533, 535,
485 537, 539, 541, 543, 545, 547, 549, 551,
486 553, 555, 557, 559, 561, 1073742387, 569, 572,
487 1073742399, 576, 578, 583, 585, 587, 589, 1073742415,
488 659, 1073742485, 687, 881, 883, 887, 1073742715, 893,
489 912, 1073742764, 974, 1073742800, 977, 1073742805, 983, 985,
490 987, 989, 991, 993, 995, 997, 999, 1001,
491 1003, 1005, 1073742831, 1011, 1013, 1016, 1073742843, 1020,
492 1073742896, 1119, 1121, 1123, 1125, 1127, 1129, 1131,
493 1133, 1135, 1137, 1139, 1141, 1143, 1145, 1147,
494 1149, 1151, 1153, 1163, 1165, 1167, 1169, 1171,
495 1173, 1175, 1177, 1179, 1181, 1183, 1185, 1187,
496 1189, 1191, 1193, 1195, 1197, 1199, 1201, 1203,
497 1205, 1207, 1209, 1211, 1213, 1215, 1218, 1220,
498 1222, 1224, 1226, 1228, 1073743054, 1231, 1233, 1235,
499 1237, 1239, 1241, 1243, 1245, 1247, 1249, 1251,
500 1253, 1255, 1257, 1259, 1261, 1263, 1265, 1267,
501 1269, 1271, 1273, 1275, 1277, 1279, 1281, 1283,
502 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299,
503 1301, 1303, 1305, 1307, 1309, 1311, 1313, 1315,
504 1317, 1319, 1073743201, 1415, 1073749248, 7467, 1073749355, 7543,
505 1073749369, 7578, 7681, 7683, 7685, 7687, 7689, 7691,
506 7693, 7695, 7697, 7699, 7701, 7703, 7705, 7707,
507 7709, 7711, 7713, 7715, 7717, 7719, 7721, 7723,
508 7725, 7727, 7729, 7731, 7733, 7735, 7737, 7739,
509 7741, 7743, 7745, 7747, 7749, 7751, 7753, 7755,
510 7757, 7759, 7761, 7763, 7765, 7767, 7769, 7771,
511 7773, 7775, 7777, 7779, 7781, 7783, 7785, 7787,
512 7789, 7791, 7793, 7795, 7797, 7799, 7801, 7803,
513 7805, 7807, 7809, 7811, 7813, 7815, 7817, 7819,
514 7821, 7823, 7825, 7827, 1073749653, 7837, 7839, 7841,
515 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857,
516 7859, 7861, 7863, 7865, 7867, 7869, 7871, 7873,
517 7875, 7877, 7879, 7881, 7883, 7885, 7887, 7889,
518 7891, 7893, 7895, 7897, 7899, 7901, 7903, 7905,
519 7907, 7909, 7911, 7913, 7915, 7917, 7919, 7921,
520 7923, 7925, 7927, 7929, 7931, 7933, 1073749759, 7943,
521 1073749776, 7957, 1073749792, 7975, 1073749808, 7991, 1073749824, 8005,
522 1073749840, 8023, 1073749856, 8039, 1073749872, 8061, 1073749888, 8071,
523 1073749904, 8087, 1073749920, 8103, 1073749936, 8116, 1073749942, 8119,
524 8126, 1073749954, 8132, 1073749958, 8135, 1073749968, 8147, 1073749974,
525 8151, 1073749984, 8167, 1073750002, 8180, 1073750006, 8183 };
526 static const uint16_t kLowercaseTable1Size = 84;
527 static const int32_t kLowercaseTable1[84] = {
528 266, 1073742094, 271, 275, 303, 308, 313, 1073742140,
529 317, 1073742150, 329, 334, 388, 1073744944, 3166, 3169,
530 1073744997, 3174, 3176, 3178, 3180, 3185, 1073745011, 3188,
531 1073745014, 3195, 3201, 3203, 3205, 3207, 3209, 3211,
532 3213, 3215, 3217, 3219, 3221, 3223, 3225, 3227,
533 3229, 3231, 3233, 3235, 3237, 3239, 3241, 3243,
534 3245, 3247, 3249, 3251, 3253, 3255, 3257, 3259,
535 3261, 3263, 3265, 3267, 3269, 3271, 3273, 3275,
536 3277, 3279, 3281, 3283, 3285, 3287, 3289, 3291,
537 3293, 3295, 3297, 1073745123, 3300, 3308, 3310, 3315,
538 1073745152, 3365, 3367, 3373 };
539 static const uint16_t kLowercaseTable5Size = 93;
540 static const int32_t kLowercaseTable5[93] = {
541 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615,
542 1617, 1619, 1621, 1623, 1625, 1627, 1629, 1631,
543 1633, 1635, 1637, 1639, 1641, 1643, 1645, 1665,
544 1667, 1669, 1671, 1673, 1675, 1677, 1679, 1681,
545 1683, 1685, 1687, 1827, 1829, 1831, 1833, 1835,
546 1837, 1073743663, 1841, 1843, 1845, 1847, 1849, 1851,
547 1853, 1855, 1857, 1859, 1861, 1863, 1865, 1867,
548 1869, 1871, 1873, 1875, 1877, 1879, 1881, 1883,
549 1885, 1887, 1889, 1891, 1893, 1895, 1897, 1899,
550 1901, 1903, 1073743729, 1912, 1914, 1916, 1919, 1921,
551 1923, 1925, 1927, 1932, 1934, 1937, 1939, 1953,
552 1955, 1957, 1959, 1961, 2042 };
553 static const uint16_t kLowercaseTable7Size = 6;
554 static const int32_t kLowercaseTable7[6] = {
555 1073748736, 6918, 1073748755, 6935, 1073749825, 8026 };
557 int chunk_index = c >> 13;
558 switch (chunk_index) {
559 case 0:
return LookupPredicate(kLowercaseTable0,
560 kLowercaseTable0Size,
562 case 1:
return LookupPredicate(kLowercaseTable1,
563 kLowercaseTable1Size,
565 case 5:
return LookupPredicate(kLowercaseTable5,
566 kLowercaseTable5Size,
568 case 7:
return LookupPredicate(kLowercaseTable7,
569 kLowercaseTable7Size,
571 default:
return false;
578 static const uint16_t kLetterTable0Size = 435;
579 static const int32_t kLetterTable0[435] = {
580 1073741889, 90, 1073741921, 122, 170, 181, 186, 1073742016,
581 214, 1073742040, 246, 1073742072, 705, 1073742534, 721, 1073742560,
582 740, 748, 750, 1073742704, 884, 1073742710, 887, 1073742714,
583 893, 902, 1073742728, 906, 908, 1073742734, 929, 1073742755,
584 1013, 1073742839, 1153, 1073742986, 1319, 1073743153, 1366, 1369,
585 1073743201, 1415, 1073743312, 1514, 1073743344, 1522, 1073743392, 1610,
586 1073743470, 1647, 1073743473, 1747, 1749, 1073743589, 1766, 1073743598,
587 1775, 1073743610, 1788, 1791, 1808, 1073743634, 1839, 1073743693,
588 1957, 1969, 1073743818, 2026, 1073743860, 2037, 2042, 1073743872,
589 2069, 2074, 2084, 2088, 1073743936, 2136, 2208, 1073744034,
590 2220, 1073744132, 2361, 2365, 2384, 1073744216, 2401, 1073744241,
591 2423, 1073744249, 2431, 1073744261, 2444, 1073744271, 2448, 1073744275,
592 2472, 1073744298, 2480, 2482, 1073744310, 2489, 2493, 2510,
593 1073744348, 2525, 1073744351, 2529, 1073744368, 2545, 1073744389, 2570,
594 1073744399, 2576, 1073744403, 2600, 1073744426, 2608, 1073744434, 2611,
595 1073744437, 2614, 1073744440, 2617, 1073744473, 2652, 2654, 1073744498,
596 2676, 1073744517, 2701, 1073744527, 2705, 1073744531, 2728, 1073744554,
597 2736, 1073744562, 2739, 1073744565, 2745, 2749, 2768, 1073744608,
598 2785, 1073744645, 2828, 1073744655, 2832, 1073744659, 2856, 1073744682,
599 2864, 1073744690, 2867, 1073744693, 2873, 2877, 1073744732, 2909,
600 1073744735, 2913, 2929, 2947, 1073744773, 2954, 1073744782, 2960,
601 1073744786, 2965, 1073744793, 2970, 2972, 1073744798, 2975, 1073744803,
602 2980, 1073744808, 2986, 1073744814, 3001, 3024, 1073744901, 3084,
603 1073744910, 3088, 1073744914, 3112, 1073744938, 3123, 1073744949, 3129,
604 3133, 1073744984, 3161, 1073744992, 3169, 1073745029, 3212, 1073745038,
605 3216, 1073745042, 3240, 1073745066, 3251, 1073745077, 3257, 3261,
606 3294, 1073745120, 3297, 1073745137, 3314, 1073745157, 3340, 1073745166,
607 3344, 1073745170, 3386, 3389, 3406, 1073745248, 3425, 1073745274,
608 3455, 1073745285, 3478, 1073745306, 3505, 1073745331, 3515, 3517,
609 1073745344, 3526, 1073745409, 3632, 1073745458, 3635, 1073745472, 3654,
610 1073745537, 3714, 3716, 1073745543, 3720, 3722, 3725, 1073745556,
611 3735, 1073745561, 3743, 1073745569, 3747, 3749, 3751, 1073745578,
612 3755, 1073745581, 3760, 1073745586, 3763, 3773, 1073745600, 3780,
613 3782, 1073745628, 3807, 3840, 1073745728, 3911, 1073745737, 3948,
614 1073745800, 3980, 1073745920, 4138, 4159, 1073746000, 4181, 1073746010,
615 4189, 4193, 1073746021, 4198, 1073746030, 4208, 1073746037, 4225,
616 4238, 1073746080, 4293, 4295, 4301, 1073746128, 4346, 1073746172,
617 4680, 1073746506, 4685, 1073746512, 4694, 4696, 1073746522, 4701,
618 1073746528, 4744, 1073746570, 4749, 1073746576, 4784, 1073746610, 4789,
619 1073746616, 4798, 4800, 1073746626, 4805, 1073746632, 4822, 1073746648,
620 4880, 1073746706, 4885, 1073746712, 4954, 1073746816, 5007, 1073746848,
621 5108, 1073746945, 5740, 1073747567, 5759, 1073747585, 5786, 1073747616,
622 5866, 1073747694, 5872, 1073747712, 5900, 1073747726, 5905, 1073747744,
623 5937, 1073747776, 5969, 1073747808, 5996, 1073747822, 6000, 1073747840,
624 6067, 6103, 6108, 1073748000, 6263, 1073748096, 6312, 6314,
625 1073748144, 6389, 1073748224, 6428, 1073748304, 6509, 1073748336, 6516,
626 1073748352, 6571, 1073748417, 6599, 1073748480, 6678, 1073748512, 6740,
627 6823, 1073748741, 6963, 1073748805, 6987, 1073748867, 7072, 1073748910,
628 7087, 1073748922, 7141, 1073748992, 7203, 1073749069, 7247, 1073749082,
629 7293, 1073749225, 7404, 1073749230, 7409, 1073749237, 7414, 1073749248,
630 7615, 1073749504, 7957, 1073749784, 7965, 1073749792, 8005, 1073749832,
631 8013, 1073749840, 8023, 8025, 8027, 8029, 1073749855, 8061,
632 1073749888, 8116, 1073749942, 8124, 8126, 1073749954, 8132, 1073749958,
633 8140, 1073749968, 8147, 1073749974, 8155, 1073749984, 8172, 1073750002,
634 8180, 1073750006, 8188 };
635 static const uint16_t kLetterTable1Size = 87;
636 static const int32_t kLetterTable1[87] = {
637 113, 127, 1073741968, 156, 258, 263, 1073742090, 275,
638 277, 1073742105, 285, 292, 294, 296, 1073742122, 301,
639 1073742127, 313, 1073742140, 319, 1073742149, 329, 334, 1073742176,
640 392, 1073744896, 3118, 1073744944, 3166, 1073744992, 3300, 1073745131,
641 3310, 1073745138, 3315, 1073745152, 3365, 3367, 3373, 1073745200,
642 3431, 3439, 1073745280, 3478, 1073745312, 3494, 1073745320, 3502,
643 1073745328, 3510, 1073745336, 3518, 1073745344, 3526, 1073745352, 3534,
644 1073745360, 3542, 1073745368, 3550, 3631, 1073745925, 4103, 1073745953,
645 4137, 1073745969, 4149, 1073745976, 4156, 1073745985, 4246, 1073746077,
646 4255, 1073746081, 4346, 1073746172, 4351, 1073746181, 4397, 1073746225,
647 4494, 1073746336, 4538, 1073746416, 4607, 1073746944, 8191 };
648 static const uint16_t kLetterTable2Size = 4;
649 static const int32_t kLetterTable2[4] = {
650 1073741824, 3509, 1073745408, 8191 };
651 static const uint16_t kLetterTable3Size = 2;
652 static const int32_t kLetterTable3[2] = {
654 static const uint16_t kLetterTable4Size = 2;
655 static const int32_t kLetterTable4[2] = {
657 static const uint16_t kLetterTable5Size = 88;
658 static const int32_t kLetterTable5[88] = {
659 1073741824, 1164, 1073743056, 1277, 1073743104, 1548, 1073743376, 1567,
660 1073743402, 1579, 1073743424, 1646, 1073743487, 1687, 1073743520, 1775,
661 1073743639, 1823, 1073743650, 1928, 1073743755, 1934, 1073743760, 1939,
662 1073743776, 1962, 1073743864, 2049, 1073743875, 2053, 1073743879, 2058,
663 1073743884, 2082, 1073743936, 2163, 1073744002, 2227, 1073744114, 2295,
664 2299, 1073744138, 2341, 1073744176, 2374, 1073744224, 2428, 1073744260,
665 2482, 2511, 1073744384, 2600, 1073744448, 2626, 1073744452, 2635,
666 1073744480, 2678, 2682, 1073744512, 2735, 2737, 1073744565, 2742,
667 1073744569, 2749, 2752, 2754, 1073744603, 2781, 1073744608, 2794,
668 1073744626, 2804, 1073744641, 2822, 1073744649, 2830, 1073744657, 2838,
669 1073744672, 2854, 1073744680, 2862, 1073744832, 3042, 1073744896, 8191 };
670 static const uint16_t kLetterTable6Size = 6;
671 static const int32_t kLetterTable6[6] = {
672 1073741824, 6051, 1073747888, 6086, 1073747915, 6139 };
673 static const uint16_t kLetterTable7Size = 48;
674 static const int32_t kLetterTable7[48] = {
675 1073748224, 6765, 1073748592, 6873, 1073748736, 6918, 1073748755, 6935,
676 6941, 1073748767, 6952, 1073748778, 6966, 1073748792, 6972, 6974,
677 1073748800, 6977, 1073748803, 6980, 1073748806, 7089, 1073748947, 7485,
678 1073749328, 7567, 1073749394, 7623, 1073749488, 7675, 1073749616, 7796,
679 1073749622, 7932, 1073749793, 7994, 1073749825, 8026, 1073749862, 8126,
680 1073749954, 8135, 1073749962, 8143, 1073749970, 8151, 1073749978, 8156 };
682 int chunk_index = c >> 13;
683 switch (chunk_index) {
684 case 0:
return LookupPredicate(kLetterTable0,
687 case 1:
return LookupPredicate(kLetterTable1,
690 case 2:
return LookupPredicate(kLetterTable2,
693 case 3:
return LookupPredicate(kLetterTable3,
696 case 4:
return LookupPredicate(kLetterTable4,
699 case 5:
return LookupPredicate(kLetterTable5,
702 case 6:
return LookupPredicate(kLetterTable6,
705 case 7:
return LookupPredicate(kLetterTable7,
708 default:
return false;
715 static const uint16_t kNumberTable0Size = 56;
716 static const int32_t kNumberTable0[56] = {
717 1073741872, 57, 1073743456, 1641, 1073743600, 1785, 1073743808, 1993,
718 1073744230, 2415, 1073744358, 2543, 1073744486, 2671, 1073744614, 2799,
719 1073744742, 2927, 1073744870, 3055, 1073744998, 3183, 1073745126, 3311,
720 1073745254, 3439, 1073745488, 3673, 1073745616, 3801, 1073745696, 3881,
721 1073745984, 4169, 1073746064, 4249, 1073747936, 6121, 1073747984, 6169,
722 1073748294, 6479, 1073748432, 6617, 1073748608, 6793, 1073748624, 6809,
723 1073748816, 7001, 1073748912, 7097, 1073749056, 7241, 1073749072, 7257 };
724 static const uint16_t kNumberTable5Size = 12;
725 static const int32_t kNumberTable5[12] = {
726 1073743392, 1577, 1073744080, 2265, 1073744128, 2313, 1073744336, 2521,
727 1073744464, 2649, 1073744880, 3065 };
728 static const uint16_t kNumberTable7Size = 2;
729 static const int32_t kNumberTable7[2] = {
732 int chunk_index = c >> 13;
733 switch (chunk_index) {
734 case 0:
return LookupPredicate(kNumberTable0,
737 case 5:
return LookupPredicate(kNumberTable5,
740 case 7:
return LookupPredicate(kNumberTable7,
743 default:
return false;
750 static const uint16_t kWhiteSpaceTable0Size = 4;
751 static const int32_t kWhiteSpaceTable0[4] = {
752 32, 160, 5760, 6158 };
753 static const uint16_t kWhiteSpaceTable1Size = 5;
754 static const int32_t kWhiteSpaceTable1[5] = {
755 1073741824, 10, 47, 95, 4096 };
757 int chunk_index = c >> 13;
758 switch (chunk_index) {
759 case 0:
return LookupPredicate(kWhiteSpaceTable0,
760 kWhiteSpaceTable0Size,
762 case 1:
return LookupPredicate(kWhiteSpaceTable1,
763 kWhiteSpaceTable1Size,
765 default:
return false;
772 static const uint16_t kLineTerminatorTable0Size = 2;
773 static const int32_t kLineTerminatorTable0[2] = {
775 static const uint16_t kLineTerminatorTable1Size = 2;
776 static const int32_t kLineTerminatorTable1[2] = {
779 int chunk_index = c >> 13;
780 switch (chunk_index) {
781 case 0:
return LookupPredicate(kLineTerminatorTable0,
782 kLineTerminatorTable0Size,
784 case 1:
return LookupPredicate(kLineTerminatorTable1,
785 kLineTerminatorTable1Size,
787 default:
return false;
794 static const uint16_t kCombiningMarkTable0Size = 258;
795 static const int32_t kCombiningMarkTable0[258] = {
796 1073742592, 879, 1073742979, 1159, 1073743249, 1469, 1471, 1073743297,
797 1474, 1073743300, 1477, 1479, 1073743376, 1562, 1073743435, 1631,
798 1648, 1073743574, 1756, 1073743583, 1764, 1073743591, 1768, 1073743594,
799 1773, 1809, 1073743664, 1866, 1073743782, 1968, 1073743851, 2035,
800 1073743894, 2073, 1073743899, 2083, 1073743909, 2087, 1073743913, 2093,
801 1073743961, 2139, 1073744100, 2302, 1073744128, 2307, 1073744186, 2364,
802 1073744190, 2383, 1073744209, 2391, 1073744226, 2403, 1073744257, 2435,
803 2492, 1073744318, 2500, 1073744327, 2504, 1073744331, 2509, 2519,
804 1073744354, 2531, 1073744385, 2563, 2620, 1073744446, 2626, 1073744455,
805 2632, 1073744459, 2637, 2641, 1073744496, 2673, 2677, 1073744513,
806 2691, 2748, 1073744574, 2757, 1073744583, 2761, 1073744587, 2765,
807 1073744610, 2787, 1073744641, 2819, 2876, 1073744702, 2884, 1073744711,
808 2888, 1073744715, 2893, 1073744726, 2903, 1073744738, 2915, 2946,
809 1073744830, 3010, 1073744838, 3016, 1073744842, 3021, 3031, 1073744897,
810 3075, 1073744958, 3140, 1073744966, 3144, 1073744970, 3149, 1073744981,
811 3158, 1073744994, 3171, 1073745026, 3203, 3260, 1073745086, 3268,
812 1073745094, 3272, 1073745098, 3277, 1073745109, 3286, 1073745122, 3299,
813 1073745154, 3331, 1073745214, 3396, 1073745222, 3400, 1073745226, 3405,
814 3415, 1073745250, 3427, 1073745282, 3459, 3530, 1073745359, 3540,
815 3542, 1073745368, 3551, 1073745394, 3571, 3633, 1073745460, 3642,
816 1073745479, 3662, 3761, 1073745588, 3769, 1073745595, 3772, 1073745608,
817 3789, 1073745688, 3865, 3893, 3895, 3897, 1073745726, 3903,
818 1073745777, 3972, 1073745798, 3975, 1073745805, 3991, 1073745817, 4028,
819 4038, 1073745963, 4158, 1073746006, 4185, 1073746014, 4192, 1073746018,
820 4196, 1073746023, 4205, 1073746033, 4212, 1073746050, 4237, 4239,
821 1073746074, 4253, 1073746781, 4959, 1073747730, 5908, 1073747762, 5940,
822 1073747794, 5971, 1073747826, 6003, 1073747892, 6099, 6109, 1073747979,
823 6157, 6313, 1073748256, 6443, 1073748272, 6459, 1073748400, 6592,
824 1073748424, 6601, 1073748503, 6683, 1073748565, 6750, 1073748576, 6780,
825 6783, 1073748736, 6916, 1073748788, 6980, 1073748843, 7027, 1073748864,
826 7042, 1073748897, 7085, 1073748966, 7155, 1073749028, 7223, 1073749200,
827 7378, 1073749204, 7400, 7405, 1073749234, 7412, 1073749440, 7654,
829 static const uint16_t kCombiningMarkTable1Size = 14;
830 static const int32_t kCombiningMarkTable1[14] = {
831 1073742032, 220, 225, 1073742053, 240, 1073745135, 3313, 3455,
832 1073745376, 3583, 1073745962, 4143, 1073746073, 4250 };
833 static const uint16_t kCombiningMarkTable5Size = 47;
834 static const int32_t kCombiningMarkTable5[47] = {
835 1647, 1073743476, 1661, 1695, 1073743600, 1777, 2050, 2054,
836 2059, 1073743907, 2087, 1073744000, 2177, 1073744052, 2244, 1073744096,
837 2289, 1073744166, 2349, 1073744199, 2387, 1073744256, 2435, 1073744307,
838 2496, 1073744425, 2614, 2627, 1073744460, 2637, 2683, 2736,
839 1073744562, 2740, 1073744567, 2744, 1073744574, 2751, 2753, 1073744619,
840 2799, 1073744629, 2806, 1073744867, 3050, 1073744876, 3053 };
841 static const uint16_t kCombiningMarkTable7Size = 5;
842 static const int32_t kCombiningMarkTable7[5] = {
843 6942, 1073749504, 7695, 1073749536, 7718 };
845 int chunk_index = c >> 13;
846 switch (chunk_index) {
847 case 0:
return LookupPredicate(kCombiningMarkTable0,
848 kCombiningMarkTable0Size,
850 case 1:
return LookupPredicate(kCombiningMarkTable1,
851 kCombiningMarkTable1Size,
853 case 5:
return LookupPredicate(kCombiningMarkTable5,
854 kCombiningMarkTable5Size,
856 case 7:
return LookupPredicate(kCombiningMarkTable7,
857 kCombiningMarkTable7Size,
859 default:
return false;
866 static const uint16_t kConnectorPunctuationTable0Size = 1;
867 static const int32_t kConnectorPunctuationTable0[1] = {
869 static const uint16_t kConnectorPunctuationTable1Size = 3;
870 static const int32_t kConnectorPunctuationTable1[3] = {
871 1073741887, 64, 84 };
872 static const uint16_t kConnectorPunctuationTable7Size = 5;
873 static const int32_t kConnectorPunctuationTable7[5] = {
874 1073749555, 7732, 1073749581, 7759, 7999 };
876 int chunk_index = c >> 13;
877 switch (chunk_index) {
878 case 0:
return LookupPredicate(kConnectorPunctuationTable0,
879 kConnectorPunctuationTable0Size,
881 case 1:
return LookupPredicate(kConnectorPunctuationTable1,
882 kConnectorPunctuationTable1Size,
884 case 7:
return LookupPredicate(kConnectorPunctuationTable7,
885 kConnectorPunctuationTable7Size,
887 default:
return false;
892 {{105, 775}}, {{kSentinel}} };
893 static const uint16_t kToLowercaseTable0Size = 483;
894 static const int32_t kToLowercaseTable0[966] = {
895 1073741889, 128, 90, 128, 1073742016, 128, 214, 128, 1073742040, 128, 222, 128, 256, 4, 258, 4,
896 260, 4, 262, 4, 264, 4, 266, 4, 268, 4, 270, 4, 272, 4, 274, 4,
897 276, 4, 278, 4, 280, 4, 282, 4, 284, 4, 286, 4, 288, 4, 290, 4,
898 292, 4, 294, 4, 296, 4, 298, 4, 300, 4, 302, 4, 304, 1, 306, 4,
899 308, 4, 310, 4, 313, 4, 315, 4, 317, 4, 319, 4, 321, 4, 323, 4,
900 325, 4, 327, 4, 330, 4, 332, 4, 334, 4, 336, 4, 338, 4, 340, 4,
901 342, 4, 344, 4, 346, 4, 348, 4, 350, 4, 352, 4, 354, 4, 356, 4,
902 358, 4, 360, 4, 362, 4, 364, 4, 366, 4, 368, 4, 370, 4, 372, 4,
903 374, 4, 376, -484, 377, 4, 379, 4, 381, 4, 385, 840, 386, 4, 388, 4,
904 390, 824, 391, 4, 1073742217, 820, 394, 820, 395, 4, 398, 316, 399, 808, 400, 812,
905 401, 4, 403, 820, 404, 828, 406, 844, 407, 836, 408, 4, 412, 844, 413, 852,
906 415, 856, 416, 4, 418, 4, 420, 4, 422, 872, 423, 4, 425, 872, 428, 4,
907 430, 872, 431, 4, 1073742257, 868, 434, 868, 435, 4, 437, 4, 439, 876, 440, 4,
908 444, 4, 452, 8, 453, 4, 455, 8, 456, 4, 458, 8, 459, 4, 461, 4,
909 463, 4, 465, 4, 467, 4, 469, 4, 471, 4, 473, 4, 475, 4, 478, 4,
910 480, 4, 482, 4, 484, 4, 486, 4, 488, 4, 490, 4, 492, 4, 494, 4,
911 497, 8, 498, 4, 500, 4, 502, -388, 503, -224, 504, 4, 506, 4, 508, 4,
912 510, 4, 512, 4, 514, 4, 516, 4, 518, 4, 520, 4, 522, 4, 524, 4,
913 526, 4, 528, 4, 530, 4, 532, 4, 534, 4, 536, 4, 538, 4, 540, 4,
914 542, 4, 544, -520, 546, 4, 548, 4, 550, 4, 552, 4, 554, 4, 556, 4,
915 558, 4, 560, 4, 562, 4, 570, 43180, 571, 4, 573, -652, 574, 43168, 577, 4,
916 579, -780, 580, 276, 581, 284, 582, 4, 584, 4, 586, 4, 588, 4, 590, 4,
917 880, 4, 882, 4, 886, 4, 902, 152, 1073742728, 148, 906, 148, 908, 256, 1073742734, 252,
918 911, 252, 1073742737, 128, 929, 128, 931, 6, 1073742756, 128, 939, 128, 975, 32, 984, 4,
919 986, 4, 988, 4, 990, 4, 992, 4, 994, 4, 996, 4, 998, 4, 1000, 4,
920 1002, 4, 1004, 4, 1006, 4, 1012, -240, 1015, 4, 1017, -28, 1018, 4, 1073742845, -520,
921 1023, -520, 1073742848, 320, 1039, 320, 1073742864, 128, 1071, 128, 1120, 4, 1122, 4, 1124, 4,
922 1126, 4, 1128, 4, 1130, 4, 1132, 4, 1134, 4, 1136, 4, 1138, 4, 1140, 4,
923 1142, 4, 1144, 4, 1146, 4, 1148, 4, 1150, 4, 1152, 4, 1162, 4, 1164, 4,
924 1166, 4, 1168, 4, 1170, 4, 1172, 4, 1174, 4, 1176, 4, 1178, 4, 1180, 4,
925 1182, 4, 1184, 4, 1186, 4, 1188, 4, 1190, 4, 1192, 4, 1194, 4, 1196, 4,
926 1198, 4, 1200, 4, 1202, 4, 1204, 4, 1206, 4, 1208, 4, 1210, 4, 1212, 4,
927 1214, 4, 1216, 60, 1217, 4, 1219, 4, 1221, 4, 1223, 4, 1225, 4, 1227, 4,
928 1229, 4, 1232, 4, 1234, 4, 1236, 4, 1238, 4, 1240, 4, 1242, 4, 1244, 4,
929 1246, 4, 1248, 4, 1250, 4, 1252, 4, 1254, 4, 1256, 4, 1258, 4, 1260, 4,
930 1262, 4, 1264, 4, 1266, 4, 1268, 4, 1270, 4, 1272, 4, 1274, 4, 1276, 4,
931 1278, 4, 1280, 4, 1282, 4, 1284, 4, 1286, 4, 1288, 4, 1290, 4, 1292, 4,
932 1294, 4, 1296, 4, 1298, 4, 1300, 4, 1302, 4, 1304, 4, 1306, 4, 1308, 4,
933 1310, 4, 1312, 4, 1314, 4, 1316, 4, 1318, 4, 1073743153, 192, 1366, 192, 1073746080, 29056,
934 4293, 29056, 4295, 29056, 4301, 29056, 7680, 4, 7682, 4, 7684, 4, 7686, 4, 7688, 4,
935 7690, 4, 7692, 4, 7694, 4, 7696, 4, 7698, 4, 7700, 4, 7702, 4, 7704, 4,
936 7706, 4, 7708, 4, 7710, 4, 7712, 4, 7714, 4, 7716, 4, 7718, 4, 7720, 4,
937 7722, 4, 7724, 4, 7726, 4, 7728, 4, 7730, 4, 7732, 4, 7734, 4, 7736, 4,
938 7738, 4, 7740, 4, 7742, 4, 7744, 4, 7746, 4, 7748, 4, 7750, 4, 7752, 4,
939 7754, 4, 7756, 4, 7758, 4, 7760, 4, 7762, 4, 7764, 4, 7766, 4, 7768, 4,
940 7770, 4, 7772, 4, 7774, 4, 7776, 4, 7778, 4, 7780, 4, 7782, 4, 7784, 4,
941 7786, 4, 7788, 4, 7790, 4, 7792, 4, 7794, 4, 7796, 4, 7798, 4, 7800, 4,
942 7802, 4, 7804, 4, 7806, 4, 7808, 4, 7810, 4, 7812, 4, 7814, 4, 7816, 4,
943 7818, 4, 7820, 4, 7822, 4, 7824, 4, 7826, 4, 7828, 4, 7838, -30460, 7840, 4,
944 7842, 4, 7844, 4, 7846, 4, 7848, 4, 7850, 4, 7852, 4, 7854, 4, 7856, 4,
945 7858, 4, 7860, 4, 7862, 4, 7864, 4, 7866, 4, 7868, 4, 7870, 4, 7872, 4,
946 7874, 4, 7876, 4, 7878, 4, 7880, 4, 7882, 4, 7884, 4, 7886, 4, 7888, 4,
947 7890, 4, 7892, 4, 7894, 4, 7896, 4, 7898, 4, 7900, 4, 7902, 4, 7904, 4,
948 7906, 4, 7908, 4, 7910, 4, 7912, 4, 7914, 4, 7916, 4, 7918, 4, 7920, 4,
949 7922, 4, 7924, 4, 7926, 4, 7928, 4, 7930, 4, 7932, 4, 7934, 4, 1073749768, -32,
950 7951, -32, 1073749784, -32, 7965, -32, 1073749800, -32, 7983, -32, 1073749816, -32, 7999, -32, 1073749832, -32,
951 8013, -32, 8025, -32, 8027, -32, 8029, -32, 8031, -32, 1073749864, -32, 8047, -32, 1073749896, -32,
952 8079, -32, 1073749912, -32, 8095, -32, 1073749928, -32, 8111, -32, 1073749944, -32, 8121, -32, 1073749946, -296,
953 8123, -296, 8124, -36, 1073749960, -344, 8139, -344, 8140, -36, 1073749976, -32, 8153, -32, 1073749978, -400,
954 8155, -400, 1073749992, -32, 8169, -32, 1073749994, -448, 8171, -448, 8172, -28, 1073750008, -512, 8185, -512,
955 1073750010, -504, 8187, -504, 8188, -36 };
956 static const uint16_t kToLowercaseMultiStrings0Size = 2;
957 static const MultiCharacterSpecialCase<1> kToLowercaseMultiStrings1[1] = {
959 static const uint16_t kToLowercaseTable1Size = 79;
960 static const int32_t kToLowercaseTable1[158] = {
961 294, -30068, 298, -33532, 299, -33048, 306, 112, 1073742176, 64, 367, 64, 387, 4, 1073743030, 104,
962 1231, 104, 1073744896, 192, 3118, 192, 3168, 4, 3170, -42972, 3171, -15256, 3172, -42908, 3175, 4,
963 3177, 4, 3179, 4, 3181, -43120, 3182, -42996, 3183, -43132, 3184, -43128, 3186, 4, 3189, 4,
964 1073745022, -43260, 3199, -43260, 3200, 4, 3202, 4, 3204, 4, 3206, 4, 3208, 4, 3210, 4,
965 3212, 4, 3214, 4, 3216, 4, 3218, 4, 3220, 4, 3222, 4, 3224, 4, 3226, 4,
966 3228, 4, 3230, 4, 3232, 4, 3234, 4, 3236, 4, 3238, 4, 3240, 4, 3242, 4,
967 3244, 4, 3246, 4, 3248, 4, 3250, 4, 3252, 4, 3254, 4, 3256, 4, 3258, 4,
968 3260, 4, 3262, 4, 3264, 4, 3266, 4, 3268, 4, 3270, 4, 3272, 4, 3274, 4,
969 3276, 4, 3278, 4, 3280, 4, 3282, 4, 3284, 4, 3286, 4, 3288, 4, 3290, 4,
970 3292, 4, 3294, 4, 3296, 4, 3298, 4, 3307, 4, 3309, 4, 3314, 4 };
971 static const uint16_t kToLowercaseMultiStrings1Size = 1;
972 static const MultiCharacterSpecialCase<1> kToLowercaseMultiStrings5[1] = {
974 static const uint16_t kToLowercaseTable5Size = 91;
975 static const int32_t kToLowercaseTable5[182] = {
976 1600, 4, 1602, 4, 1604, 4, 1606, 4, 1608, 4, 1610, 4, 1612, 4, 1614, 4,
977 1616, 4, 1618, 4, 1620, 4, 1622, 4, 1624, 4, 1626, 4, 1628, 4, 1630, 4,
978 1632, 4, 1634, 4, 1636, 4, 1638, 4, 1640, 4, 1642, 4, 1644, 4, 1664, 4,
979 1666, 4, 1668, 4, 1670, 4, 1672, 4, 1674, 4, 1676, 4, 1678, 4, 1680, 4,
980 1682, 4, 1684, 4, 1686, 4, 1826, 4, 1828, 4, 1830, 4, 1832, 4, 1834, 4,
981 1836, 4, 1838, 4, 1842, 4, 1844, 4, 1846, 4, 1848, 4, 1850, 4, 1852, 4,
982 1854, 4, 1856, 4, 1858, 4, 1860, 4, 1862, 4, 1864, 4, 1866, 4, 1868, 4,
983 1870, 4, 1872, 4, 1874, 4, 1876, 4, 1878, 4, 1880, 4, 1882, 4, 1884, 4,
984 1886, 4, 1888, 4, 1890, 4, 1892, 4, 1894, 4, 1896, 4, 1898, 4, 1900, 4,
985 1902, 4, 1913, 4, 1915, 4, 1917, -141328, 1918, 4, 1920, 4, 1922, 4, 1924, 4,
986 1926, 4, 1931, 4, 1933, -169120, 1936, 4, 1938, 4, 1952, 4, 1954, 4, 1956, 4,
987 1958, 4, 1960, 4, 1962, -169232 };
988 static const uint16_t kToLowercaseMultiStrings5Size = 1;
989 static const MultiCharacterSpecialCase<1> kToLowercaseMultiStrings7[1] = {
991 static const uint16_t kToLowercaseTable7Size = 2;
992 static const int32_t kToLowercaseTable7[4] = {
993 1073749793, 128, 7994, 128 };
994 static const uint16_t kToLowercaseMultiStrings7Size = 1;
998 bool* allow_caching_ptr) {
999 int chunk_index = c >> 13;
1000 switch (chunk_index) {
1001 case 0:
return LookupMapping<true>(kToLowercaseTable0,
1002 kToLowercaseTable0Size,
1003 kToLowercaseMultiStrings0,
1008 case 1:
return LookupMapping<true>(kToLowercaseTable1,
1009 kToLowercaseTable1Size,
1010 kToLowercaseMultiStrings1,
1015 case 5:
return LookupMapping<true>(kToLowercaseTable5,
1016 kToLowercaseTable5Size,
1017 kToLowercaseMultiStrings5,
1022 case 7:
return LookupMapping<true>(kToLowercaseTable7,
1023 kToLowercaseTable7Size,
1024 kToLowercaseMultiStrings7,
1034 {{83, 83, kSentinel}}, {{700, 78, kSentinel}}, {{74, 780, kSentinel}}, {{921, 776, 769}},
1035 {{933, 776, 769}}, {{1333, 1362, kSentinel}}, {{72, 817, kSentinel}}, {{84, 776, kSentinel}},
1036 {{87, 778, kSentinel}}, {{89, 778, kSentinel}}, {{65, 702, kSentinel}}, {{933, 787, kSentinel}},
1037 {{933, 787, 768}}, {{933, 787, 769}}, {{933, 787, 834}}, {{7944, 921, kSentinel}},
1038 {{7945, 921, kSentinel}}, {{7946, 921, kSentinel}}, {{7947, 921, kSentinel}}, {{7948, 921, kSentinel}},
1039 {{7949, 921, kSentinel}}, {{7950, 921, kSentinel}}, {{7951, 921, kSentinel}}, {{7976, 921, kSentinel}},
1040 {{7977, 921, kSentinel}}, {{7978, 921, kSentinel}}, {{7979, 921, kSentinel}}, {{7980, 921, kSentinel}},
1041 {{7981, 921, kSentinel}}, {{7982, 921, kSentinel}}, {{7983, 921, kSentinel}}, {{8040, 921, kSentinel}},
1042 {{8041, 921, kSentinel}}, {{8042, 921, kSentinel}}, {{8043, 921, kSentinel}}, {{8044, 921, kSentinel}},
1043 {{8045, 921, kSentinel}}, {{8046, 921, kSentinel}}, {{8047, 921, kSentinel}}, {{8122, 921, kSentinel}},
1044 {{913, 921, kSentinel}}, {{902, 921, kSentinel}}, {{913, 834, kSentinel}}, {{913, 834, 921}},
1045 {{8138, 921, kSentinel}}, {{919, 921, kSentinel}}, {{905, 921, kSentinel}}, {{919, 834, kSentinel}},
1046 {{919, 834, 921}}, {{921, 776, 768}}, {{921, 834, kSentinel}}, {{921, 776, 834}},
1047 {{933, 776, 768}}, {{929, 787, kSentinel}}, {{933, 834, kSentinel}}, {{933, 776, 834}},
1048 {{8186, 921, kSentinel}}, {{937, 921, kSentinel}}, {{911, 921, kSentinel}}, {{937, 834, kSentinel}},
1049 {{937, 834, 921}}, {{kSentinel}} };
1050 static const uint16_t kToUppercaseTable0Size = 580;
1051 static const int32_t kToUppercaseTable0[1160] = {
1052 1073741921, -128, 122, -128, 181, 2972, 223, 1, 1073742048, -128, 246, -128, 1073742072, -128, 254, -128,
1053 255, 484, 257, -4, 259, -4, 261, -4, 263, -4, 265, -4, 267, -4, 269, -4,
1054 271, -4, 273, -4, 275, -4, 277, -4, 279, -4, 281, -4, 283, -4, 285, -4,
1055 287, -4, 289, -4, 291, -4, 293, -4, 295, -4, 297, -4, 299, -4, 301, -4,
1056 303, -4, 305, -928, 307, -4, 309, -4, 311, -4, 314, -4, 316, -4, 318, -4,
1057 320, -4, 322, -4, 324, -4, 326, -4, 328, -4, 329, 5, 331, -4, 333, -4,
1058 335, -4, 337, -4, 339, -4, 341, -4, 343, -4, 345, -4, 347, -4, 349, -4,
1059 351, -4, 353, -4, 355, -4, 357, -4, 359, -4, 361, -4, 363, -4, 365, -4,
1060 367, -4, 369, -4, 371, -4, 373, -4, 375, -4, 378, -4, 380, -4, 382, -4,
1061 383, -1200, 384, 780, 387, -4, 389, -4, 392, -4, 396, -4, 402, -4, 405, 388,
1062 409, -4, 410, 652, 414, 520, 417, -4, 419, -4, 421, -4, 424, -4, 429, -4,
1063 432, -4, 436, -4, 438, -4, 441, -4, 445, -4, 447, 224, 453, -4, 454, -8,
1064 456, -4, 457, -8, 459, -4, 460, -8, 462, -4, 464, -4, 466, -4, 468, -4,
1065 470, -4, 472, -4, 474, -4, 476, -4, 477, -316, 479, -4, 481, -4, 483, -4,
1066 485, -4, 487, -4, 489, -4, 491, -4, 493, -4, 495, -4, 496, 9, 498, -4,
1067 499, -8, 501, -4, 505, -4, 507, -4, 509, -4, 511, -4, 513, -4, 515, -4,
1068 517, -4, 519, -4, 521, -4, 523, -4, 525, -4, 527, -4, 529, -4, 531, -4,
1069 533, -4, 535, -4, 537, -4, 539, -4, 541, -4, 543, -4, 547, -4, 549, -4,
1070 551, -4, 553, -4, 555, -4, 557, -4, 559, -4, 561, -4, 563, -4, 572, -4,
1071 1073742399, 43260, 576, 43260, 578, -4, 583, -4, 585, -4, 587, -4, 589, -4, 591, -4,
1072 592, 43132, 593, 43120, 594, 43128, 595, -840, 596, -824, 1073742422, -820, 599, -820, 601, -808,
1073 603, -812, 608, -820, 611, -828, 613, 169120, 614, 169232, 616, -836, 617, -844, 619, 42972,
1074 623, -844, 625, 42996, 626, -852, 629, -856, 637, 42908, 640, -872, 643, -872, 648, -872,
1075 649, -276, 1073742474, -868, 651, -868, 652, -284, 658, -876, 837, 336, 881, -4, 883, -4,
1076 887, -4, 1073742715, 520, 893, 520, 912, 13, 940, -152, 1073742765, -148, 943, -148, 944, 17,
1077 1073742769, -128, 961, -128, 962, -124, 1073742787, -128, 971, -128, 972, -256, 1073742797, -252, 974, -252,
1078 976, -248, 977, -228, 981, -188, 982, -216, 983, -32, 985, -4, 987, -4, 989, -4,
1079 991, -4, 993, -4, 995, -4, 997, -4, 999, -4, 1001, -4, 1003, -4, 1005, -4,
1080 1007, -4, 1008, -344, 1009, -320, 1010, 28, 1013, -384, 1016, -4, 1019, -4, 1073742896, -128,
1081 1103, -128, 1073742928, -320, 1119, -320, 1121, -4, 1123, -4, 1125, -4, 1127, -4, 1129, -4,
1082 1131, -4, 1133, -4, 1135, -4, 1137, -4, 1139, -4, 1141, -4, 1143, -4, 1145, -4,
1083 1147, -4, 1149, -4, 1151, -4, 1153, -4, 1163, -4, 1165, -4, 1167, -4, 1169, -4,
1084 1171, -4, 1173, -4, 1175, -4, 1177, -4, 1179, -4, 1181, -4, 1183, -4, 1185, -4,
1085 1187, -4, 1189, -4, 1191, -4, 1193, -4, 1195, -4, 1197, -4, 1199, -4, 1201, -4,
1086 1203, -4, 1205, -4, 1207, -4, 1209, -4, 1211, -4, 1213, -4, 1215, -4, 1218, -4,
1087 1220, -4, 1222, -4, 1224, -4, 1226, -4, 1228, -4, 1230, -4, 1231, -60, 1233, -4,
1088 1235, -4, 1237, -4, 1239, -4, 1241, -4, 1243, -4, 1245, -4, 1247, -4, 1249, -4,
1089 1251, -4, 1253, -4, 1255, -4, 1257, -4, 1259, -4, 1261, -4, 1263, -4, 1265, -4,
1090 1267, -4, 1269, -4, 1271, -4, 1273, -4, 1275, -4, 1277, -4, 1279, -4, 1281, -4,
1091 1283, -4, 1285, -4, 1287, -4, 1289, -4, 1291, -4, 1293, -4, 1295, -4, 1297, -4,
1092 1299, -4, 1301, -4, 1303, -4, 1305, -4, 1307, -4, 1309, -4, 1311, -4, 1313, -4,
1093 1315, -4, 1317, -4, 1319, -4, 1073743201, -192, 1414, -192, 1415, 21, 7545, 141328, 7549, 15256,
1094 7681, -4, 7683, -4, 7685, -4, 7687, -4, 7689, -4, 7691, -4, 7693, -4, 7695, -4,
1095 7697, -4, 7699, -4, 7701, -4, 7703, -4, 7705, -4, 7707, -4, 7709, -4, 7711, -4,
1096 7713, -4, 7715, -4, 7717, -4, 7719, -4, 7721, -4, 7723, -4, 7725, -4, 7727, -4,
1097 7729, -4, 7731, -4, 7733, -4, 7735, -4, 7737, -4, 7739, -4, 7741, -4, 7743, -4,
1098 7745, -4, 7747, -4, 7749, -4, 7751, -4, 7753, -4, 7755, -4, 7757, -4, 7759, -4,
1099 7761, -4, 7763, -4, 7765, -4, 7767, -4, 7769, -4, 7771, -4, 7773, -4, 7775, -4,
1100 7777, -4, 7779, -4, 7781, -4, 7783, -4, 7785, -4, 7787, -4, 7789, -4, 7791, -4,
1101 7793, -4, 7795, -4, 7797, -4, 7799, -4, 7801, -4, 7803, -4, 7805, -4, 7807, -4,
1102 7809, -4, 7811, -4, 7813, -4, 7815, -4, 7817, -4, 7819, -4, 7821, -4, 7823, -4,
1103 7825, -4, 7827, -4, 7829, -4, 7830, 25, 7831, 29, 7832, 33, 7833, 37, 7834, 41,
1104 7835, -236, 7841, -4, 7843, -4, 7845, -4, 7847, -4, 7849, -4, 7851, -4, 7853, -4,
1105 7855, -4, 7857, -4, 7859, -4, 7861, -4, 7863, -4, 7865, -4, 7867, -4, 7869, -4,
1106 7871, -4, 7873, -4, 7875, -4, 7877, -4, 7879, -4, 7881, -4, 7883, -4, 7885, -4,
1107 7887, -4, 7889, -4, 7891, -4, 7893, -4, 7895, -4, 7897, -4, 7899, -4, 7901, -4,
1108 7903, -4, 7905, -4, 7907, -4, 7909, -4, 7911, -4, 7913, -4, 7915, -4, 7917, -4,
1109 7919, -4, 7921, -4, 7923, -4, 7925, -4, 7927, -4, 7929, -4, 7931, -4, 7933, -4,
1110 7935, -4, 1073749760, 32, 7943, 32, 1073749776, 32, 7957, 32, 1073749792, 32, 7975, 32, 1073749808, 32,
1111 7991, 32, 1073749824, 32, 8005, 32, 8016, 45, 8017, 32, 8018, 49, 8019, 32, 8020, 53,
1112 8021, 32, 8022, 57, 8023, 32, 1073749856, 32, 8039, 32, 1073749872, 296, 8049, 296, 1073749874, 344,
1113 8053, 344, 1073749878, 400, 8055, 400, 1073749880, 512, 8057, 512, 1073749882, 448, 8059, 448, 1073749884, 504,
1114 8061, 504, 8064, 61, 8065, 65, 8066, 69, 8067, 73, 8068, 77, 8069, 81, 8070, 85,
1115 8071, 89, 8072, 61, 8073, 65, 8074, 69, 8075, 73, 8076, 77, 8077, 81, 8078, 85,
1116 8079, 89, 8080, 93, 8081, 97, 8082, 101, 8083, 105, 8084, 109, 8085, 113, 8086, 117,
1117 8087, 121, 8088, 93, 8089, 97, 8090, 101, 8091, 105, 8092, 109, 8093, 113, 8094, 117,
1118 8095, 121, 8096, 125, 8097, 129, 8098, 133, 8099, 137, 8100, 141, 8101, 145, 8102, 149,
1119 8103, 153, 8104, 125, 8105, 129, 8106, 133, 8107, 137, 8108, 141, 8109, 145, 8110, 149,
1120 8111, 153, 1073749936, 32, 8113, 32, 8114, 157, 8115, 161, 8116, 165, 8118, 169, 8119, 173,
1121 8124, 161, 8126, -28820, 8130, 177, 8131, 181, 8132, 185, 8134, 189, 8135, 193, 8140, 181,
1122 1073749968, 32, 8145, 32, 8146, 197, 8147, 13, 8150, 201, 8151, 205, 1073749984, 32, 8161, 32,
1123 8162, 209, 8163, 17, 8164, 213, 8165, 28, 8166, 217, 8167, 221, 8178, 225, 8179, 229,
1124 8180, 233, 8182, 237, 8183, 241, 8188, 229 };
1125 static const uint16_t kToUppercaseMultiStrings0Size = 62;
1126 static const MultiCharacterSpecialCase<1> kToUppercaseMultiStrings1[1] = {
1128 static const uint16_t kToUppercaseTable1Size = 73;
1129 static const int32_t kToUppercaseTable1[146] = {
1130 334, -112, 1073742192, -64, 383, -64, 388, -4, 1073743056, -104, 1257, -104, 1073744944, -192, 3166, -192,
1131 3169, -4, 3173, -43180, 3174, -43168, 3176, -4, 3178, -4, 3180, -4, 3187, -4, 3190, -4,
1132 3201, -4, 3203, -4, 3205, -4, 3207, -4, 3209, -4, 3211, -4, 3213, -4, 3215, -4,
1133 3217, -4, 3219, -4, 3221, -4, 3223, -4, 3225, -4, 3227, -4, 3229, -4, 3231, -4,
1134 3233, -4, 3235, -4, 3237, -4, 3239, -4, 3241, -4, 3243, -4, 3245, -4, 3247, -4,
1135 3249, -4, 3251, -4, 3253, -4, 3255, -4, 3257, -4, 3259, -4, 3261, -4, 3263, -4,
1136 3265, -4, 3267, -4, 3269, -4, 3271, -4, 3273, -4, 3275, -4, 3277, -4, 3279, -4,
1137 3281, -4, 3283, -4, 3285, -4, 3287, -4, 3289, -4, 3291, -4, 3293, -4, 3295, -4,
1138 3297, -4, 3299, -4, 3308, -4, 3310, -4, 3315, -4, 1073745152, -29056, 3365, -29056, 3367, -29056,
1140 static const uint16_t kToUppercaseMultiStrings1Size = 1;
1141 static const MultiCharacterSpecialCase<1> kToUppercaseMultiStrings5[1] = {
1143 static const uint16_t kToUppercaseTable5Size = 88;
1144 static const int32_t kToUppercaseTable5[176] = {
1145 1601, -4, 1603, -4, 1605, -4, 1607, -4, 1609, -4, 1611, -4, 1613, -4, 1615, -4,
1146 1617, -4, 1619, -4, 1621, -4, 1623, -4, 1625, -4, 1627, -4, 1629, -4, 1631, -4,
1147 1633, -4, 1635, -4, 1637, -4, 1639, -4, 1641, -4, 1643, -4, 1645, -4, 1665, -4,
1148 1667, -4, 1669, -4, 1671, -4, 1673, -4, 1675, -4, 1677, -4, 1679, -4, 1681, -4,
1149 1683, -4, 1685, -4, 1687, -4, 1827, -4, 1829, -4, 1831, -4, 1833, -4, 1835, -4,
1150 1837, -4, 1839, -4, 1843, -4, 1845, -4, 1847, -4, 1849, -4, 1851, -4, 1853, -4,
1151 1855, -4, 1857, -4, 1859, -4, 1861, -4, 1863, -4, 1865, -4, 1867, -4, 1869, -4,
1152 1871, -4, 1873, -4, 1875, -4, 1877, -4, 1879, -4, 1881, -4, 1883, -4, 1885, -4,
1153 1887, -4, 1889, -4, 1891, -4, 1893, -4, 1895, -4, 1897, -4, 1899, -4, 1901, -4,
1154 1903, -4, 1914, -4, 1916, -4, 1919, -4, 1921, -4, 1923, -4, 1925, -4, 1927, -4,
1155 1932, -4, 1937, -4, 1939, -4, 1953, -4, 1955, -4, 1957, -4, 1959, -4, 1961, -4 };
1156 static const uint16_t kToUppercaseMultiStrings5Size = 1;
1157 static const MultiCharacterSpecialCase<3> kToUppercaseMultiStrings7[12] = {
1158 {{70, 70, kSentinel}}, {{70, 73, kSentinel}}, {{70, 76, kSentinel}}, {{70, 70, 73}},
1159 {{70, 70, 76}}, {{83, 84, kSentinel}}, {{1348, 1350, kSentinel}}, {{1348, 1333, kSentinel}},
1160 {{1348, 1339, kSentinel}}, {{1358, 1350, kSentinel}}, {{1348, 1341, kSentinel}}, {{kSentinel}} };
1161 static const uint16_t kToUppercaseTable7Size = 14;
1162 static const int32_t kToUppercaseTable7[28] = {
1163 6912, 1, 6913, 5, 6914, 9, 6915, 13, 6916, 17, 6917, 21, 6918, 21, 6931, 25,
1164 6932, 29, 6933, 33, 6934, 37, 6935, 41, 1073749825, -128, 8026, -128 };
1165 static const uint16_t kToUppercaseMultiStrings7Size = 12;
1169 bool* allow_caching_ptr) {
1170 int chunk_index = c >> 13;
1171 switch (chunk_index) {
1172 case 0:
return LookupMapping<true>(kToUppercaseTable0,
1173 kToUppercaseTable0Size,
1174 kToUppercaseMultiStrings0,
1179 case 1:
return LookupMapping<true>(kToUppercaseTable1,
1180 kToUppercaseTable1Size,
1181 kToUppercaseMultiStrings1,
1186 case 5:
return LookupMapping<true>(kToUppercaseTable5,
1187 kToUppercaseTable5Size,
1188 kToUppercaseMultiStrings5,
1193 case 7:
return LookupMapping<true>(kToUppercaseTable7,
1194 kToUppercaseTable7Size,
1195 kToUppercaseMultiStrings7,
1206 static const uint16_t kEcma262CanonicalizeTable0Size = 488;
1207 static const int32_t kEcma262CanonicalizeTable0[976] = {
1208 1073741921, -128, 122, -128, 181, 2972, 1073742048, -128, 246, -128, 1073742072, -128, 254, -128, 255, 484,
1209 257, -4, 259, -4, 261, -4, 263, -4, 265, -4, 267, -4, 269, -4, 271, -4,
1210 273, -4, 275, -4, 277, -4, 279, -4, 281, -4, 283, -4, 285, -4, 287, -4,
1211 289, -4, 291, -4, 293, -4, 295, -4, 297, -4, 299, -4, 301, -4, 303, -4,
1212 307, -4, 309, -4, 311, -4, 314, -4, 316, -4, 318, -4, 320, -4, 322, -4,
1213 324, -4, 326, -4, 328, -4, 331, -4, 333, -4, 335, -4, 337, -4, 339, -4,
1214 341, -4, 343, -4, 345, -4, 347, -4, 349, -4, 351, -4, 353, -4, 355, -4,
1215 357, -4, 359, -4, 361, -4, 363, -4, 365, -4, 367, -4, 369, -4, 371, -4,
1216 373, -4, 375, -4, 378, -4, 380, -4, 382, -4, 384, 780, 387, -4, 389, -4,
1217 392, -4, 396, -4, 402, -4, 405, 388, 409, -4, 410, 652, 414, 520, 417, -4,
1218 419, -4, 421, -4, 424, -4, 429, -4, 432, -4, 436, -4, 438, -4, 441, -4,
1219 445, -4, 447, 224, 453, -4, 454, -8, 456, -4, 457, -8, 459, -4, 460, -8,
1220 462, -4, 464, -4, 466, -4, 468, -4, 470, -4, 472, -4, 474, -4, 476, -4,
1221 477, -316, 479, -4, 481, -4, 483, -4, 485, -4, 487, -4, 489, -4, 491, -4,
1222 493, -4, 495, -4, 498, -4, 499, -8, 501, -4, 505, -4, 507, -4, 509, -4,
1223 511, -4, 513, -4, 515, -4, 517, -4, 519, -4, 521, -4, 523, -4, 525, -4,
1224 527, -4, 529, -4, 531, -4, 533, -4, 535, -4, 537, -4, 539, -4, 541, -4,
1225 543, -4, 547, -4, 549, -4, 551, -4, 553, -4, 555, -4, 557, -4, 559, -4,
1226 561, -4, 563, -4, 572, -4, 1073742399, 43260, 576, 43260, 578, -4, 583, -4, 585, -4,
1227 587, -4, 589, -4, 591, -4, 592, 43132, 593, 43120, 594, 43128, 595, -840, 596, -824,
1228 1073742422, -820, 599, -820, 601, -808, 603, -812, 608, -820, 611, -828, 613, 169120, 614, 169232,
1229 616, -836, 617, -844, 619, 42972, 623, -844, 625, 42996, 626, -852, 629, -856, 637, 42908,
1230 640, -872, 643, -872, 648, -872, 649, -276, 1073742474, -868, 651, -868, 652, -284, 658, -876,
1231 837, 336, 881, -4, 883, -4, 887, -4, 1073742715, 520, 893, 520, 940, -152, 1073742765, -148,
1232 943, -148, 1073742769, -128, 961, -128, 962, -124, 1073742787, -128, 971, -128, 972, -256, 1073742797, -252,
1233 974, -252, 976, -248, 977, -228, 981, -188, 982, -216, 983, -32, 985, -4, 987, -4,
1234 989, -4, 991, -4, 993, -4, 995, -4, 997, -4, 999, -4, 1001, -4, 1003, -4,
1235 1005, -4, 1007, -4, 1008, -344, 1009, -320, 1010, 28, 1013, -384, 1016, -4, 1019, -4,
1236 1073742896, -128, 1103, -128, 1073742928, -320, 1119, -320, 1121, -4, 1123, -4, 1125, -4, 1127, -4,
1237 1129, -4, 1131, -4, 1133, -4, 1135, -4, 1137, -4, 1139, -4, 1141, -4, 1143, -4,
1238 1145, -4, 1147, -4, 1149, -4, 1151, -4, 1153, -4, 1163, -4, 1165, -4, 1167, -4,
1239 1169, -4, 1171, -4, 1173, -4, 1175, -4, 1177, -4, 1179, -4, 1181, -4, 1183, -4,
1240 1185, -4, 1187, -4, 1189, -4, 1191, -4, 1193, -4, 1195, -4, 1197, -4, 1199, -4,
1241 1201, -4, 1203, -4, 1205, -4, 1207, -4, 1209, -4, 1211, -4, 1213, -4, 1215, -4,
1242 1218, -4, 1220, -4, 1222, -4, 1224, -4, 1226, -4, 1228, -4, 1230, -4, 1231, -60,
1243 1233, -4, 1235, -4, 1237, -4, 1239, -4, 1241, -4, 1243, -4, 1245, -4, 1247, -4,
1244 1249, -4, 1251, -4, 1253, -4, 1255, -4, 1257, -4, 1259, -4, 1261, -4, 1263, -4,
1245 1265, -4, 1267, -4, 1269, -4, 1271, -4, 1273, -4, 1275, -4, 1277, -4, 1279, -4,
1246 1281, -4, 1283, -4, 1285, -4, 1287, -4, 1289, -4, 1291, -4, 1293, -4, 1295, -4,
1247 1297, -4, 1299, -4, 1301, -4, 1303, -4, 1305, -4, 1307, -4, 1309, -4, 1311, -4,
1248 1313, -4, 1315, -4, 1317, -4, 1319, -4, 1073743201, -192, 1414, -192, 7545, 141328, 7549, 15256,
1249 7681, -4, 7683, -4, 7685, -4, 7687, -4, 7689, -4, 7691, -4, 7693, -4, 7695, -4,
1250 7697, -4, 7699, -4, 7701, -4, 7703, -4, 7705, -4, 7707, -4, 7709, -4, 7711, -4,
1251 7713, -4, 7715, -4, 7717, -4, 7719, -4, 7721, -4, 7723, -4, 7725, -4, 7727, -4,
1252 7729, -4, 7731, -4, 7733, -4, 7735, -4, 7737, -4, 7739, -4, 7741, -4, 7743, -4,
1253 7745, -4, 7747, -4, 7749, -4, 7751, -4, 7753, -4, 7755, -4, 7757, -4, 7759, -4,
1254 7761, -4, 7763, -4, 7765, -4, 7767, -4, 7769, -4, 7771, -4, 7773, -4, 7775, -4,
1255 7777, -4, 7779, -4, 7781, -4, 7783, -4, 7785, -4, 7787, -4, 7789, -4, 7791, -4,
1256 7793, -4, 7795, -4, 7797, -4, 7799, -4, 7801, -4, 7803, -4, 7805, -4, 7807, -4,
1257 7809, -4, 7811, -4, 7813, -4, 7815, -4, 7817, -4, 7819, -4, 7821, -4, 7823, -4,
1258 7825, -4, 7827, -4, 7829, -4, 7835, -236, 7841, -4, 7843, -4, 7845, -4, 7847, -4,
1259 7849, -4, 7851, -4, 7853, -4, 7855, -4, 7857, -4, 7859, -4, 7861, -4, 7863, -4,
1260 7865, -4, 7867, -4, 7869, -4, 7871, -4, 7873, -4, 7875, -4, 7877, -4, 7879, -4,
1261 7881, -4, 7883, -4, 7885, -4, 7887, -4, 7889, -4, 7891, -4, 7893, -4, 7895, -4,
1262 7897, -4, 7899, -4, 7901, -4, 7903, -4, 7905, -4, 7907, -4, 7909, -4, 7911, -4,
1263 7913, -4, 7915, -4, 7917, -4, 7919, -4, 7921, -4, 7923, -4, 7925, -4, 7927, -4,
1264 7929, -4, 7931, -4, 7933, -4, 7935, -4, 1073749760, 32, 7943, 32, 1073749776, 32, 7957, 32,
1265 1073749792, 32, 7975, 32, 1073749808, 32, 7991, 32, 1073749824, 32, 8005, 32, 8017, 32, 8019, 32,
1266 8021, 32, 8023, 32, 1073749856, 32, 8039, 32, 1073749872, 296, 8049, 296, 1073749874, 344, 8053, 344,
1267 1073749878, 400, 8055, 400, 1073749880, 512, 8057, 512, 1073749882, 448, 8059, 448, 1073749884, 504, 8061, 504,
1268 1073749936, 32, 8113, 32, 8126, -28820, 1073749968, 32, 8145, 32, 1073749984, 32, 8161, 32, 8165, 28 };
1269 static const uint16_t kEcma262CanonicalizeMultiStrings0Size = 1;
1270 static const MultiCharacterSpecialCase<1> kEcma262CanonicalizeMultiStrings1[1] = {
1272 static const uint16_t kEcma262CanonicalizeTable1Size = 73;
1273 static const int32_t kEcma262CanonicalizeTable1[146] = {
1274 334, -112, 1073742192, -64, 383, -64, 388, -4, 1073743056, -104, 1257, -104, 1073744944, -192, 3166, -192,
1275 3169, -4, 3173, -43180, 3174, -43168, 3176, -4, 3178, -4, 3180, -4, 3187, -4, 3190, -4,
1276 3201, -4, 3203, -4, 3205, -4, 3207, -4, 3209, -4, 3211, -4, 3213, -4, 3215, -4,
1277 3217, -4, 3219, -4, 3221, -4, 3223, -4, 3225, -4, 3227, -4, 3229, -4, 3231, -4,
1278 3233, -4, 3235, -4, 3237, -4, 3239, -4, 3241, -4, 3243, -4, 3245, -4, 3247, -4,
1279 3249, -4, 3251, -4, 3253, -4, 3255, -4, 3257, -4, 3259, -4, 3261, -4, 3263, -4,
1280 3265, -4, 3267, -4, 3269, -4, 3271, -4, 3273, -4, 3275, -4, 3277, -4, 3279, -4,
1281 3281, -4, 3283, -4, 3285, -4, 3287, -4, 3289, -4, 3291, -4, 3293, -4, 3295, -4,
1282 3297, -4, 3299, -4, 3308, -4, 3310, -4, 3315, -4, 1073745152, -29056, 3365, -29056, 3367, -29056,
1284 static const uint16_t kEcma262CanonicalizeMultiStrings1Size = 1;
1285 static const MultiCharacterSpecialCase<1> kEcma262CanonicalizeMultiStrings5[1] = {
1287 static const uint16_t kEcma262CanonicalizeTable5Size = 88;
1288 static const int32_t kEcma262CanonicalizeTable5[176] = {
1289 1601, -4, 1603, -4, 1605, -4, 1607, -4, 1609, -4, 1611, -4, 1613, -4, 1615, -4,
1290 1617, -4, 1619, -4, 1621, -4, 1623, -4, 1625, -4, 1627, -4, 1629, -4, 1631, -4,
1291 1633, -4, 1635, -4, 1637, -4, 1639, -4, 1641, -4, 1643, -4, 1645, -4, 1665, -4,
1292 1667, -4, 1669, -4, 1671, -4, 1673, -4, 1675, -4, 1677, -4, 1679, -4, 1681, -4,
1293 1683, -4, 1685, -4, 1687, -4, 1827, -4, 1829, -4, 1831, -4, 1833, -4, 1835, -4,
1294 1837, -4, 1839, -4, 1843, -4, 1845, -4, 1847, -4, 1849, -4, 1851, -4, 1853, -4,
1295 1855, -4, 1857, -4, 1859, -4, 1861, -4, 1863, -4, 1865, -4, 1867, -4, 1869, -4,
1296 1871, -4, 1873, -4, 1875, -4, 1877, -4, 1879, -4, 1881, -4, 1883, -4, 1885, -4,
1297 1887, -4, 1889, -4, 1891, -4, 1893, -4, 1895, -4, 1897, -4, 1899, -4, 1901, -4,
1298 1903, -4, 1914, -4, 1916, -4, 1919, -4, 1921, -4, 1923, -4, 1925, -4, 1927, -4,
1299 1932, -4, 1937, -4, 1939, -4, 1953, -4, 1955, -4, 1957, -4, 1959, -4, 1961, -4 };
1300 static const uint16_t kEcma262CanonicalizeMultiStrings5Size = 1;
1301 static const MultiCharacterSpecialCase<1> kEcma262CanonicalizeMultiStrings7[1] = {
1303 static const uint16_t kEcma262CanonicalizeTable7Size = 2;
1304 static const int32_t kEcma262CanonicalizeTable7[4] = {
1305 1073749825, -128, 8026, -128 };
1306 static const uint16_t kEcma262CanonicalizeMultiStrings7Size = 1;
1310 bool* allow_caching_ptr) {
1311 int chunk_index = c >> 13;
1312 switch (chunk_index) {
1313 case 0:
return LookupMapping<true>(kEcma262CanonicalizeTable0,
1314 kEcma262CanonicalizeTable0Size,
1315 kEcma262CanonicalizeMultiStrings0,
1320 case 1:
return LookupMapping<true>(kEcma262CanonicalizeTable1,
1321 kEcma262CanonicalizeTable1Size,
1322 kEcma262CanonicalizeMultiStrings1,
1327 case 5:
return LookupMapping<true>(kEcma262CanonicalizeTable5,
1328 kEcma262CanonicalizeTable5Size,
1329 kEcma262CanonicalizeMultiStrings5,
1334 case 7:
return LookupMapping<true>(kEcma262CanonicalizeTable7,
1335 kEcma262CanonicalizeTable7Size,
1336 kEcma262CanonicalizeMultiStrings7,
1346 {{65, 97, kSentinel}}, {{90, 122, kSentinel}}, {{181, 924, 956, kSentinel}}, {{192, 224, kSentinel}},
1347 {{214, 246, kSentinel}}, {{216, 248, kSentinel}}, {{222, 254, kSentinel}}, {{255, 376, kSentinel}},
1348 {{256, 257, kSentinel}}, {{258, 259, kSentinel}}, {{260, 261, kSentinel}}, {{262, 263, kSentinel}},
1349 {{264, 265, kSentinel}}, {{266, 267, kSentinel}}, {{268, 269, kSentinel}}, {{270, 271, kSentinel}},
1350 {{272, 273, kSentinel}}, {{274, 275, kSentinel}}, {{276, 277, kSentinel}}, {{278, 279, kSentinel}},
1351 {{280, 281, kSentinel}}, {{282, 283, kSentinel}}, {{284, 285, kSentinel}}, {{286, 287, kSentinel}},
1352 {{288, 289, kSentinel}}, {{290, 291, kSentinel}}, {{292, 293, kSentinel}}, {{294, 295, kSentinel}},
1353 {{296, 297, kSentinel}}, {{298, 299, kSentinel}}, {{300, 301, kSentinel}}, {{302, 303, kSentinel}},
1354 {{306, 307, kSentinel}}, {{308, 309, kSentinel}}, {{310, 311, kSentinel}}, {{313, 314, kSentinel}},
1355 {{315, 316, kSentinel}}, {{317, 318, kSentinel}}, {{319, 320, kSentinel}}, {{321, 322, kSentinel}},
1356 {{323, 324, kSentinel}}, {{325, 326, kSentinel}}, {{327, 328, kSentinel}}, {{330, 331, kSentinel}},
1357 {{332, 333, kSentinel}}, {{334, 335, kSentinel}}, {{336, 337, kSentinel}}, {{338, 339, kSentinel}},
1358 {{340, 341, kSentinel}}, {{342, 343, kSentinel}}, {{344, 345, kSentinel}}, {{346, 347, kSentinel}},
1359 {{348, 349, kSentinel}}, {{350, 351, kSentinel}}, {{352, 353, kSentinel}}, {{354, 355, kSentinel}},
1360 {{356, 357, kSentinel}}, {{358, 359, kSentinel}}, {{360, 361, kSentinel}}, {{362, 363, kSentinel}},
1361 {{364, 365, kSentinel}}, {{366, 367, kSentinel}}, {{368, 369, kSentinel}}, {{370, 371, kSentinel}},
1362 {{372, 373, kSentinel}}, {{374, 375, kSentinel}}, {{377, 378, kSentinel}}, {{379, 380, kSentinel}},
1363 {{381, 382, kSentinel}}, {{384, 579, kSentinel}}, {{385, 595, kSentinel}}, {{386, 387, kSentinel}},
1364 {{388, 389, kSentinel}}, {{390, 596, kSentinel}}, {{391, 392, kSentinel}}, {{393, 598, kSentinel}},
1365 {{394, 599, kSentinel}}, {{395, 396, kSentinel}}, {{398, 477, kSentinel}}, {{399, 601, kSentinel}},
1366 {{400, 603, kSentinel}}, {{401, 402, kSentinel}}, {{403, 608, kSentinel}}, {{404, 611, kSentinel}},
1367 {{405, 502, kSentinel}}, {{406, 617, kSentinel}}, {{407, 616, kSentinel}}, {{408, 409, kSentinel}},
1368 {{410, 573, kSentinel}}, {{412, 623, kSentinel}}, {{413, 626, kSentinel}}, {{414, 544, kSentinel}},
1369 {{415, 629, kSentinel}}, {{416, 417, kSentinel}}, {{418, 419, kSentinel}}, {{420, 421, kSentinel}},
1370 {{422, 640, kSentinel}}, {{423, 424, kSentinel}}, {{425, 643, kSentinel}}, {{428, 429, kSentinel}},
1371 {{430, 648, kSentinel}}, {{431, 432, kSentinel}}, {{433, 650, kSentinel}}, {{434, 651, kSentinel}},
1372 {{435, 436, kSentinel}}, {{437, 438, kSentinel}}, {{439, 658, kSentinel}}, {{440, 441, kSentinel}},
1373 {{444, 445, kSentinel}}, {{447, 503, kSentinel}}, {{452, 453, 454, kSentinel}}, {{455, 456, 457, kSentinel}},
1374 {{458, 459, 460, kSentinel}}, {{461, 462, kSentinel}}, {{463, 464, kSentinel}}, {{465, 466, kSentinel}},
1375 {{467, 468, kSentinel}}, {{469, 470, kSentinel}}, {{471, 472, kSentinel}}, {{473, 474, kSentinel}},
1376 {{475, 476, kSentinel}}, {{478, 479, kSentinel}}, {{480, 481, kSentinel}}, {{482, 483, kSentinel}},
1377 {{484, 485, kSentinel}}, {{486, 487, kSentinel}}, {{488, 489, kSentinel}}, {{490, 491, kSentinel}},
1378 {{492, 493, kSentinel}}, {{494, 495, kSentinel}}, {{497, 498, 499, kSentinel}}, {{500, 501, kSentinel}},
1379 {{504, 505, kSentinel}}, {{506, 507, kSentinel}}, {{508, 509, kSentinel}}, {{510, 511, kSentinel}},
1380 {{512, 513, kSentinel}}, {{514, 515, kSentinel}}, {{516, 517, kSentinel}}, {{518, 519, kSentinel}},
1381 {{520, 521, kSentinel}}, {{522, 523, kSentinel}}, {{524, 525, kSentinel}}, {{526, 527, kSentinel}},
1382 {{528, 529, kSentinel}}, {{530, 531, kSentinel}}, {{532, 533, kSentinel}}, {{534, 535, kSentinel}},
1383 {{536, 537, kSentinel}}, {{538, 539, kSentinel}}, {{540, 541, kSentinel}}, {{542, 543, kSentinel}},
1384 {{546, 547, kSentinel}}, {{548, 549, kSentinel}}, {{550, 551, kSentinel}}, {{552, 553, kSentinel}},
1385 {{554, 555, kSentinel}}, {{556, 557, kSentinel}}, {{558, 559, kSentinel}}, {{560, 561, kSentinel}},
1386 {{562, 563, kSentinel}}, {{570, 11365, kSentinel}}, {{571, 572, kSentinel}}, {{574, 11366, kSentinel}},
1387 {{575, 11390, kSentinel}}, {{576, 11391, kSentinel}}, {{577, 578, kSentinel}}, {{580, 649, kSentinel}},
1388 {{581, 652, kSentinel}}, {{582, 583, kSentinel}}, {{584, 585, kSentinel}}, {{586, 587, kSentinel}},
1389 {{588, 589, kSentinel}}, {{590, 591, kSentinel}}, {{592, 11375, kSentinel}}, {{593, 11373, kSentinel}},
1390 {{594, 11376, kSentinel}}, {{613, 42893, kSentinel}}, {{614, 42922, kSentinel}}, {{619, 11362, kSentinel}},
1391 {{625, 11374, kSentinel}}, {{637, 11364, kSentinel}}, {{837, 921, 953, 8126}}, {{880, 881, kSentinel}},
1392 {{882, 883, kSentinel}}, {{886, 887, kSentinel}}, {{891, 1021, kSentinel}}, {{893, 1023, kSentinel}},
1393 {{902, 940, kSentinel}}, {{904, 941, kSentinel}}, {{906, 943, kSentinel}}, {{908, 972, kSentinel}},
1394 {{910, 973, kSentinel}}, {{911, 974, kSentinel}}, {{913, 945, kSentinel}}, {{914, 946, 976, kSentinel}},
1395 {{915, 947, kSentinel}}, {{916, 948, kSentinel}}, {{917, 949, 1013, kSentinel}}, {{918, 950, kSentinel}},
1396 {{919, 951, kSentinel}}, {{920, 952, 977, kSentinel}}, {{922, 954, 1008, kSentinel}}, {{923, 955, kSentinel}},
1397 {{925, 957, kSentinel}}, {{927, 959, kSentinel}}, {{928, 960, 982, kSentinel}}, {{929, 961, 1009, kSentinel}},
1398 {{931, 962, 963, kSentinel}}, {{932, 964, kSentinel}}, {{933, 965, kSentinel}}, {{934, 966, 981, kSentinel}},
1399 {{935, 967, kSentinel}}, {{939, 971, kSentinel}}, {{975, 983, kSentinel}}, {{984, 985, kSentinel}},
1400 {{986, 987, kSentinel}}, {{988, 989, kSentinel}}, {{990, 991, kSentinel}}, {{992, 993, kSentinel}},
1401 {{994, 995, kSentinel}}, {{996, 997, kSentinel}}, {{998, 999, kSentinel}}, {{1000, 1001, kSentinel}},
1402 {{1002, 1003, kSentinel}}, {{1004, 1005, kSentinel}}, {{1006, 1007, kSentinel}}, {{1010, 1017, kSentinel}},
1403 {{1015, 1016, kSentinel}}, {{1018, 1019, kSentinel}}, {{1024, 1104, kSentinel}}, {{1039, 1119, kSentinel}},
1404 {{1040, 1072, kSentinel}}, {{1071, 1103, kSentinel}}, {{1120, 1121, kSentinel}}, {{1122, 1123, kSentinel}},
1405 {{1124, 1125, kSentinel}}, {{1126, 1127, kSentinel}}, {{1128, 1129, kSentinel}}, {{1130, 1131, kSentinel}},
1406 {{1132, 1133, kSentinel}}, {{1134, 1135, kSentinel}}, {{1136, 1137, kSentinel}}, {{1138, 1139, kSentinel}},
1407 {{1140, 1141, kSentinel}}, {{1142, 1143, kSentinel}}, {{1144, 1145, kSentinel}}, {{1146, 1147, kSentinel}},
1408 {{1148, 1149, kSentinel}}, {{1150, 1151, kSentinel}}, {{1152, 1153, kSentinel}}, {{1162, 1163, kSentinel}},
1409 {{1164, 1165, kSentinel}}, {{1166, 1167, kSentinel}}, {{1168, 1169, kSentinel}}, {{1170, 1171, kSentinel}},
1410 {{1172, 1173, kSentinel}}, {{1174, 1175, kSentinel}}, {{1176, 1177, kSentinel}}, {{1178, 1179, kSentinel}},
1411 {{1180, 1181, kSentinel}}, {{1182, 1183, kSentinel}}, {{1184, 1185, kSentinel}}, {{1186, 1187, kSentinel}},
1412 {{1188, 1189, kSentinel}}, {{1190, 1191, kSentinel}}, {{1192, 1193, kSentinel}}, {{1194, 1195, kSentinel}},
1413 {{1196, 1197, kSentinel}}, {{1198, 1199, kSentinel}}, {{1200, 1201, kSentinel}}, {{1202, 1203, kSentinel}},
1414 {{1204, 1205, kSentinel}}, {{1206, 1207, kSentinel}}, {{1208, 1209, kSentinel}}, {{1210, 1211, kSentinel}},
1415 {{1212, 1213, kSentinel}}, {{1214, 1215, kSentinel}}, {{1216, 1231, kSentinel}}, {{1217, 1218, kSentinel}},
1416 {{1219, 1220, kSentinel}}, {{1221, 1222, kSentinel}}, {{1223, 1224, kSentinel}}, {{1225, 1226, kSentinel}},
1417 {{1227, 1228, kSentinel}}, {{1229, 1230, kSentinel}}, {{1232, 1233, kSentinel}}, {{1234, 1235, kSentinel}},
1418 {{1236, 1237, kSentinel}}, {{1238, 1239, kSentinel}}, {{1240, 1241, kSentinel}}, {{1242, 1243, kSentinel}},
1419 {{1244, 1245, kSentinel}}, {{1246, 1247, kSentinel}}, {{1248, 1249, kSentinel}}, {{1250, 1251, kSentinel}},
1420 {{1252, 1253, kSentinel}}, {{1254, 1255, kSentinel}}, {{1256, 1257, kSentinel}}, {{1258, 1259, kSentinel}},
1421 {{1260, 1261, kSentinel}}, {{1262, 1263, kSentinel}}, {{1264, 1265, kSentinel}}, {{1266, 1267, kSentinel}},
1422 {{1268, 1269, kSentinel}}, {{1270, 1271, kSentinel}}, {{1272, 1273, kSentinel}}, {{1274, 1275, kSentinel}},
1423 {{1276, 1277, kSentinel}}, {{1278, 1279, kSentinel}}, {{1280, 1281, kSentinel}}, {{1282, 1283, kSentinel}},
1424 {{1284, 1285, kSentinel}}, {{1286, 1287, kSentinel}}, {{1288, 1289, kSentinel}}, {{1290, 1291, kSentinel}},
1425 {{1292, 1293, kSentinel}}, {{1294, 1295, kSentinel}}, {{1296, 1297, kSentinel}}, {{1298, 1299, kSentinel}},
1426 {{1300, 1301, kSentinel}}, {{1302, 1303, kSentinel}}, {{1304, 1305, kSentinel}}, {{1306, 1307, kSentinel}},
1427 {{1308, 1309, kSentinel}}, {{1310, 1311, kSentinel}}, {{1312, 1313, kSentinel}}, {{1314, 1315, kSentinel}},
1428 {{1316, 1317, kSentinel}}, {{1318, 1319, kSentinel}}, {{1329, 1377, kSentinel}}, {{1366, 1414, kSentinel}},
1429 {{4256, 11520, kSentinel}}, {{4293, 11557, kSentinel}}, {{4295, 11559, kSentinel}}, {{4301, 11565, kSentinel}},
1430 {{7545, 42877, kSentinel}}, {{7549, 11363, kSentinel}}, {{7680, 7681, kSentinel}}, {{7682, 7683, kSentinel}},
1431 {{7684, 7685, kSentinel}}, {{7686, 7687, kSentinel}}, {{7688, 7689, kSentinel}}, {{7690, 7691, kSentinel}},
1432 {{7692, 7693, kSentinel}}, {{7694, 7695, kSentinel}}, {{7696, 7697, kSentinel}}, {{7698, 7699, kSentinel}},
1433 {{7700, 7701, kSentinel}}, {{7702, 7703, kSentinel}}, {{7704, 7705, kSentinel}}, {{7706, 7707, kSentinel}},
1434 {{7708, 7709, kSentinel}}, {{7710, 7711, kSentinel}}, {{7712, 7713, kSentinel}}, {{7714, 7715, kSentinel}},
1435 {{7716, 7717, kSentinel}}, {{7718, 7719, kSentinel}}, {{7720, 7721, kSentinel}}, {{7722, 7723, kSentinel}},
1436 {{7724, 7725, kSentinel}}, {{7726, 7727, kSentinel}}, {{7728, 7729, kSentinel}}, {{7730, 7731, kSentinel}},
1437 {{7732, 7733, kSentinel}}, {{7734, 7735, kSentinel}}, {{7736, 7737, kSentinel}}, {{7738, 7739, kSentinel}},
1438 {{7740, 7741, kSentinel}}, {{7742, 7743, kSentinel}}, {{7744, 7745, kSentinel}}, {{7746, 7747, kSentinel}},
1439 {{7748, 7749, kSentinel}}, {{7750, 7751, kSentinel}}, {{7752, 7753, kSentinel}}, {{7754, 7755, kSentinel}},
1440 {{7756, 7757, kSentinel}}, {{7758, 7759, kSentinel}}, {{7760, 7761, kSentinel}}, {{7762, 7763, kSentinel}},
1441 {{7764, 7765, kSentinel}}, {{7766, 7767, kSentinel}}, {{7768, 7769, kSentinel}}, {{7770, 7771, kSentinel}},
1442 {{7772, 7773, kSentinel}}, {{7774, 7775, kSentinel}}, {{7776, 7777, 7835, kSentinel}}, {{7778, 7779, kSentinel}},
1443 {{7780, 7781, kSentinel}}, {{7782, 7783, kSentinel}}, {{7784, 7785, kSentinel}}, {{7786, 7787, kSentinel}},
1444 {{7788, 7789, kSentinel}}, {{7790, 7791, kSentinel}}, {{7792, 7793, kSentinel}}, {{7794, 7795, kSentinel}},
1445 {{7796, 7797, kSentinel}}, {{7798, 7799, kSentinel}}, {{7800, 7801, kSentinel}}, {{7802, 7803, kSentinel}},
1446 {{7804, 7805, kSentinel}}, {{7806, 7807, kSentinel}}, {{7808, 7809, kSentinel}}, {{7810, 7811, kSentinel}},
1447 {{7812, 7813, kSentinel}}, {{7814, 7815, kSentinel}}, {{7816, 7817, kSentinel}}, {{7818, 7819, kSentinel}},
1448 {{7820, 7821, kSentinel}}, {{7822, 7823, kSentinel}}, {{7824, 7825, kSentinel}}, {{7826, 7827, kSentinel}},
1449 {{7828, 7829, kSentinel}}, {{7840, 7841, kSentinel}}, {{7842, 7843, kSentinel}}, {{7844, 7845, kSentinel}},
1450 {{7846, 7847, kSentinel}}, {{7848, 7849, kSentinel}}, {{7850, 7851, kSentinel}}, {{7852, 7853, kSentinel}},
1451 {{7854, 7855, kSentinel}}, {{7856, 7857, kSentinel}}, {{7858, 7859, kSentinel}}, {{7860, 7861, kSentinel}},
1452 {{7862, 7863, kSentinel}}, {{7864, 7865, kSentinel}}, {{7866, 7867, kSentinel}}, {{7868, 7869, kSentinel}},
1453 {{7870, 7871, kSentinel}}, {{7872, 7873, kSentinel}}, {{7874, 7875, kSentinel}}, {{7876, 7877, kSentinel}},
1454 {{7878, 7879, kSentinel}}, {{7880, 7881, kSentinel}}, {{7882, 7883, kSentinel}}, {{7884, 7885, kSentinel}},
1455 {{7886, 7887, kSentinel}}, {{7888, 7889, kSentinel}}, {{7890, 7891, kSentinel}}, {{7892, 7893, kSentinel}},
1456 {{7894, 7895, kSentinel}}, {{7896, 7897, kSentinel}}, {{7898, 7899, kSentinel}}, {{7900, 7901, kSentinel}},
1457 {{7902, 7903, kSentinel}}, {{7904, 7905, kSentinel}}, {{7906, 7907, kSentinel}}, {{7908, 7909, kSentinel}},
1458 {{7910, 7911, kSentinel}}, {{7912, 7913, kSentinel}}, {{7914, 7915, kSentinel}}, {{7916, 7917, kSentinel}},
1459 {{7918, 7919, kSentinel}}, {{7920, 7921, kSentinel}}, {{7922, 7923, kSentinel}}, {{7924, 7925, kSentinel}},
1460 {{7926, 7927, kSentinel}}, {{7928, 7929, kSentinel}}, {{7930, 7931, kSentinel}}, {{7932, 7933, kSentinel}},
1461 {{7934, 7935, kSentinel}}, {{7936, 7944, kSentinel}}, {{7943, 7951, kSentinel}}, {{7952, 7960, kSentinel}},
1462 {{7957, 7965, kSentinel}}, {{7968, 7976, kSentinel}}, {{7975, 7983, kSentinel}}, {{7984, 7992, kSentinel}},
1463 {{7991, 7999, kSentinel}}, {{8000, 8008, kSentinel}}, {{8005, 8013, kSentinel}}, {{8017, 8025, kSentinel}},
1464 {{8019, 8027, kSentinel}}, {{8021, 8029, kSentinel}}, {{8023, 8031, kSentinel}}, {{8032, 8040, kSentinel}},
1465 {{8039, 8047, kSentinel}}, {{8048, 8122, kSentinel}}, {{8049, 8123, kSentinel}}, {{8050, 8136, kSentinel}},
1466 {{8053, 8139, kSentinel}}, {{8054, 8154, kSentinel}}, {{8055, 8155, kSentinel}}, {{8056, 8184, kSentinel}},
1467 {{8057, 8185, kSentinel}}, {{8058, 8170, kSentinel}}, {{8059, 8171, kSentinel}}, {{8060, 8186, kSentinel}},
1468 {{8061, 8187, kSentinel}}, {{8112, 8120, kSentinel}}, {{8113, 8121, kSentinel}}, {{8144, 8152, kSentinel}},
1469 {{8145, 8153, kSentinel}}, {{8160, 8168, kSentinel}}, {{8161, 8169, kSentinel}}, {{8165, 8172, kSentinel}},
1471 static const uint16_t kEcma262UnCanonicalizeTable0Size = 990;
1472 static const int32_t kEcma262UnCanonicalizeTable0[1980] = {
1473 1073741889, 1, 90, 5, 1073741921, 1, 122, 5, 181, 9, 1073742016, 13, 214, 17, 1073742040, 21,
1474 222, 25, 1073742048, 13, 246, 17, 1073742072, 21, 254, 25, 255, 29, 256, 33, 257, 33,
1475 258, 37, 259, 37, 260, 41, 261, 41, 262, 45, 263, 45, 264, 49, 265, 49,
1476 266, 53, 267, 53, 268, 57, 269, 57, 270, 61, 271, 61, 272, 65, 273, 65,
1477 274, 69, 275, 69, 276, 73, 277, 73, 278, 77, 279, 77, 280, 81, 281, 81,
1478 282, 85, 283, 85, 284, 89, 285, 89, 286, 93, 287, 93, 288, 97, 289, 97,
1479 290, 101, 291, 101, 292, 105, 293, 105, 294, 109, 295, 109, 296, 113, 297, 113,
1480 298, 117, 299, 117, 300, 121, 301, 121, 302, 125, 303, 125, 306, 129, 307, 129,
1481 308, 133, 309, 133, 310, 137, 311, 137, 313, 141, 314, 141, 315, 145, 316, 145,
1482 317, 149, 318, 149, 319, 153, 320, 153, 321, 157, 322, 157, 323, 161, 324, 161,
1483 325, 165, 326, 165, 327, 169, 328, 169, 330, 173, 331, 173, 332, 177, 333, 177,
1484 334, 181, 335, 181, 336, 185, 337, 185, 338, 189, 339, 189, 340, 193, 341, 193,
1485 342, 197, 343, 197, 344, 201, 345, 201, 346, 205, 347, 205, 348, 209, 349, 209,
1486 350, 213, 351, 213, 352, 217, 353, 217, 354, 221, 355, 221, 356, 225, 357, 225,
1487 358, 229, 359, 229, 360, 233, 361, 233, 362, 237, 363, 237, 364, 241, 365, 241,
1488 366, 245, 367, 245, 368, 249, 369, 249, 370, 253, 371, 253, 372, 257, 373, 257,
1489 374, 261, 375, 261, 376, 29, 377, 265, 378, 265, 379, 269, 380, 269, 381, 273,
1490 382, 273, 384, 277, 385, 281, 386, 285, 387, 285, 388, 289, 389, 289, 390, 293,
1491 391, 297, 392, 297, 1073742217, 301, 394, 305, 395, 309, 396, 309, 398, 313, 399, 317,
1492 400, 321, 401, 325, 402, 325, 403, 329, 404, 333, 405, 337, 406, 341, 407, 345,
1493 408, 349, 409, 349, 410, 353, 412, 357, 413, 361, 414, 365, 415, 369, 416, 373,
1494 417, 373, 418, 377, 419, 377, 420, 381, 421, 381, 422, 385, 423, 389, 424, 389,
1495 425, 393, 428, 397, 429, 397, 430, 401, 431, 405, 432, 405, 1073742257, 409, 434, 413,
1496 435, 417, 436, 417, 437, 421, 438, 421, 439, 425, 440, 429, 441, 429, 444, 433,
1497 445, 433, 447, 437, 452, 441, 453, 441, 454, 441, 455, 445, 456, 445, 457, 445,
1498 458, 449, 459, 449, 460, 449, 461, 453, 462, 453, 463, 457, 464, 457, 465, 461,
1499 466, 461, 467, 465, 468, 465, 469, 469, 470, 469, 471, 473, 472, 473, 473, 477,
1500 474, 477, 475, 481, 476, 481, 477, 313, 478, 485, 479, 485, 480, 489, 481, 489,
1501 482, 493, 483, 493, 484, 497, 485, 497, 486, 501, 487, 501, 488, 505, 489, 505,
1502 490, 509, 491, 509, 492, 513, 493, 513, 494, 517, 495, 517, 497, 521, 498, 521,
1503 499, 521, 500, 525, 501, 525, 502, 337, 503, 437, 504, 529, 505, 529, 506, 533,
1504 507, 533, 508, 537, 509, 537, 510, 541, 511, 541, 512, 545, 513, 545, 514, 549,
1505 515, 549, 516, 553, 517, 553, 518, 557, 519, 557, 520, 561, 521, 561, 522, 565,
1506 523, 565, 524, 569, 525, 569, 526, 573, 527, 573, 528, 577, 529, 577, 530, 581,
1507 531, 581, 532, 585, 533, 585, 534, 589, 535, 589, 536, 593, 537, 593, 538, 597,
1508 539, 597, 540, 601, 541, 601, 542, 605, 543, 605, 544, 365, 546, 609, 547, 609,
1509 548, 613, 549, 613, 550, 617, 551, 617, 552, 621, 553, 621, 554, 625, 555, 625,
1510 556, 629, 557, 629, 558, 633, 559, 633, 560, 637, 561, 637, 562, 641, 563, 641,
1511 570, 645, 571, 649, 572, 649, 573, 353, 574, 653, 1073742399, 657, 576, 661, 577, 665,
1512 578, 665, 579, 277, 580, 669, 581, 673, 582, 677, 583, 677, 584, 681, 585, 681,
1513 586, 685, 587, 685, 588, 689, 589, 689, 590, 693, 591, 693, 592, 697, 593, 701,
1514 594, 705, 595, 281, 596, 293, 1073742422, 301, 599, 305, 601, 317, 603, 321, 608, 329,
1515 611, 333, 613, 709, 614, 713, 616, 345, 617, 341, 619, 717, 623, 357, 625, 721,
1516 626, 361, 629, 369, 637, 725, 640, 385, 643, 393, 648, 401, 649, 669, 1073742474, 409,
1517 651, 413, 652, 673, 658, 425, 837, 729, 880, 733, 881, 733, 882, 737, 883, 737,
1518 886, 741, 887, 741, 1073742715, 745, 893, 749, 902, 753, 1073742728, 757, 906, 761, 908, 765,
1519 1073742734, 769, 911, 773, 913, 777, 914, 781, 1073742739, 785, 916, 789, 917, 793, 1073742742, 797,
1520 919, 801, 920, 805, 921, 729, 922, 809, 923, 813, 924, 9, 1073742749, 817, 927, 821,
1521 928, 825, 929, 829, 931, 833, 1073742756, 837, 933, 841, 934, 845, 1073742759, 849, 939, 853,
1522 940, 753, 1073742765, 757, 943, 761, 945, 777, 946, 781, 1073742771, 785, 948, 789, 949, 793,
1523 1073742774, 797, 951, 801, 952, 805, 953, 729, 954, 809, 955, 813, 956, 9, 1073742781, 817,
1524 959, 821, 960, 825, 961, 829, 962, 833, 963, 833, 1073742788, 837, 965, 841, 966, 845,
1525 1073742791, 849, 971, 853, 972, 765, 1073742797, 769, 974, 773, 975, 857, 976, 781, 977, 805,
1526 981, 845, 982, 825, 983, 857, 984, 861, 985, 861, 986, 865, 987, 865, 988, 869,
1527 989, 869, 990, 873, 991, 873, 992, 877, 993, 877, 994, 881, 995, 881, 996, 885,
1528 997, 885, 998, 889, 999, 889, 1000, 893, 1001, 893, 1002, 897, 1003, 897, 1004, 901,
1529 1005, 901, 1006, 905, 1007, 905, 1008, 809, 1009, 829, 1010, 909, 1013, 793, 1015, 913,
1530 1016, 913, 1017, 909, 1018, 917, 1019, 917, 1073742845, 745, 1023, 749, 1073742848, 921, 1039, 925,
1531 1073742864, 929, 1071, 933, 1073742896, 929, 1103, 933, 1073742928, 921, 1119, 925, 1120, 937, 1121, 937,
1532 1122, 941, 1123, 941, 1124, 945, 1125, 945, 1126, 949, 1127, 949, 1128, 953, 1129, 953,
1533 1130, 957, 1131, 957, 1132, 961, 1133, 961, 1134, 965, 1135, 965, 1136, 969, 1137, 969,
1534 1138, 973, 1139, 973, 1140, 977, 1141, 977, 1142, 981, 1143, 981, 1144, 985, 1145, 985,
1535 1146, 989, 1147, 989, 1148, 993, 1149, 993, 1150, 997, 1151, 997, 1152, 1001, 1153, 1001,
1536 1162, 1005, 1163, 1005, 1164, 1009, 1165, 1009, 1166, 1013, 1167, 1013, 1168, 1017, 1169, 1017,
1537 1170, 1021, 1171, 1021, 1172, 1025, 1173, 1025, 1174, 1029, 1175, 1029, 1176, 1033, 1177, 1033,
1538 1178, 1037, 1179, 1037, 1180, 1041, 1181, 1041, 1182, 1045, 1183, 1045, 1184, 1049, 1185, 1049,
1539 1186, 1053, 1187, 1053, 1188, 1057, 1189, 1057, 1190, 1061, 1191, 1061, 1192, 1065, 1193, 1065,
1540 1194, 1069, 1195, 1069, 1196, 1073, 1197, 1073, 1198, 1077, 1199, 1077, 1200, 1081, 1201, 1081,
1541 1202, 1085, 1203, 1085, 1204, 1089, 1205, 1089, 1206, 1093, 1207, 1093, 1208, 1097, 1209, 1097,
1542 1210, 1101, 1211, 1101, 1212, 1105, 1213, 1105, 1214, 1109, 1215, 1109, 1216, 1113, 1217, 1117,
1543 1218, 1117, 1219, 1121, 1220, 1121, 1221, 1125, 1222, 1125, 1223, 1129, 1224, 1129, 1225, 1133,
1544 1226, 1133, 1227, 1137, 1228, 1137, 1229, 1141, 1230, 1141, 1231, 1113, 1232, 1145, 1233, 1145,
1545 1234, 1149, 1235, 1149, 1236, 1153, 1237, 1153, 1238, 1157, 1239, 1157, 1240, 1161, 1241, 1161,
1546 1242, 1165, 1243, 1165, 1244, 1169, 1245, 1169, 1246, 1173, 1247, 1173, 1248, 1177, 1249, 1177,
1547 1250, 1181, 1251, 1181, 1252, 1185, 1253, 1185, 1254, 1189, 1255, 1189, 1256, 1193, 1257, 1193,
1548 1258, 1197, 1259, 1197, 1260, 1201, 1261, 1201, 1262, 1205, 1263, 1205, 1264, 1209, 1265, 1209,
1549 1266, 1213, 1267, 1213, 1268, 1217, 1269, 1217, 1270, 1221, 1271, 1221, 1272, 1225, 1273, 1225,
1550 1274, 1229, 1275, 1229, 1276, 1233, 1277, 1233, 1278, 1237, 1279, 1237, 1280, 1241, 1281, 1241,
1551 1282, 1245, 1283, 1245, 1284, 1249, 1285, 1249, 1286, 1253, 1287, 1253, 1288, 1257, 1289, 1257,
1552 1290, 1261, 1291, 1261, 1292, 1265, 1293, 1265, 1294, 1269, 1295, 1269, 1296, 1273, 1297, 1273,
1553 1298, 1277, 1299, 1277, 1300, 1281, 1301, 1281, 1302, 1285, 1303, 1285, 1304, 1289, 1305, 1289,
1554 1306, 1293, 1307, 1293, 1308, 1297, 1309, 1297, 1310, 1301, 1311, 1301, 1312, 1305, 1313, 1305,
1555 1314, 1309, 1315, 1309, 1316, 1313, 1317, 1313, 1318, 1317, 1319, 1317, 1073743153, 1321, 1366, 1325,
1556 1073743201, 1321, 1414, 1325, 1073746080, 1329, 4293, 1333, 4295, 1337, 4301, 1341, 7545, 1345, 7549, 1349,
1557 7680, 1353, 7681, 1353, 7682, 1357, 7683, 1357, 7684, 1361, 7685, 1361, 7686, 1365, 7687, 1365,
1558 7688, 1369, 7689, 1369, 7690, 1373, 7691, 1373, 7692, 1377, 7693, 1377, 7694, 1381, 7695, 1381,
1559 7696, 1385, 7697, 1385, 7698, 1389, 7699, 1389, 7700, 1393, 7701, 1393, 7702, 1397, 7703, 1397,
1560 7704, 1401, 7705, 1401, 7706, 1405, 7707, 1405, 7708, 1409, 7709, 1409, 7710, 1413, 7711, 1413,
1561 7712, 1417, 7713, 1417, 7714, 1421, 7715, 1421, 7716, 1425, 7717, 1425, 7718, 1429, 7719, 1429,
1562 7720, 1433, 7721, 1433, 7722, 1437, 7723, 1437, 7724, 1441, 7725, 1441, 7726, 1445, 7727, 1445,
1563 7728, 1449, 7729, 1449, 7730, 1453, 7731, 1453, 7732, 1457, 7733, 1457, 7734, 1461, 7735, 1461,
1564 7736, 1465, 7737, 1465, 7738, 1469, 7739, 1469, 7740, 1473, 7741, 1473, 7742, 1477, 7743, 1477,
1565 7744, 1481, 7745, 1481, 7746, 1485, 7747, 1485, 7748, 1489, 7749, 1489, 7750, 1493, 7751, 1493,
1566 7752, 1497, 7753, 1497, 7754, 1501, 7755, 1501, 7756, 1505, 7757, 1505, 7758, 1509, 7759, 1509,
1567 7760, 1513, 7761, 1513, 7762, 1517, 7763, 1517, 7764, 1521, 7765, 1521, 7766, 1525, 7767, 1525,
1568 7768, 1529, 7769, 1529, 7770, 1533, 7771, 1533, 7772, 1537, 7773, 1537, 7774, 1541, 7775, 1541,
1569 7776, 1545, 7777, 1545, 7778, 1549, 7779, 1549, 7780, 1553, 7781, 1553, 7782, 1557, 7783, 1557,
1570 7784, 1561, 7785, 1561, 7786, 1565, 7787, 1565, 7788, 1569, 7789, 1569, 7790, 1573, 7791, 1573,
1571 7792, 1577, 7793, 1577, 7794, 1581, 7795, 1581, 7796, 1585, 7797, 1585, 7798, 1589, 7799, 1589,
1572 7800, 1593, 7801, 1593, 7802, 1597, 7803, 1597, 7804, 1601, 7805, 1601, 7806, 1605, 7807, 1605,
1573 7808, 1609, 7809, 1609, 7810, 1613, 7811, 1613, 7812, 1617, 7813, 1617, 7814, 1621, 7815, 1621,
1574 7816, 1625, 7817, 1625, 7818, 1629, 7819, 1629, 7820, 1633, 7821, 1633, 7822, 1637, 7823, 1637,
1575 7824, 1641, 7825, 1641, 7826, 1645, 7827, 1645, 7828, 1649, 7829, 1649, 7835, 1545, 7840, 1653,
1576 7841, 1653, 7842, 1657, 7843, 1657, 7844, 1661, 7845, 1661, 7846, 1665, 7847, 1665, 7848, 1669,
1577 7849, 1669, 7850, 1673, 7851, 1673, 7852, 1677, 7853, 1677, 7854, 1681, 7855, 1681, 7856, 1685,
1578 7857, 1685, 7858, 1689, 7859, 1689, 7860, 1693, 7861, 1693, 7862, 1697, 7863, 1697, 7864, 1701,
1579 7865, 1701, 7866, 1705, 7867, 1705, 7868, 1709, 7869, 1709, 7870, 1713, 7871, 1713, 7872, 1717,
1580 7873, 1717, 7874, 1721, 7875, 1721, 7876, 1725, 7877, 1725, 7878, 1729, 7879, 1729, 7880, 1733,
1581 7881, 1733, 7882, 1737, 7883, 1737, 7884, 1741, 7885, 1741, 7886, 1745, 7887, 1745, 7888, 1749,
1582 7889, 1749, 7890, 1753, 7891, 1753, 7892, 1757, 7893, 1757, 7894, 1761, 7895, 1761, 7896, 1765,
1583 7897, 1765, 7898, 1769, 7899, 1769, 7900, 1773, 7901, 1773, 7902, 1777, 7903, 1777, 7904, 1781,
1584 7905, 1781, 7906, 1785, 7907, 1785, 7908, 1789, 7909, 1789, 7910, 1793, 7911, 1793, 7912, 1797,
1585 7913, 1797, 7914, 1801, 7915, 1801, 7916, 1805, 7917, 1805, 7918, 1809, 7919, 1809, 7920, 1813,
1586 7921, 1813, 7922, 1817, 7923, 1817, 7924, 1821, 7925, 1821, 7926, 1825, 7927, 1825, 7928, 1829,
1587 7929, 1829, 7930, 1833, 7931, 1833, 7932, 1837, 7933, 1837, 7934, 1841, 7935, 1841, 1073749760, 1845,
1588 7943, 1849, 1073749768, 1845, 7951, 1849, 1073749776, 1853, 7957, 1857, 1073749784, 1853, 7965, 1857, 1073749792, 1861,
1589 7975, 1865, 1073749800, 1861, 7983, 1865, 1073749808, 1869, 7991, 1873, 1073749816, 1869, 7999, 1873, 1073749824, 1877,
1590 8005, 1881, 1073749832, 1877, 8013, 1881, 8017, 1885, 8019, 1889, 8021, 1893, 8023, 1897, 8025, 1885,
1591 8027, 1889, 8029, 1893, 8031, 1897, 1073749856, 1901, 8039, 1905, 1073749864, 1901, 8047, 1905, 1073749872, 1909,
1592 8049, 1913, 1073749874, 1917, 8053, 1921, 1073749878, 1925, 8055, 1929, 1073749880, 1933, 8057, 1937, 1073749882, 1941,
1593 8059, 1945, 1073749884, 1949, 8061, 1953, 1073749936, 1957, 8113, 1961, 1073749944, 1957, 8121, 1961, 1073749946, 1909,
1594 8123, 1913, 8126, 729, 1073749960, 1917, 8139, 1921, 1073749968, 1965, 8145, 1969, 1073749976, 1965, 8153, 1969,
1595 1073749978, 1925, 8155, 1929, 1073749984, 1973, 8161, 1977, 8165, 1981, 1073749992, 1973, 8169, 1977, 1073749994, 1941,
1596 8171, 1945, 8172, 1981, 1073750008, 1933, 8185, 1937, 1073750010, 1949, 8187, 1953 };
1597 static const uint16_t kEcma262UnCanonicalizeMultiStrings0Size = 497;
1598 static const MultiCharacterSpecialCase<2> kEcma262UnCanonicalizeMultiStrings1[83] = {
1599 {{8498, 8526}}, {{8544, 8560}}, {{8559, 8575}}, {{8579, 8580}},
1600 {{9398, 9424}}, {{9423, 9449}}, {{11264, 11312}}, {{11310, 11358}},
1601 {{11360, 11361}}, {{619, 11362}}, {{7549, 11363}}, {{637, 11364}},
1602 {{570, 11365}}, {{574, 11366}}, {{11367, 11368}}, {{11369, 11370}},
1603 {{11371, 11372}}, {{593, 11373}}, {{625, 11374}}, {{592, 11375}},
1604 {{594, 11376}}, {{11378, 11379}}, {{11381, 11382}}, {{575, 11390}},
1605 {{576, 11391}}, {{11392, 11393}}, {{11394, 11395}}, {{11396, 11397}},
1606 {{11398, 11399}}, {{11400, 11401}}, {{11402, 11403}}, {{11404, 11405}},
1607 {{11406, 11407}}, {{11408, 11409}}, {{11410, 11411}}, {{11412, 11413}},
1608 {{11414, 11415}}, {{11416, 11417}}, {{11418, 11419}}, {{11420, 11421}},
1609 {{11422, 11423}}, {{11424, 11425}}, {{11426, 11427}}, {{11428, 11429}},
1610 {{11430, 11431}}, {{11432, 11433}}, {{11434, 11435}}, {{11436, 11437}},
1611 {{11438, 11439}}, {{11440, 11441}}, {{11442, 11443}}, {{11444, 11445}},
1612 {{11446, 11447}}, {{11448, 11449}}, {{11450, 11451}}, {{11452, 11453}},
1613 {{11454, 11455}}, {{11456, 11457}}, {{11458, 11459}}, {{11460, 11461}},
1614 {{11462, 11463}}, {{11464, 11465}}, {{11466, 11467}}, {{11468, 11469}},
1615 {{11470, 11471}}, {{11472, 11473}}, {{11474, 11475}}, {{11476, 11477}},
1616 {{11478, 11479}}, {{11480, 11481}}, {{11482, 11483}}, {{11484, 11485}},
1617 {{11486, 11487}}, {{11488, 11489}}, {{11490, 11491}}, {{11499, 11500}},
1618 {{11501, 11502}}, {{11506, 11507}}, {{4256, 11520}}, {{4293, 11557}},
1619 {{4295, 11559}}, {{4301, 11565}}, {{kSentinel}} };
1620 static const uint16_t kEcma262UnCanonicalizeTable1Size = 149;
1621 static const int32_t kEcma262UnCanonicalizeTable1[298] = {
1622 306, 1, 334, 1, 1073742176, 5, 367, 9, 1073742192, 5, 383, 9, 387, 13, 388, 13,
1623 1073743030, 17, 1231, 21, 1073743056, 17, 1257, 21, 1073744896, 25, 3118, 29, 1073744944, 25, 3166, 29,
1624 3168, 33, 3169, 33, 3170, 37, 3171, 41, 3172, 45, 3173, 49, 3174, 53, 3175, 57,
1625 3176, 57, 3177, 61, 3178, 61, 3179, 65, 3180, 65, 3181, 69, 3182, 73, 3183, 77,
1626 3184, 81, 3186, 85, 3187, 85, 3189, 89, 3190, 89, 1073745022, 93, 3199, 97, 3200, 101,
1627 3201, 101, 3202, 105, 3203, 105, 3204, 109, 3205, 109, 3206, 113, 3207, 113, 3208, 117,
1628 3209, 117, 3210, 121, 3211, 121, 3212, 125, 3213, 125, 3214, 129, 3215, 129, 3216, 133,
1629 3217, 133, 3218, 137, 3219, 137, 3220, 141, 3221, 141, 3222, 145, 3223, 145, 3224, 149,
1630 3225, 149, 3226, 153, 3227, 153, 3228, 157, 3229, 157, 3230, 161, 3231, 161, 3232, 165,
1631 3233, 165, 3234, 169, 3235, 169, 3236, 173, 3237, 173, 3238, 177, 3239, 177, 3240, 181,
1632 3241, 181, 3242, 185, 3243, 185, 3244, 189, 3245, 189, 3246, 193, 3247, 193, 3248, 197,
1633 3249, 197, 3250, 201, 3251, 201, 3252, 205, 3253, 205, 3254, 209, 3255, 209, 3256, 213,
1634 3257, 213, 3258, 217, 3259, 217, 3260, 221, 3261, 221, 3262, 225, 3263, 225, 3264, 229,
1635 3265, 229, 3266, 233, 3267, 233, 3268, 237, 3269, 237, 3270, 241, 3271, 241, 3272, 245,
1636 3273, 245, 3274, 249, 3275, 249, 3276, 253, 3277, 253, 3278, 257, 3279, 257, 3280, 261,
1637 3281, 261, 3282, 265, 3283, 265, 3284, 269, 3285, 269, 3286, 273, 3287, 273, 3288, 277,
1638 3289, 277, 3290, 281, 3291, 281, 3292, 285, 3293, 285, 3294, 289, 3295, 289, 3296, 293,
1639 3297, 293, 3298, 297, 3299, 297, 3307, 301, 3308, 301, 3309, 305, 3310, 305, 3314, 309,
1640 3315, 309, 1073745152, 313, 3365, 317, 3367, 321, 3373, 325 };
1641 static const uint16_t kEcma262UnCanonicalizeMultiStrings1Size = 83;
1642 static const MultiCharacterSpecialCase<2> kEcma262UnCanonicalizeMultiStrings5[92] = {
1643 {{42560, 42561}}, {{42562, 42563}}, {{42564, 42565}}, {{42566, 42567}},
1644 {{42568, 42569}}, {{42570, 42571}}, {{42572, 42573}}, {{42574, 42575}},
1645 {{42576, 42577}}, {{42578, 42579}}, {{42580, 42581}}, {{42582, 42583}},
1646 {{42584, 42585}}, {{42586, 42587}}, {{42588, 42589}}, {{42590, 42591}},
1647 {{42592, 42593}}, {{42594, 42595}}, {{42596, 42597}}, {{42598, 42599}},
1648 {{42600, 42601}}, {{42602, 42603}}, {{42604, 42605}}, {{42624, 42625}},
1649 {{42626, 42627}}, {{42628, 42629}}, {{42630, 42631}}, {{42632, 42633}},
1650 {{42634, 42635}}, {{42636, 42637}}, {{42638, 42639}}, {{42640, 42641}},
1651 {{42642, 42643}}, {{42644, 42645}}, {{42646, 42647}}, {{42786, 42787}},
1652 {{42788, 42789}}, {{42790, 42791}}, {{42792, 42793}}, {{42794, 42795}},
1653 {{42796, 42797}}, {{42798, 42799}}, {{42802, 42803}}, {{42804, 42805}},
1654 {{42806, 42807}}, {{42808, 42809}}, {{42810, 42811}}, {{42812, 42813}},
1655 {{42814, 42815}}, {{42816, 42817}}, {{42818, 42819}}, {{42820, 42821}},
1656 {{42822, 42823}}, {{42824, 42825}}, {{42826, 42827}}, {{42828, 42829}},
1657 {{42830, 42831}}, {{42832, 42833}}, {{42834, 42835}}, {{42836, 42837}},
1658 {{42838, 42839}}, {{42840, 42841}}, {{42842, 42843}}, {{42844, 42845}},
1659 {{42846, 42847}}, {{42848, 42849}}, {{42850, 42851}}, {{42852, 42853}},
1660 {{42854, 42855}}, {{42856, 42857}}, {{42858, 42859}}, {{42860, 42861}},
1661 {{42862, 42863}}, {{42873, 42874}}, {{42875, 42876}}, {{7545, 42877}},
1662 {{42878, 42879}}, {{42880, 42881}}, {{42882, 42883}}, {{42884, 42885}},
1663 {{42886, 42887}}, {{42891, 42892}}, {{613, 42893}}, {{42896, 42897}},
1664 {{42898, 42899}}, {{42912, 42913}}, {{42914, 42915}}, {{42916, 42917}},
1665 {{42918, 42919}}, {{42920, 42921}}, {{614, 42922}}, {{kSentinel}} };
1666 static const uint16_t kEcma262UnCanonicalizeTable5Size = 179;
1667 static const int32_t kEcma262UnCanonicalizeTable5[358] = {
1668 1600, 1, 1601, 1, 1602, 5, 1603, 5, 1604, 9, 1605, 9, 1606, 13, 1607, 13,
1669 1608, 17, 1609, 17, 1610, 21, 1611, 21, 1612, 25, 1613, 25, 1614, 29, 1615, 29,
1670 1616, 33, 1617, 33, 1618, 37, 1619, 37, 1620, 41, 1621, 41, 1622, 45, 1623, 45,
1671 1624, 49, 1625, 49, 1626, 53, 1627, 53, 1628, 57, 1629, 57, 1630, 61, 1631, 61,
1672 1632, 65, 1633, 65, 1634, 69, 1635, 69, 1636, 73, 1637, 73, 1638, 77, 1639, 77,
1673 1640, 81, 1641, 81, 1642, 85, 1643, 85, 1644, 89, 1645, 89, 1664, 93, 1665, 93,
1674 1666, 97, 1667, 97, 1668, 101, 1669, 101, 1670, 105, 1671, 105, 1672, 109, 1673, 109,
1675 1674, 113, 1675, 113, 1676, 117, 1677, 117, 1678, 121, 1679, 121, 1680, 125, 1681, 125,
1676 1682, 129, 1683, 129, 1684, 133, 1685, 133, 1686, 137, 1687, 137, 1826, 141, 1827, 141,
1677 1828, 145, 1829, 145, 1830, 149, 1831, 149, 1832, 153, 1833, 153, 1834, 157, 1835, 157,
1678 1836, 161, 1837, 161, 1838, 165, 1839, 165, 1842, 169, 1843, 169, 1844, 173, 1845, 173,
1679 1846, 177, 1847, 177, 1848, 181, 1849, 181, 1850, 185, 1851, 185, 1852, 189, 1853, 189,
1680 1854, 193, 1855, 193, 1856, 197, 1857, 197, 1858, 201, 1859, 201, 1860, 205, 1861, 205,
1681 1862, 209, 1863, 209, 1864, 213, 1865, 213, 1866, 217, 1867, 217, 1868, 221, 1869, 221,
1682 1870, 225, 1871, 225, 1872, 229, 1873, 229, 1874, 233, 1875, 233, 1876, 237, 1877, 237,
1683 1878, 241, 1879, 241, 1880, 245, 1881, 245, 1882, 249, 1883, 249, 1884, 253, 1885, 253,
1684 1886, 257, 1887, 257, 1888, 261, 1889, 261, 1890, 265, 1891, 265, 1892, 269, 1893, 269,
1685 1894, 273, 1895, 273, 1896, 277, 1897, 277, 1898, 281, 1899, 281, 1900, 285, 1901, 285,
1686 1902, 289, 1903, 289, 1913, 293, 1914, 293, 1915, 297, 1916, 297, 1917, 301, 1918, 305,
1687 1919, 305, 1920, 309, 1921, 309, 1922, 313, 1923, 313, 1924, 317, 1925, 317, 1926, 321,
1688 1927, 321, 1931, 325, 1932, 325, 1933, 329, 1936, 333, 1937, 333, 1938, 337, 1939, 337,
1689 1952, 341, 1953, 341, 1954, 345, 1955, 345, 1956, 349, 1957, 349, 1958, 353, 1959, 353,
1690 1960, 357, 1961, 357, 1962, 361 };
1691 static const uint16_t kEcma262UnCanonicalizeMultiStrings5Size = 92;
1692 static const MultiCharacterSpecialCase<2> kEcma262UnCanonicalizeMultiStrings7[3] = {
1693 {{65313, 65345}}, {{65338, 65370}}, {{kSentinel}} };
1694 static const uint16_t kEcma262UnCanonicalizeTable7Size = 4;
1695 static const int32_t kEcma262UnCanonicalizeTable7[8] = {
1696 1073749793, 1, 7994, 5, 1073749825, 1, 8026, 5 };
1697 static const uint16_t kEcma262UnCanonicalizeMultiStrings7Size = 3;
1701 bool* allow_caching_ptr) {
1702 int chunk_index = c >> 13;
1703 switch (chunk_index) {
1704 case 0:
return LookupMapping<true>(kEcma262UnCanonicalizeTable0,
1705 kEcma262UnCanonicalizeTable0Size,
1706 kEcma262UnCanonicalizeMultiStrings0,
1711 case 1:
return LookupMapping<true>(kEcma262UnCanonicalizeTable1,
1712 kEcma262UnCanonicalizeTable1Size,
1713 kEcma262UnCanonicalizeMultiStrings1,
1718 case 5:
return LookupMapping<true>(kEcma262UnCanonicalizeTable5,
1719 kEcma262UnCanonicalizeTable5Size,
1720 kEcma262UnCanonicalizeMultiStrings5,
1725 case 7:
return LookupMapping<true>(kEcma262UnCanonicalizeTable7,
1726 kEcma262UnCanonicalizeTable7Size,
1727 kEcma262UnCanonicalizeMultiStrings7,
1738 static const uint16_t kCanonicalizationRangeTable0Size = 70;
1739 static const int32_t kCanonicalizationRangeTable0[140] = {
1740 1073741889, 100, 90, 0, 1073741921, 100, 122, 0, 1073742016, 88, 214, 0, 1073742040, 24, 222, 0,
1741 1073742048, 88, 246, 0, 1073742072, 24, 254, 0, 1073742715, 8, 893, 0, 1073742728, 8, 906, 0,
1742 1073742749, 8, 927, 0, 1073742759, 16, 939, 0, 1073742765, 8, 943, 0, 1073742781, 8, 959, 0,
1743 1073742791, 16, 971, 0, 1073742845, 8, 1023, 0, 1073742848, 60, 1039, 0, 1073742864, 124, 1071, 0,
1744 1073742896, 124, 1103, 0, 1073742928, 60, 1119, 0, 1073743153, 148, 1366, 0, 1073743201, 148, 1414, 0,
1745 1073746080, 148, 4293, 0, 1073749760, 28, 7943, 0, 1073749768, 28, 7951, 0, 1073749776, 20, 7957, 0,
1746 1073749784, 20, 7965, 0, 1073749792, 28, 7975, 0, 1073749800, 28, 7983, 0, 1073749808, 28, 7991, 0,
1747 1073749816, 28, 7999, 0, 1073749824, 20, 8005, 0, 1073749832, 20, 8013, 0, 1073749856, 28, 8039, 0,
1748 1073749864, 28, 8047, 0, 1073749874, 12, 8053, 0, 1073749960, 12, 8139, 0 };
1749 static const uint16_t kCanonicalizationRangeMultiStrings0Size = 1;
1750 static const MultiCharacterSpecialCase<1> kCanonicalizationRangeMultiStrings1[1] = {
1752 static const uint16_t kCanonicalizationRangeTable1Size = 14;
1753 static const int32_t kCanonicalizationRangeTable1[28] = {
1754 1073742176, 60, 367, 0, 1073742192, 60, 383, 0, 1073743030, 100, 1231, 0, 1073743056, 100, 1257, 0,
1755 1073744896, 184, 3118, 0, 1073744944, 184, 3166, 0, 1073745152, 148, 3365, 0 };
1756 static const uint16_t kCanonicalizationRangeMultiStrings1Size = 1;
1757 static const MultiCharacterSpecialCase<1> kCanonicalizationRangeMultiStrings7[1] = {
1759 static const uint16_t kCanonicalizationRangeTable7Size = 4;
1760 static const int32_t kCanonicalizationRangeTable7[8] = {
1761 1073749793, 100, 7994, 0, 1073749825, 100, 8026, 0 };
1762 static const uint16_t kCanonicalizationRangeMultiStrings7Size = 1;
1766 bool* allow_caching_ptr) {
1767 int chunk_index = c >> 13;
1768 switch (chunk_index) {
1769 case 0:
return LookupMapping<false>(kCanonicalizationRangeTable0,
1770 kCanonicalizationRangeTable0Size,
1771 kCanonicalizationRangeMultiStrings0,
1776 case 1:
return LookupMapping<false>(kCanonicalizationRangeTable1,
1777 kCanonicalizationRangeTable1Size,
1778 kCanonicalizationRangeMultiStrings1,
1783 case 7:
return LookupMapping<false>(kCanonicalizationRangeTable7,
1784 kCanonicalizationRangeTable7Size,
1785 kCanonicalizationRangeMultiStrings7,
1795 const uchar UnicodeData::kMaxCodePoint = 65533;
1797 int UnicodeData::GetByteCount() {
1798 return kUppercaseTable0Size *
sizeof(
int32_t)
1799 + kUppercaseTable1Size *
sizeof(
int32_t)
1800 + kUppercaseTable5Size *
sizeof(
int32_t)
1801 + kUppercaseTable7Size *
sizeof(
int32_t)
1802 + kLowercaseTable0Size *
sizeof(
int32_t)
1803 + kLowercaseTable1Size *
sizeof(
int32_t)
1804 + kLowercaseTable5Size *
sizeof(
int32_t)
1805 + kLowercaseTable7Size *
sizeof(
int32_t)
1806 + kLetterTable0Size *
sizeof(
int32_t)
1807 + kLetterTable1Size *
sizeof(
int32_t)
1808 + kLetterTable2Size *
sizeof(
int32_t)
1809 + kLetterTable3Size *
sizeof(
int32_t)
1810 + kLetterTable4Size *
sizeof(
int32_t)
1811 + kLetterTable5Size *
sizeof(
int32_t)
1812 + kLetterTable6Size *
sizeof(
int32_t)
1813 + kLetterTable7Size *
sizeof(
int32_t)
1814 + kNumberTable0Size *
sizeof(
int32_t)
1815 + kNumberTable5Size *
sizeof(
int32_t)
1816 + kNumberTable7Size *
sizeof(
int32_t)
1817 + kWhiteSpaceTable0Size *
sizeof(
int32_t)
1818 + kWhiteSpaceTable1Size *
sizeof(
int32_t)
1819 + kLineTerminatorTable0Size *
sizeof(
int32_t)
1820 + kLineTerminatorTable1Size *
sizeof(
int32_t)
1821 + kCombiningMarkTable0Size *
sizeof(
int32_t)
1822 + kCombiningMarkTable1Size *
sizeof(
int32_t)
1823 + kCombiningMarkTable5Size *
sizeof(
int32_t)
1824 + kCombiningMarkTable7Size *
sizeof(
int32_t)
1825 + kConnectorPunctuationTable0Size *
sizeof(
int32_t)
1826 + kConnectorPunctuationTable1Size *
sizeof(
int32_t)
1827 + kConnectorPunctuationTable7Size *
sizeof(
int32_t)
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object Array DOM strings and string pretenure call new trace pretenuring decisions of HAllocate instructions track fields with only smi values track fields with heap values track_fields track_fields Enables optimizations which favor memory size over execution speed use string slices optimization filter maximum number of GVN fix point iterations use function inlining use allocation folding eliminate write barriers targeting allocations in optimized code maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining crankshaft harvests type feedback from stub cache trace check elimination phase hydrogen tracing filter NULL
static int Convert(uchar c, uchar n, uchar *result, bool *allow_caching_ptr)
static const unsigned kMaxTwoByteChar
static uint16_t TrailSurrogate(uint32_t char_code)
bool last_byte_of_buffer_unused_
#define ASSERT(condition)
static int Convert(uchar c, uchar n, uchar *result, bool *allow_caching_ptr)
static uchar CalculateValue(const byte *str, unsigned length, unsigned *cursor)
static int Convert(uchar c, uchar n, uchar *result, bool *allow_caching_ptr)
static const unsigned kMaxEncodedSize
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object size
static int Convert(uchar c, uchar n, uchar *result, bool *allow_caching_ptr)
static const uchar kMaxNonSurrogateCharCode
static uint16_t LeadSurrogate(uint32_t char_code)
static const uchar kEndOfEncoding
static uchar ValueOf(const byte *str, unsigned length, unsigned *cursor)
static const unsigned kMaxFourByteChar
static int Convert(uchar c, uchar n, uchar *result, bool *allow_caching_ptr)
static void WriteUtf16Slow(const uint8_t *stream, uint16_t *data, unsigned length)
static const uchar kBadChar
static const unsigned kMaxThreeByteChar
static const unsigned kMaxOneByteChar
const uint8_t * unbuffered_start_
void Reset(uint16_t *buffer, unsigned buffer_length, const uint8_t *stream, unsigned stream_length)