// Copyright 2012 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // This file was generated at 2014-10-08 15:25:47.940335 #include "src/unicode.h" #include "src/unicode-inl.h" #include #include namespace unibrow { static const int kStartBit = (1 << 30); static const int kChunkBits = (1 << 13); static const uchar kSentinel = static_cast(-1); /** * \file * Implementations of functions for working with unicode. */ typedef signed short int16_t; // NOLINT typedef unsigned short uint16_t; // NOLINT typedef int int32_t; // NOLINT // All access to the character table should go through this function. template static inline uchar TableGet(const int32_t* table, int index) { return table[D * index]; } static inline uchar GetEntry(int32_t entry) { return entry & (kStartBit - 1); } static inline bool IsStart(int32_t entry) { return (entry & kStartBit) != 0; } /** * Look up a character in the unicode table using a mix of binary and * interpolation search. For a uniformly distributed array * interpolation search beats binary search by a wide margin. However, * in this case interpolation search degenerates because of some very * high values in the lower end of the table so this function uses a * combination. The average number of steps to look up the information * about a character is around 10, slightly higher if there is no * information available about the character. */ static bool LookupPredicate(const int32_t* table, uint16_t size, uchar chr) { static const int kEntryDist = 1; uint16_t value = chr & (kChunkBits - 1); unsigned int low = 0; unsigned int high = size - 1; while (high != low) { unsigned int mid = low + ((high - low) >> 1); uchar current_value = GetEntry(TableGet(table, mid)); // If we've found an entry less than or equal to this one, and the // next one is not also less than this one, we've arrived. if ((current_value <= value) && (mid + 1 == size || GetEntry(TableGet(table, mid + 1)) > value)) { low = mid; break; } else if (current_value < value) { low = mid + 1; } else if (current_value > value) { // If we've just checked the bottom-most value and it's not // the one we're looking for, we're done. if (mid == 0) break; high = mid - 1; } } int32_t field = TableGet(table, low); uchar entry = GetEntry(field); bool is_start = IsStart(field); return (entry == value) || (entry < value && is_start); } template struct MultiCharacterSpecialCase { static const uchar kEndOfEncoding = kSentinel; uchar chars[kW]; }; // Look up the mapping for the given character in the specified table, // which is of the specified length and uses the specified special case // mapping for multi-char mappings. The next parameter is the character // following the one to map. The result will be written in to the result // buffer and the number of characters written will be returned. Finally, // if the allow_caching_ptr is non-null then false will be stored in // it if the result contains multiple characters or depends on the // context. // If ranges are linear, a match between a start and end point is // offset by the distance between the match and the start. Otherwise // the result is the same as for the start point on the entire range. template static int LookupMapping(const int32_t* table, uint16_t size, const MultiCharacterSpecialCase* multi_chars, uchar chr, uchar next, uchar* result, bool* allow_caching_ptr) { static const int kEntryDist = 2; uint16_t key = chr & (kChunkBits - 1); uint16_t chunk_start = chr - key; unsigned int low = 0; unsigned int high = size - 1; while (high != low) { unsigned int mid = low + ((high - low) >> 1); uchar current_value = GetEntry(TableGet(table, mid)); // If we've found an entry less than or equal to this one, and the next one // is not also less than this one, we've arrived. if ((current_value <= key) && (mid + 1 == size || GetEntry(TableGet(table, mid + 1)) > key)) { low = mid; break; } else if (current_value < key) { low = mid + 1; } else if (current_value > key) { // If we've just checked the bottom-most value and it's not // the one we're looking for, we're done. if (mid == 0) break; high = mid - 1; } } int32_t field = TableGet(table, low); uchar entry = GetEntry(field); bool is_start = IsStart(field); bool found = (entry == key) || (entry < key && is_start); if (found) { int32_t value = table[2 * low + 1]; if (value == 0) { // 0 means not present return 0; } else if ((value & 3) == 0) { // Low bits 0 means a constant offset from the given character. if (ranges_are_linear) { result[0] = chr + (value >> 2); } else { result[0] = entry + chunk_start + (value >> 2); } return 1; } else if ((value & 3) == 1) { // Low bits 1 means a special case mapping if (allow_caching_ptr) *allow_caching_ptr = false; const MultiCharacterSpecialCase& mapping = multi_chars[value >> 2]; int length = 0; for (length = 0; length < kW; length++) { uchar mapped = mapping.chars[length]; if (mapped == MultiCharacterSpecialCase::kEndOfEncoding) break; if (ranges_are_linear) { result[length] = mapped + (key - entry); } else { result[length] = mapped; } } return length; } else { // Low bits 2 means a really really special case if (allow_caching_ptr) *allow_caching_ptr = false; // The cases of this switch are defined in unicode.py in the // really_special_cases mapping. switch (value >> 2) { case 1: // Really special case 1: upper case sigma. This letter // converts to two different lower case sigmas depending on // whether or not it occurs at the end of a word. if (next != 0 && Letter::Is(next)) { result[0] = 0x03C3; } else { result[0] = 0x03C2; } return 1; default: return 0; } return -1; } } else { return 0; } } static inline uint8_t NonASCIISequenceLength(byte first) { // clang-format off static const uint8_t lengths[256] = { // The first 128 entries correspond to ASCII characters. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // The following 64 entries correspond to continuation bytes. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // The next are two invalid overlong encodings and 30 two-byte sequences. 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 16 three-byte sequences. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 5 four-byte sequences, followed by sequences that could only encode // code points outside of the unicode range. 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // clang-format on return lengths[first]; } static inline bool IsContinuationCharacter(byte chr) { return chr >= 0x80 && chr <= 0xBF; } // This method decodes an UTF-8 value according to RFC 3629. uchar Utf8::CalculateValue(const byte* str, size_t max_length, size_t* cursor) { size_t length = NonASCIISequenceLength(str[0]); // Check continuation characters. size_t max_count = std::min(length, max_length); size_t count = 1; while (count < max_count && IsContinuationCharacter(str[count])) { count++; } *cursor += count; // There must be enough continuation characters. if (count != length) return kBadChar; // Check overly long sequences & other conditions. if (length == 3) { if (str[0] == 0xE0 && (str[1] < 0xA0 || str[1] > 0xBF)) { // Overlong three-byte sequence? return kBadChar; } else if (str[0] == 0xED && (str[1] < 0x80 || str[1] > 0x9F)) { // High and low surrogate halves? return kBadChar; } } else if (length == 4) { if (str[0] == 0xF0 && (str[1] < 0x90 || str[1] > 0xBF)) { // Overlong four-byte sequence. return kBadChar; } else if (str[0] == 0xF4 && (str[1] < 0x80 || str[1] > 0x8F)) { // Code points outside of the unicode range. return kBadChar; } } // All errors have been handled, so we only have to assemble the result. switch (length) { case 1: return str[0]; case 2: return ((str[0] << 6) + str[1]) - 0x00003080; case 3: return ((str[0] << 12) + (str[1] << 6) + str[2]) - 0x000E2080; case 4: return ((str[0] << 18) + (str[1] << 12) + (str[2] << 6) + str[3]) - 0x03C82080; } UNREACHABLE(); return kBadChar; } uchar Utf8::ValueOfIncremental(byte next, Utf8IncrementalBuffer* buffer) { DCHECK_NOT_NULL(buffer); // The common case: 1-byte Utf8 (and no incomplete char in the buffer) if (V8_LIKELY(next <= kMaxOneByteChar && *buffer == 0)) { return static_cast(next); } if (*buffer == 0) { // We're at the start of a new character. uint32_t kind = NonASCIISequenceLength(next); if (kind >= 2 && kind <= 4) { // Start of 2..4 byte character, and no buffer. // The mask for the lower bits depends on the kind, and is // 0x1F, 0x0F, 0x07 for kinds 2, 3, 4 respectively. We can get that // with one shift. uint8_t mask = 0x7f >> kind; // Store the kind in the top nibble, and kind - 1 (i.e., remaining bytes) // in 2nd nibble, and the value in the bottom three. The 2nd nibble is // intended as a counter about how many bytes are still needed. *buffer = kind << 28 | (kind - 1) << 24 | (next & mask); return kIncomplete; } else { // No buffer, and not the start of a 1-byte char (handled at the // beginning), and not the start of a 2..4 byte char? Bad char. *buffer = 0; return kBadChar; } } else if (*buffer <= 0xff) { // We have one unprocessed byte left (from the last else case in this if // statement). uchar previous = *buffer; *buffer = 0; uchar t = ValueOfIncremental(previous, buffer); if (t == kIncomplete) { // If we have an incomplete character, process both the previous and the // next byte at once. return ValueOfIncremental(next, buffer); } else { // Otherwise, process the previous byte and save the next byte for next // time. DCHECK_EQ(0u, *buffer); *buffer = next; return t; } } else if (IsContinuationCharacter(next)) { // We're inside of a character, as described by buffer. // How many bytes (excluding this one) do we still expect? uint8_t bytes_expected = *buffer >> 28; uint8_t bytes_left = (*buffer >> 24) & 0x0f; bytes_left--; // Update the value. uint32_t value = ((*buffer & 0xffffff) << 6) | (next & 0x3F); if (bytes_left) { *buffer = (bytes_expected << 28 | bytes_left << 24 | value); return kIncomplete; } else { *buffer = 0; bool sequence_was_too_long = (bytes_expected == 2 && value < 0x80) || (bytes_expected == 3 && value < 0x800); return sequence_was_too_long ? kBadChar : value; } } else { // Within a character, but not a continuation character? Then the // previous char was a bad char. But we need to save the current // one. *buffer = next; return kBadChar; } } uchar Utf8::ValueOfIncrementalFinish(Utf8IncrementalBuffer* buffer) { DCHECK_NOT_NULL(buffer); if (*buffer == 0) { return kBufferEmpty; } else { // Process left-over chars. An incomplete char at the end maps to kBadChar. uchar t = ValueOfIncremental(0, buffer); return (t == kIncomplete) ? kBadChar : t; } } bool Utf8::Validate(const byte* bytes, size_t length) { size_t cursor = 0; // Performance optimization: Skip over single-byte values first. while (cursor < length && bytes[cursor] <= kMaxOneByteChar) { ++cursor; } while (cursor < length) { uchar c = ValueOf(bytes + cursor, length - cursor, &cursor); if (!IsValidCharacter(c)) return false; } return true; } // Uppercase: point.category == 'Lu' static const uint16_t kUppercaseTable0Size = 455; static const int32_t kUppercaseTable0[455] = { 1073741889, 90, 1073742016, 214, 1073742040, 222, 256, 258, // NOLINT 260, 262, 264, 266, 268, 270, 272, 274, // NOLINT 276, 278, 280, 282, 284, 286, 288, 290, // NOLINT 292, 294, 296, 298, 300, 302, 304, 306, // NOLINT 308, 310, 313, 315, 317, 319, 321, 323, // NOLINT 325, 327, 330, 332, 334, 336, 338, 340, // NOLINT 342, 344, 346, 348, 350, 352, 354, 356, // NOLINT 358, 360, 362, 364, 366, 368, 370, 372, // NOLINT 374, 1073742200, 377, 379, 381, 1073742209, 386, 388, // NOLINT 1073742214, 391, 1073742217, 395, 1073742222, 401, 1073742227, 404, // NOLINT 1073742230, 408, 1073742236, 413, 1073742239, 416, 418, 420, // NOLINT 1073742246, 423, 425, 428, 1073742254, 431, 1073742257, 435, // NOLINT 437, 1073742263, 440, 444, 452, 455, 458, 461, // NOLINT 463, 465, 467, 469, 471, 473, 475, 478, // NOLINT 480, 482, 484, 486, 488, 490, 492, 494, // NOLINT 497, 500, 1073742326, 504, 506, 508, 510, 512, // NOLINT 514, 516, 518, 520, 522, 524, 526, 528, // NOLINT 530, 532, 534, 536, 538, 540, 542, 544, // NOLINT 546, 548, 550, 552, 554, 556, 558, 560, // NOLINT 562, 1073742394, 571, 1073742397, 574, 577, 1073742403, 582, // NOLINT 584, 586, 588, 590, 880, 882, 886, 895, // NOLINT 902, 1073742728, 906, 908, 1073742734, 911, 1073742737, 929, // NOLINT 1073742755, 939, 975, 1073742802, 980, 984, 986, 988, // NOLINT 990, 992, 994, 996, 998, 1000, 1002, 1004, // NOLINT 1006, 1012, 1015, 1073742841, 1018, 1073742845, 1071, 1120, // NOLINT 1122, 1124, 1126, 1128, 1130, 1132, 1134, 1136, // NOLINT 1138, 1140, 1142, 1144, 1146, 1148, 1150, 1152, // NOLINT 1162, 1164, 1166, 1168, 1170, 1172, 1174, 1176, // NOLINT 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, // NOLINT 1194, 1196, 1198, 1200, 1202, 1204, 1206, 1208, // NOLINT 1210, 1212, 1214, 1073743040, 1217, 1219, 1221, 1223, // NOLINT 1225, 1227, 1229, 1232, 1234, 1236, 1238, 1240, // NOLINT 1242, 1244, 1246, 1248, 1250, 1252, 1254, 1256, // NOLINT 1258, 1260, 1262, 1264, 1266, 1268, 1270, 1272, // NOLINT 1274, 1276, 1278, 1280, 1282, 1284, 1286, 1288, // NOLINT 1290, 1292, 1294, 1296, 1298, 1300, 1302, 1304, // NOLINT 1306, 1308, 1310, 1312, 1314, 1316, 1318, 1320, // NOLINT 1322, 1324, 1326, 1073743153, 1366, 1073746080, 4293, 4295, // NOLINT 4301, 7680, 7682, 7684, 7686, 7688, 7690, 7692, // NOLINT 7694, 7696, 7698, 7700, 7702, 7704, 7706, 7708, // NOLINT 7710, 7712, 7714, 7716, 7718, 7720, 7722, 7724, // NOLINT 7726, 7728, 7730, 7732, 7734, 7736, 7738, 7740, // NOLINT 7742, 7744, 7746, 7748, 7750, 7752, 7754, 7756, // NOLINT 7758, 7760, 7762, 7764, 7766, 7768, 7770, 7772, // NOLINT 7774, 7776, 7778, 7780, 7782, 7784, 7786, 7788, // NOLINT 7790, 7792, 7794, 7796, 7798, 7800, 7802, 7804, // NOLINT 7806, 7808, 7810, 7812, 7814, 7816, 7818, 7820, // NOLINT 7822, 7824, 7826, 7828, 7838, 7840, 7842, 7844, // NOLINT 7846, 7848, 7850, 7852, 7854, 7856, 7858, 7860, // NOLINT 7862, 7864, 7866, 7868, 7870, 7872, 7874, 7876, // NOLINT 7878, 7880, 7882, 7884, 7886, 7888, 7890, 7892, // NOLINT 7894, 7896, 7898, 7900, 7902, 7904, 7906, 7908, // NOLINT 7910, 7912, 7914, 7916, 7918, 7920, 7922, 7924, // NOLINT 7926, 7928, 7930, 7932, 7934, 1073749768, 7951, 1073749784, // NOLINT 7965, 1073749800, 7983, 1073749816, 7999, 1073749832, 8013, 8025, // NOLINT 8027, 8029, 8031, 1073749864, 8047, 1073749944, 8123, 1073749960, // NOLINT 8139, 1073749976, 8155, 1073749992, 8172, 1073750008, 8187}; // NOLINT static const uint16_t kUppercaseTable1Size = 86; static const int32_t kUppercaseTable1[86] = { 258, 263, 1073742091, 269, 1073742096, 274, 277, 1073742105, // NOLINT 285, 292, 294, 296, 1073742122, 301, 1073742128, 307, // NOLINT 1073742142, 319, 325, 387, 1073744896, 3118, 3168, 1073744994, // NOLINT 3172, 3175, 3177, 3179, 1073745005, 3184, 3186, 3189, // NOLINT 1073745022, 3200, 3202, 3204, 3206, 3208, 3210, 3212, // NOLINT 3214, 3216, 3218, 3220, 3222, 3224, 3226, 3228, // NOLINT 3230, 3232, 3234, 3236, 3238, 3240, 3242, 3244, // NOLINT 3246, 3248, 3250, 3252, 3254, 3256, 3258, 3260, // NOLINT 3262, 3264, 3266, 3268, 3270, 3272, 3274, 3276, // NOLINT 3278, 3280, 3282, 3284, 3286, 3288, 3290, 3292, // NOLINT 3294, 3296, 3298, 3307, 3309, 3314 }; // NOLINT static const uint16_t kUppercaseTable5Size = 101; static const int32_t kUppercaseTable5[101] = { 1600, 1602, 1604, 1606, 1608, 1610, 1612, 1614, // NOLINT 1616, 1618, 1620, 1622, 1624, 1626, 1628, 1630, // NOLINT 1632, 1634, 1636, 1638, 1640, 1642, 1644, 1664, // NOLINT 1666, 1668, 1670, 1672, 1674, 1676, 1678, 1680, // NOLINT 1682, 1684, 1686, 1688, 1690, 1826, 1828, 1830, // NOLINT 1832, 1834, 1836, 1838, 1842, 1844, 1846, 1848, // NOLINT 1850, 1852, 1854, 1856, 1858, 1860, 1862, 1864, // NOLINT 1866, 1868, 1870, 1872, 1874, 1876, 1878, 1880, // NOLINT 1882, 1884, 1886, 1888, 1890, 1892, 1894, 1896, // NOLINT 1898, 1900, 1902, 1913, 1915, 1073743741, 1918, 1920, // NOLINT 1922, 1924, 1926, 1931, 1933, 1936, 1938, 1942, // NOLINT 1944, 1946, 1948, 1950, 1952, 1954, 1956, 1958, // NOLINT 1960, 1073743786, 1965, 1073743792, 1969}; // NOLINT static const uint16_t kUppercaseTable7Size = 2; static const int32_t kUppercaseTable7[2] = { 1073749793, 7994 }; // NOLINT bool Uppercase::Is(uchar c) { int chunk_index = c >> 13; switch (chunk_index) { case 0: return LookupPredicate(kUppercaseTable0, kUppercaseTable0Size, c); case 1: return LookupPredicate(kUppercaseTable1, kUppercaseTable1Size, c); case 5: return LookupPredicate(kUppercaseTable5, kUppercaseTable5Size, c); case 7: return LookupPredicate(kUppercaseTable7, kUppercaseTable7Size, c); default: return false; } } // Lowercase: point.category == 'Ll' static const uint16_t kLowercaseTable0Size = 467; static const int32_t kLowercaseTable0[467] = { 1073741921, 122, 181, 1073742047, 246, 1073742072, 255, 257, // NOLINT 259, 261, 263, 265, 267, 269, 271, 273, // NOLINT 275, 277, 279, 281, 283, 285, 287, 289, // NOLINT 291, 293, 295, 297, 299, 301, 303, 305, // NOLINT 307, 309, 1073742135, 312, 314, 316, 318, 320, // NOLINT 322, 324, 326, 1073742152, 329, 331, 333, 335, // NOLINT 337, 339, 341, 343, 345, 347, 349, 351, // NOLINT 353, 355, 357, 359, 361, 363, 365, 367, // NOLINT 369, 371, 373, 375, 378, 380, 1073742206, 384, // NOLINT 387, 389, 392, 1073742220, 397, 402, 405, 1073742233, // NOLINT 411, 414, 417, 419, 421, 424, 1073742250, 427, // NOLINT 429, 432, 436, 438, 1073742265, 442, 1073742269, 447, // NOLINT 454, 457, 460, 462, 464, 466, 468, 470, // NOLINT 472, 474, 1073742300, 477, 479, 481, 483, 485, // NOLINT 487, 489, 491, 493, 1073742319, 496, 499, 501, // NOLINT 505, 507, 509, 511, 513, 515, 517, 519, // NOLINT 521, 523, 525, 527, 529, 531, 533, 535, // NOLINT 537, 539, 541, 543, 545, 547, 549, 551, // NOLINT 553, 555, 557, 559, 561, 1073742387, 569, 572, // NOLINT 1073742399, 576, 578, 583, 585, 587, 589, 1073742415, // NOLINT 659, 1073742485, 687, 881, 883, 887, 1073742715, 893, // NOLINT 912, 1073742764, 974, 1073742800, 977, 1073742805, 983, 985, // NOLINT 987, 989, 991, 993, 995, 997, 999, 1001, // NOLINT 1003, 1005, 1073742831, 1011, 1013, 1016, 1073742843, 1020, // NOLINT 1073742896, 1119, 1121, 1123, 1125, 1127, 1129, 1131, // NOLINT 1133, 1135, 1137, 1139, 1141, 1143, 1145, 1147, // NOLINT 1149, 1151, 1153, 1163, 1165, 1167, 1169, 1171, // NOLINT 1173, 1175, 1177, 1179, 1181, 1183, 1185, 1187, // NOLINT 1189, 1191, 1193, 1195, 1197, 1199, 1201, 1203, // NOLINT 1205, 1207, 1209, 1211, 1213, 1215, 1218, 1220, // NOLINT 1222, 1224, 1226, 1228, 1073743054, 1231, 1233, 1235, // NOLINT 1237, 1239, 1241, 1243, 1245, 1247, 1249, 1251, // NOLINT 1253, 1255, 1257, 1259, 1261, 1263, 1265, 1267, // NOLINT 1269, 1271, 1273, 1275, 1277, 1279, 1281, 1283, // NOLINT 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, // NOLINT 1301, 1303, 1305, 1307, 1309, 1311, 1313, 1315, // NOLINT 1317, 1319, 1321, 1323, 1325, 1327, 1073743201, 1415, // NOLINT 1073749248, 7467, 1073749355, 7543, 1073749369, 7578, 7681, 7683, // NOLINT 7685, 7687, 7689, 7691, 7693, 7695, 7697, 7699, // NOLINT 7701, 7703, 7705, 7707, 7709, 7711, 7713, 7715, // NOLINT 7717, 7719, 7721, 7723, 7725, 7727, 7729, 7731, // NOLINT 7733, 7735, 7737, 7739, 7741, 7743, 7745, 7747, // NOLINT 7749, 7751, 7753, 7755, 7757, 7759, 7761, 7763, // NOLINT 7765, 7767, 7769, 7771, 7773, 7775, 7777, 7779, // NOLINT 7781, 7783, 7785, 7787, 7789, 7791, 7793, 7795, // NOLINT 7797, 7799, 7801, 7803, 7805, 7807, 7809, 7811, // NOLINT 7813, 7815, 7817, 7819, 7821, 7823, 7825, 7827, // NOLINT 1073749653, 7837, 7839, 7841, 7843, 7845, 7847, 7849, // NOLINT 7851, 7853, 7855, 7857, 7859, 7861, 7863, 7865, // NOLINT 7867, 7869, 7871, 7873, 7875, 7877, 7879, 7881, // NOLINT 7883, 7885, 7887, 7889, 7891, 7893, 7895, 7897, // NOLINT 7899, 7901, 7903, 7905, 7907, 7909, 7911, 7913, // NOLINT 7915, 7917, 7919, 7921, 7923, 7925, 7927, 7929, // NOLINT 7931, 7933, 1073749759, 7943, 1073749776, 7957, 1073749792, 7975, // NOLINT 1073749808, 7991, 1073749824, 8005, 1073749840, 8023, 1073749856, 8039, // NOLINT 1073749872, 8061, 1073749888, 8071, 1073749904, 8087, 1073749920, 8103, // NOLINT 1073749936, 8116, 1073749942, 8119, 8126, 1073749954, 8132, 1073749958, // NOLINT 8135, 1073749968, 8147, 1073749974, 8151, 1073749984, 8167, 1073750002, // NOLINT 8180, 1073750006, 8183}; // NOLINT static const uint16_t kLowercaseTable1Size = 84; static const int32_t kLowercaseTable1[84] = { 266, 1073742094, 271, 275, 303, 308, 313, 1073742140, // NOLINT 317, 1073742150, 329, 334, 388, 1073744944, 3166, 3169, // NOLINT 1073744997, 3174, 3176, 3178, 3180, 3185, 1073745011, 3188, // NOLINT 1073745014, 3195, 3201, 3203, 3205, 3207, 3209, 3211, // NOLINT 3213, 3215, 3217, 3219, 3221, 3223, 3225, 3227, // NOLINT 3229, 3231, 3233, 3235, 3237, 3239, 3241, 3243, // NOLINT 3245, 3247, 3249, 3251, 3253, 3255, 3257, 3259, // NOLINT 3261, 3263, 3265, 3267, 3269, 3271, 3273, 3275, // NOLINT 3277, 3279, 3281, 3283, 3285, 3287, 3289, 3291, // NOLINT 3293, 3295, 3297, 1073745123, 3300, 3308, 3310, 3315, // NOLINT 1073745152, 3365, 3367, 3373 }; // NOLINT static const uint16_t kLowercaseTable5Size = 105; static const int32_t kLowercaseTable5[105] = { 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615, // NOLINT 1617, 1619, 1621, 1623, 1625, 1627, 1629, 1631, // NOLINT 1633, 1635, 1637, 1639, 1641, 1643, 1645, 1665, // NOLINT 1667, 1669, 1671, 1673, 1675, 1677, 1679, 1681, // NOLINT 1683, 1685, 1687, 1689, 1691, 1827, 1829, 1831, // NOLINT 1833, 1835, 1837, 1073743663, 1841, 1843, 1845, 1847, // NOLINT 1849, 1851, 1853, 1855, 1857, 1859, 1861, 1863, // NOLINT 1865, 1867, 1869, 1871, 1873, 1875, 1877, 1879, // NOLINT 1881, 1883, 1885, 1887, 1889, 1891, 1893, 1895, // NOLINT 1897, 1899, 1901, 1903, 1073743729, 1912, 1914, 1916, // NOLINT 1919, 1921, 1923, 1925, 1927, 1932, 1934, 1937, // NOLINT 1073743763, 1941, 1943, 1945, 1947, 1949, 1951, 1953, // NOLINT 1955, 1957, 1959, 1961, 2042, 1073744688, 2906, 1073744740, // NOLINT 2917}; // NOLINT static const uint16_t kLowercaseTable7Size = 6; static const int32_t kLowercaseTable7[6] = { 1073748736, 6918, 1073748755, 6935, 1073749825, 8026 }; // NOLINT bool Lowercase::Is(uchar c) { int chunk_index = c >> 13; switch (chunk_index) { case 0: return LookupPredicate(kLowercaseTable0, kLowercaseTable0Size, c); case 1: return LookupPredicate(kLowercaseTable1, kLowercaseTable1Size, c); case 5: return LookupPredicate(kLowercaseTable5, kLowercaseTable5Size, c); case 7: return LookupPredicate(kLowercaseTable7, kLowercaseTable7Size, c); default: return false; } } // Letter: point.category in ['Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl'] static const uint16_t kLetterTable0Size = 431; static const int32_t kLetterTable0[431] = { 1073741889, 90, 1073741921, 122, 170, 181, 186, 1073742016, // NOLINT 214, 1073742040, 246, 1073742072, 705, 1073742534, 721, 1073742560, // NOLINT 740, 748, 750, 1073742704, 884, 1073742710, 887, 1073742714, // NOLINT 893, 895, 902, 1073742728, 906, 908, 1073742734, 929, // NOLINT 1073742755, 1013, 1073742839, 1153, 1073742986, 1327, 1073743153, 1366, // NOLINT 1369, 1073743201, 1415, 1073743312, 1514, 1073743344, 1522, 1073743392, // NOLINT 1610, 1073743470, 1647, 1073743473, 1747, 1749, 1073743589, 1766, // NOLINT 1073743598, 1775, 1073743610, 1788, 1791, 1808, 1073743634, 1839, // NOLINT 1073743693, 1957, 1969, 1073743818, 2026, 1073743860, 2037, 2042, // NOLINT 1073743872, 2069, 2074, 2084, 2088, 1073743936, 2136, 1073744032, // NOLINT 2226, 1073744132, 2361, 2365, 2384, 1073744216, 2401, 1073744241, // NOLINT 2432, 1073744261, 2444, 1073744271, 2448, 1073744275, 2472, 1073744298, // NOLINT 2480, 2482, 1073744310, 2489, 2493, 2510, 1073744348, 2525, // NOLINT 1073744351, 2529, 1073744368, 2545, 1073744389, 2570, 1073744399, 2576, // NOLINT 1073744403, 2600, 1073744426, 2608, 1073744434, 2611, 1073744437, 2614, // NOLINT 1073744440, 2617, 1073744473, 2652, 2654, 1073744498, 2676, 1073744517, // NOLINT 2701, 1073744527, 2705, 1073744531, 2728, 1073744554, 2736, 1073744562, // NOLINT 2739, 1073744565, 2745, 2749, 2768, 1073744608, 2785, 1073744645, // NOLINT 2828, 1073744655, 2832, 1073744659, 2856, 1073744682, 2864, 1073744690, // NOLINT 2867, 1073744693, 2873, 2877, 1073744732, 2909, 1073744735, 2913, // NOLINT 2929, 2947, 1073744773, 2954, 1073744782, 2960, 1073744786, 2965, // NOLINT 1073744793, 2970, 2972, 1073744798, 2975, 1073744803, 2980, 1073744808, // NOLINT 2986, 1073744814, 3001, 3024, 1073744901, 3084, 1073744910, 3088, // NOLINT 1073744914, 3112, 1073744938, 3129, 3133, 1073744984, 3161, 1073744992, // NOLINT 3169, 1073745029, 3212, 1073745038, 3216, 1073745042, 3240, 1073745066, // NOLINT 3251, 1073745077, 3257, 3261, 3294, 1073745120, 3297, 1073745137, // NOLINT 3314, 1073745157, 3340, 1073745166, 3344, 1073745170, 3386, 3389, // NOLINT 3406, 1073745248, 3425, 1073745274, 3455, 1073745285, 3478, 1073745306, // NOLINT 3505, 1073745331, 3515, 3517, 1073745344, 3526, 1073745409, 3632, // NOLINT 1073745458, 3635, 1073745472, 3654, 1073745537, 3714, 3716, 1073745543, // NOLINT 3720, 3722, 3725, 1073745556, 3735, 1073745561, 3743, 1073745569, // NOLINT 3747, 3749, 3751, 1073745578, 3755, 1073745581, 3760, 1073745586, // NOLINT 3763, 3773, 1073745600, 3780, 3782, 1073745628, 3807, 3840, // NOLINT 1073745728, 3911, 1073745737, 3948, 1073745800, 3980, 1073745920, 4138, // NOLINT 4159, 1073746000, 4181, 1073746010, 4189, 4193, 1073746021, 4198, // NOLINT 1073746030, 4208, 1073746037, 4225, 4238, 1073746080, 4293, 4295, // NOLINT 4301, 1073746128, 4346, 1073746172, 4680, 1073746506, 4685, 1073746512, // NOLINT 4694, 4696, 1073746522, 4701, 1073746528, 4744, 1073746570, 4749, // NOLINT 1073746576, 4784, 1073746610, 4789, 1073746616, 4798, 4800, 1073746626, // NOLINT 4805, 1073746632, 4822, 1073746648, 4880, 1073746706, 4885, 1073746712, // NOLINT 4954, 1073746816, 5007, 1073746848, 5108, 1073746945, 5740, 1073747567, // NOLINT 5759, 1073747585, 5786, 1073747616, 5866, 1073747694, 5880, 1073747712, // NOLINT 5900, 1073747726, 5905, 1073747744, 5937, 1073747776, 5969, 1073747808, // NOLINT 5996, 1073747822, 6000, 1073747840, 6067, 6103, 6108, 1073748000, // NOLINT 6263, 1073748096, 6312, 6314, 1073748144, 6389, 1073748224, 6430, // NOLINT 1073748304, 6509, 1073748336, 6516, 1073748352, 6571, 1073748417, 6599, // NOLINT 1073748480, 6678, 1073748512, 6740, 6823, 1073748741, 6963, 1073748805, // NOLINT 6987, 1073748867, 7072, 1073748910, 7087, 1073748922, 7141, 1073748992, // NOLINT 7203, 1073749069, 7247, 1073749082, 7293, 1073749225, 7404, 1073749230, // NOLINT 7409, 1073749237, 7414, 1073749248, 7615, 1073749504, 7957, 1073749784, // NOLINT 7965, 1073749792, 8005, 1073749832, 8013, 1073749840, 8023, 8025, // NOLINT 8027, 8029, 1073749855, 8061, 1073749888, 8116, 1073749942, 8124, // NOLINT 8126, 1073749954, 8132, 1073749958, 8140, 1073749968, 8147, 1073749974, // NOLINT 8155, 1073749984, 8172, 1073750002, 8180, 1073750006, 8188}; // NOLINT static const uint16_t kLetterTable1Size = 87; static const int32_t kLetterTable1[87] = { 113, 127, 1073741968, 156, 258, 263, 1073742090, 275, // NOLINT 277, 1073742105, 285, 292, 294, 296, 1073742122, 301, // NOLINT 1073742127, 313, 1073742140, 319, 1073742149, 329, 334, 1073742176, // NOLINT 392, 1073744896, 3118, 1073744944, 3166, 1073744992, 3300, 1073745131, // NOLINT 3310, 1073745138, 3315, 1073745152, 3365, 3367, 3373, 1073745200, // NOLINT 3431, 3439, 1073745280, 3478, 1073745312, 3494, 1073745320, 3502, // NOLINT 1073745328, 3510, 1073745336, 3518, 1073745344, 3526, 1073745352, 3534, // NOLINT 1073745360, 3542, 1073745368, 3550, 3631, 1073745925, 4103, 1073745953, // NOLINT 4137, 1073745969, 4149, 1073745976, 4156, 1073745985, 4246, 1073746077, // NOLINT 4255, 1073746081, 4346, 1073746172, 4351, 1073746181, 4397, 1073746225, // NOLINT 4494, 1073746336, 4538, 1073746416, 4607, 1073746944, 8191 }; // NOLINT static const uint16_t kLetterTable2Size = 4; static const int32_t kLetterTable2[4] = { 1073741824, 3509, 1073745408, 8191 }; // NOLINT static const uint16_t kLetterTable3Size = 2; static const int32_t kLetterTable3[2] = { 1073741824, 8191 }; // NOLINT static const uint16_t kLetterTable4Size = 2; static const int32_t kLetterTable4[2] = { 1073741824, 8140 }; // NOLINT static const uint16_t kLetterTable5Size = 100; static const int32_t kLetterTable5[100] = { 1073741824, 1164, 1073743056, 1277, 1073743104, 1548, 1073743376, 1567, // NOLINT 1073743402, 1579, 1073743424, 1646, 1073743487, 1693, 1073743520, 1775, // NOLINT 1073743639, 1823, 1073743650, 1928, 1073743755, 1934, 1073743760, 1965, // NOLINT 1073743792, 1969, 1073743863, 2049, 1073743875, 2053, 1073743879, 2058, // NOLINT 1073743884, 2082, 1073743936, 2163, 1073744002, 2227, 1073744114, 2295, // NOLINT 2299, 1073744138, 2341, 1073744176, 2374, 1073744224, 2428, 1073744260, // NOLINT 2482, 2511, 1073744352, 2532, 1073744358, 2543, 1073744378, 2558, // NOLINT 1073744384, 2600, 1073744448, 2626, 1073744452, 2635, 1073744480, 2678, // NOLINT 2682, 1073744510, 2735, 2737, 1073744565, 2742, 1073744569, 2749, // NOLINT 2752, 2754, 1073744603, 2781, 1073744608, 2794, 1073744626, 2804, // NOLINT 1073744641, 2822, 1073744649, 2830, 1073744657, 2838, 1073744672, 2854, // NOLINT 1073744680, 2862, 1073744688, 2906, 1073744732, 2911, 1073744740, 2917, // NOLINT 1073744832, 3042, 1073744896, 8191}; // NOLINT static const uint16_t kLetterTable6Size = 6; static const int32_t kLetterTable6[6] = { 1073741824, 6051, 1073747888, 6086, 1073747915, 6139 }; // NOLINT static const uint16_t kLetterTable7Size = 48; static const int32_t kLetterTable7[48] = { 1073748224, 6765, 1073748592, 6873, 1073748736, 6918, 1073748755, 6935, // NOLINT 6941, 1073748767, 6952, 1073748778, 6966, 1073748792, 6972, 6974, // NOLINT 1073748800, 6977, 1073748803, 6980, 1073748806, 7089, 1073748947, 7485, // NOLINT 1073749328, 7567, 1073749394, 7623, 1073749488, 7675, 1073749616, 7796, // NOLINT 1073749622, 7932, 1073749793, 7994, 1073749825, 8026, 1073749862, 8126, // NOLINT 1073749954, 8135, 1073749962, 8143, 1073749970, 8151, 1073749978, 8156 }; // NOLINT bool Letter::Is(uchar c) { int chunk_index = c >> 13; switch (chunk_index) { case 0: return LookupPredicate(kLetterTable0, kLetterTable0Size, c); case 1: return LookupPredicate(kLetterTable1, kLetterTable1Size, c); case 2: return LookupPredicate(kLetterTable2, kLetterTable2Size, c); case 3: return LookupPredicate(kLetterTable3, kLetterTable3Size, c); case 4: return LookupPredicate(kLetterTable4, kLetterTable4Size, c); case 5: return LookupPredicate(kLetterTable5, kLetterTable5Size, c); case 6: return LookupPredicate(kLetterTable6, kLetterTable6Size, c); case 7: return LookupPredicate(kLetterTable7, kLetterTable7Size, c); default: return false; } } // ID_Start: ((point.category in ['Lu', 'Ll', 'Lt', 'Lm', 'Lo', // 'Nl'] or 'Other_ID_Start' in point.properties) and ('Pattern_Syntax' not in // point.properties) and ('Pattern_White_Space' not in point.properties)) or // ('JS_ID_Start' in point.properties) static const uint16_t kID_StartTable0Size = 434; static const int32_t kID_StartTable0[434] = { 36, 1073741889, 90, 92, 95, 1073741921, 122, 170, // NOLINT 181, 186, 1073742016, 214, 1073742040, 246, 1073742072, 705, // NOLINT 1073742534, 721, 1073742560, 740, 748, 750, 1073742704, 884, // NOLINT 1073742710, 887, 1073742714, 893, 895, 902, 1073742728, 906, // NOLINT 908, 1073742734, 929, 1073742755, 1013, 1073742839, 1153, 1073742986, // NOLINT 1327, 1073743153, 1366, 1369, 1073743201, 1415, 1073743312, 1514, // NOLINT 1073743344, 1522, 1073743392, 1610, 1073743470, 1647, 1073743473, 1747, // NOLINT 1749, 1073743589, 1766, 1073743598, 1775, 1073743610, 1788, 1791, // NOLINT 1808, 1073743634, 1839, 1073743693, 1957, 1969, 1073743818, 2026, // NOLINT 1073743860, 2037, 2042, 1073743872, 2069, 2074, 2084, 2088, // NOLINT 1073743936, 2136, 1073744032, 2226, 1073744132, 2361, 2365, 2384, // NOLINT 1073744216, 2401, 1073744241, 2432, 1073744261, 2444, 1073744271, 2448, // NOLINT 1073744275, 2472, 1073744298, 2480, 2482, 1073744310, 2489, 2493, // NOLINT 2510, 1073744348, 2525, 1073744351, 2529, 1073744368, 2545, 1073744389, // NOLINT 2570, 1073744399, 2576, 1073744403, 2600, 1073744426, 2608, 1073744434, // NOLINT 2611, 1073744437, 2614, 1073744440, 2617, 1073744473, 2652, 2654, // NOLINT 1073744498, 2676, 1073744517, 2701, 1073744527, 2705, 1073744531, 2728, // NOLINT 1073744554, 2736, 1073744562, 2739, 1073744565, 2745, 2749, 2768, // NOLINT 1073744608, 2785, 1073744645, 2828, 1073744655, 2832, 1073744659, 2856, // NOLINT 1073744682, 2864, 1073744690, 2867, 1073744693, 2873, 2877, 1073744732, // NOLINT 2909, 1073744735, 2913, 2929, 2947, 1073744773, 2954, 1073744782, // NOLINT 2960, 1073744786, 2965, 1073744793, 2970, 2972, 1073744798, 2975, // NOLINT 1073744803, 2980, 1073744808, 2986, 1073744814, 3001, 3024, 1073744901, // NOLINT 3084, 1073744910, 3088, 1073744914, 3112, 1073744938, 3129, 3133, // NOLINT 1073744984, 3161, 1073744992, 3169, 1073745029, 3212, 1073745038, 3216, // NOLINT 1073745042, 3240, 1073745066, 3251, 1073745077, 3257, 3261, 3294, // NOLINT 1073745120, 3297, 1073745137, 3314, 1073745157, 3340, 1073745166, 3344, // NOLINT 1073745170, 3386, 3389, 3406, 1073745248, 3425, 1073745274, 3455, // NOLINT 1073745285, 3478, 1073745306, 3505, 1073745331, 3515, 3517, 1073745344, // NOLINT 3526, 1073745409, 3632, 1073745458, 3635, 1073745472, 3654, 1073745537, // NOLINT 3714, 3716, 1073745543, 3720, 3722, 3725, 1073745556, 3735, // NOLINT 1073745561, 3743, 1073745569, 3747, 3749, 3751, 1073745578, 3755, // NOLINT 1073745581, 3760, 1073745586, 3763, 3773, 1073745600, 3780, 3782, // NOLINT 1073745628, 3807, 3840, 1073745728, 3911, 1073745737, 3948, 1073745800, // NOLINT 3980, 1073745920, 4138, 4159, 1073746000, 4181, 1073746010, 4189, // NOLINT 4193, 1073746021, 4198, 1073746030, 4208, 1073746037, 4225, 4238, // NOLINT 1073746080, 4293, 4295, 4301, 1073746128, 4346, 1073746172, 4680, // NOLINT 1073746506, 4685, 1073746512, 4694, 4696, 1073746522, 4701, 1073746528, // NOLINT 4744, 1073746570, 4749, 1073746576, 4784, 1073746610, 4789, 1073746616, // NOLINT 4798, 4800, 1073746626, 4805, 1073746632, 4822, 1073746648, 4880, // NOLINT 1073746706, 4885, 1073746712, 4954, 1073746816, 5007, 1073746848, 5108, // NOLINT 1073746945, 5740, 1073747567, 5759, 1073747585, 5786, 1073747616, 5866, // NOLINT 1073747694, 5880, 1073747712, 5900, 1073747726, 5905, 1073747744, 5937, // NOLINT 1073747776, 5969, 1073747808, 5996, 1073747822, 6000, 1073747840, 6067, // NOLINT 6103, 6108, 1073748000, 6263, 1073748096, 6312, 6314, 1073748144, // NOLINT 6389, 1073748224, 6430, 1073748304, 6509, 1073748336, 6516, 1073748352, // NOLINT 6571, 1073748417, 6599, 1073748480, 6678, 1073748512, 6740, 6823, // NOLINT 1073748741, 6963, 1073748805, 6987, 1073748867, 7072, 1073748910, 7087, // NOLINT 1073748922, 7141, 1073748992, 7203, 1073749069, 7247, 1073749082, 7293, // NOLINT 1073749225, 7404, 1073749230, 7409, 1073749237, 7414, 1073749248, 7615, // NOLINT 1073749504, 7957, 1073749784, 7965, 1073749792, 8005, 1073749832, 8013, // NOLINT 1073749840, 8023, 8025, 8027, 8029, 1073749855, 8061, 1073749888, // NOLINT 8116, 1073749942, 8124, 8126, 1073749954, 8132, 1073749958, 8140, // NOLINT 1073749968, 8147, 1073749974, 8155, 1073749984, 8172, 1073750002, 8180, // NOLINT 1073750006, 8188}; // NOLINT static const uint16_t kID_StartTable1Size = 84; static const int32_t kID_StartTable1[84] = { 113, 127, 1073741968, 156, 258, 263, 1073742090, 275, // NOLINT 277, 1073742104, 285, 292, 294, 296, 1073742122, 313, // NOLINT 1073742140, 319, 1073742149, 329, 334, 1073742176, 392, 1073744896, // NOLINT 3118, 1073744944, 3166, 1073744992, 3300, 1073745131, 3310, 1073745138, // NOLINT 3315, 1073745152, 3365, 3367, 3373, 1073745200, 3431, 3439, // NOLINT 1073745280, 3478, 1073745312, 3494, 1073745320, 3502, 1073745328, 3510, // NOLINT 1073745336, 3518, 1073745344, 3526, 1073745352, 3534, 1073745360, 3542, // NOLINT 1073745368, 3550, 1073745925, 4103, 1073745953, 4137, 1073745969, 4149, // NOLINT 1073745976, 4156, 1073745985, 4246, 1073746075, 4255, 1073746081, 4346, // NOLINT 1073746172, 4351, 1073746181, 4397, 1073746225, 4494, 1073746336, 4538, // NOLINT 1073746416, 4607, 1073746944, 8191}; // NOLINT static const uint16_t kID_StartTable2Size = 4; static const int32_t kID_StartTable2[4] = {1073741824, 3509, 1073745408, 8191}; // NOLINT static const uint16_t kID_StartTable3Size = 2; static const int32_t kID_StartTable3[2] = {1073741824, 8191}; // NOLINT static const uint16_t kID_StartTable4Size = 2; static const int32_t kID_StartTable4[2] = {1073741824, 8140}; // NOLINT static const uint16_t kID_StartTable5Size = 100; static const int32_t kID_StartTable5[100] = { 1073741824, 1164, 1073743056, 1277, 1073743104, 1548, 1073743376, 1567, // NOLINT 1073743402, 1579, 1073743424, 1646, 1073743487, 1693, 1073743520, 1775, // NOLINT 1073743639, 1823, 1073743650, 1928, 1073743755, 1934, 1073743760, 1965, // NOLINT 1073743792, 1969, 1073743863, 2049, 1073743875, 2053, 1073743879, 2058, // NOLINT 1073743884, 2082, 1073743936, 2163, 1073744002, 2227, 1073744114, 2295, // NOLINT 2299, 1073744138, 2341, 1073744176, 2374, 1073744224, 2428, 1073744260, // NOLINT 2482, 2511, 1073744352, 2532, 1073744358, 2543, 1073744378, 2558, // NOLINT 1073744384, 2600, 1073744448, 2626, 1073744452, 2635, 1073744480, 2678, // NOLINT 2682, 1073744510, 2735, 2737, 1073744565, 2742, 1073744569, 2749, // NOLINT 2752, 2754, 1073744603, 2781, 1073744608, 2794, 1073744626, 2804, // NOLINT 1073744641, 2822, 1073744649, 2830, 1073744657, 2838, 1073744672, 2854, // NOLINT 1073744680, 2862, 1073744688, 2906, 1073744732, 2911, 1073744740, 2917, // NOLINT 1073744832, 3042, 1073744896, 8191}; // NOLINT static const uint16_t kID_StartTable6Size = 6; static const int32_t kID_StartTable6[6] = {1073741824, 6051, 1073747888, 6086, 1073747915, 6139}; // NOLINT static const uint16_t kID_StartTable7Size = 48; static const int32_t kID_StartTable7[48] = { 1073748224, 6765, 1073748592, 6873, 1073748736, 6918, 1073748755, 6935, // NOLINT 6941, 1073748767, 6952, 1073748778, 6966, 1073748792, 6972, 6974, // NOLINT 1073748800, 6977, 1073748803, 6980, 1073748806, 7089, 1073748947, 7485, // NOLINT 1073749328, 7567, 1073749394, 7623, 1073749488, 7675, 1073749616, 7796, // NOLINT 1073749622, 7932, 1073749793, 7994, 1073749825, 8026, 1073749862, 8126, // NOLINT 1073749954, 8135, 1073749962, 8143, 1073749970, 8151, 1073749978, 8156}; // NOLINT bool ID_Start::Is(uchar c) { int chunk_index = c >> 13; switch (chunk_index) { case 0: return LookupPredicate(kID_StartTable0, kID_StartTable0Size, c); case 1: return LookupPredicate(kID_StartTable1, kID_StartTable1Size, c); case 2: return LookupPredicate(kID_StartTable2, kID_StartTable2Size, c); case 3: return LookupPredicate(kID_StartTable3, kID_StartTable3Size, c); case 4: return LookupPredicate(kID_StartTable4, kID_StartTable4Size, c); case 5: return LookupPredicate(kID_StartTable5, kID_StartTable5Size, c); case 6: return LookupPredicate(kID_StartTable6, kID_StartTable6Size, c); case 7: return LookupPredicate(kID_StartTable7, kID_StartTable7Size, c); default: return false; } } // ID_Continue: point.category in ['Nd', 'Mn', 'Mc', 'Pc'] or // 'Other_ID_Continue' in point.properties or 'JS_ID_Continue' in // point.properties static const uint16_t kID_ContinueTable0Size = 315; static const int32_t kID_ContinueTable0[315] = { 1073741872, 57, 95, 183, 1073742592, 879, 903, 1073742979, // NOLINT 1159, 1073743249, 1469, 1471, 1073743297, 1474, 1073743300, 1477, // NOLINT 1479, 1073743376, 1562, 1073743435, 1641, 1648, 1073743574, 1756, // NOLINT 1073743583, 1764, 1073743591, 1768, 1073743594, 1773, 1073743600, 1785, // NOLINT 1809, 1073743664, 1866, 1073743782, 1968, 1073743808, 1993, 1073743851, // NOLINT 2035, 1073743894, 2073, 1073743899, 2083, 1073743909, 2087, 1073743913, // NOLINT 2093, 1073743961, 2139, 1073744100, 2307, 1073744186, 2364, 1073744190, // NOLINT 2383, 1073744209, 2391, 1073744226, 2403, 1073744230, 2415, 1073744257, // NOLINT 2435, 2492, 1073744318, 2500, 1073744327, 2504, 1073744331, 2509, // NOLINT 2519, 1073744354, 2531, 1073744358, 2543, 1073744385, 2563, 2620, // NOLINT 1073744446, 2626, 1073744455, 2632, 1073744459, 2637, 2641, 1073744486, // NOLINT 2673, 2677, 1073744513, 2691, 2748, 1073744574, 2757, 1073744583, // NOLINT 2761, 1073744587, 2765, 1073744610, 2787, 1073744614, 2799, 1073744641, // NOLINT 2819, 2876, 1073744702, 2884, 1073744711, 2888, 1073744715, 2893, // NOLINT 1073744726, 2903, 1073744738, 2915, 1073744742, 2927, 2946, 1073744830, // NOLINT 3010, 1073744838, 3016, 1073744842, 3021, 3031, 1073744870, 3055, // NOLINT 1073744896, 3075, 1073744958, 3140, 1073744966, 3144, 1073744970, 3149, // NOLINT 1073744981, 3158, 1073744994, 3171, 1073744998, 3183, 1073745025, 3203, // NOLINT 3260, 1073745086, 3268, 1073745094, 3272, 1073745098, 3277, 1073745109, // NOLINT 3286, 1073745122, 3299, 1073745126, 3311, 1073745153, 3331, 1073745214, // NOLINT 3396, 1073745222, 3400, 1073745226, 3405, 3415, 1073745250, 3427, // NOLINT 1073745254, 3439, 1073745282, 3459, 3530, 1073745359, 3540, 3542, // NOLINT 1073745368, 3551, 1073745382, 3567, 1073745394, 3571, 3633, 1073745460, // NOLINT 3642, 1073745479, 3662, 1073745488, 3673, 3761, 1073745588, 3769, // NOLINT 1073745595, 3772, 1073745608, 3789, 1073745616, 3801, 1073745688, 3865, // NOLINT 1073745696, 3881, 3893, 3895, 3897, 1073745726, 3903, 1073745777, // NOLINT 3972, 1073745798, 3975, 1073745805, 3991, 1073745817, 4028, 4038, // NOLINT 1073745963, 4158, 1073745984, 4169, 1073746006, 4185, 1073746014, 4192, // NOLINT 1073746018, 4196, 1073746023, 4205, 1073746033, 4212, 1073746050, 4237, // NOLINT 1073746063, 4253, 1073746781, 4959, 1073746793, 4977, 1073747730, 5908, // NOLINT 1073747762, 5940, 1073747794, 5971, 1073747826, 6003, 1073747892, 6099, // NOLINT 6109, 1073747936, 6121, 1073747979, 6157, 1073747984, 6169, 6313, // NOLINT 1073748256, 6443, 1073748272, 6459, 1073748294, 6479, 1073748400, 6592, // NOLINT 1073748424, 6601, 1073748432, 6618, 1073748503, 6683, 1073748565, 6750, // NOLINT 1073748576, 6780, 1073748607, 6793, 1073748624, 6809, 1073748656, 6845, // NOLINT 1073748736, 6916, 1073748788, 6980, 1073748816, 7001, 1073748843, 7027, // NOLINT 1073748864, 7042, 1073748897, 7085, 1073748912, 7097, 1073748966, 7155, // NOLINT 1073749028, 7223, 1073749056, 7241, 1073749072, 7257, 1073749200, 7378, // NOLINT 1073749204, 7400, 7405, 1073749234, 7412, 1073749240, 7417, 1073749440, // NOLINT 7669, 1073749500, 7679}; // NOLINT static const uint16_t kID_ContinueTable1Size = 19; static const int32_t kID_ContinueTable1[19] = { 1073741836, 13, 1073741887, 64, 84, 1073742032, 220, 225, // NOLINT 1073742053, 240, 1073745135, 3313, 3455, 1073745376, 3583, 1073745962, // NOLINT 4143, 1073746073, 4250}; // NOLINT static const uint16_t kID_ContinueTable5Size = 63; static const int32_t kID_ContinueTable5[63] = { 1073743392, 1577, 1647, 1073743476, 1661, 1695, 1073743600, 1777, // NOLINT 2050, 2054, 2059, 1073743907, 2087, 1073744000, 2177, 1073744052, // NOLINT 2244, 1073744080, 2265, 1073744096, 2289, 1073744128, 2313, 1073744166, // NOLINT 2349, 1073744199, 2387, 1073744256, 2435, 1073744307, 2496, 1073744336, // NOLINT 2521, 2533, 1073744368, 2553, 1073744425, 2614, 2627, 1073744460, // NOLINT 2637, 1073744464, 2649, 1073744507, 2685, 2736, 1073744562, 2740, // NOLINT 1073744567, 2744, 1073744574, 2751, 2753, 1073744619, 2799, 1073744629, // NOLINT 2806, 1073744867, 3050, 1073744876, 3053, 1073744880, 3065}; // NOLINT static const uint16_t kID_ContinueTable7Size = 12; static const int32_t kID_ContinueTable7[12] = { 6942, 1073749504, 7695, 1073749536, 7725, 1073749555, 7732, 1073749581, // NOLINT 7759, 1073749776, 7961, 7999}; // NOLINT bool ID_Continue::Is(uchar c) { int chunk_index = c >> 13; switch (chunk_index) { case 0: return LookupPredicate(kID_ContinueTable0, kID_ContinueTable0Size, c); case 1: return LookupPredicate(kID_ContinueTable1, kID_ContinueTable1Size, c); case 5: return LookupPredicate(kID_ContinueTable5, kID_ContinueTable5Size, c); case 7: return LookupPredicate(kID_ContinueTable7, kID_ContinueTable7Size, c); default: return false; } } // WhiteSpace: (point.category == 'Zs') or ('JS_White_Space' in // point.properties) static const uint16_t kWhiteSpaceTable0Size = 7; static const int32_t kWhiteSpaceTable0[7] = {9, 1073741835, 12, 32, 160, 5760, 6158}; // NOLINT static const uint16_t kWhiteSpaceTable1Size = 5; static const int32_t kWhiteSpaceTable1[5] = { 1073741824, 10, 47, 95, 4096 }; // NOLINT static const uint16_t kWhiteSpaceTable7Size = 1; static const int32_t kWhiteSpaceTable7[1] = {7935}; // NOLINT bool WhiteSpace::Is(uchar c) { int chunk_index = c >> 13; switch (chunk_index) { case 0: return LookupPredicate(kWhiteSpaceTable0, kWhiteSpaceTable0Size, c); case 1: return LookupPredicate(kWhiteSpaceTable1, kWhiteSpaceTable1Size, c); case 7: return LookupPredicate(kWhiteSpaceTable7, kWhiteSpaceTable7Size, c); default: return false; } } // LineTerminator: 'JS_Line_Terminator' in point.properties static const uint16_t kLineTerminatorTable0Size = 2; static const int32_t kLineTerminatorTable0[2] = { 10, 13 }; // NOLINT static const uint16_t kLineTerminatorTable1Size = 2; static const int32_t kLineTerminatorTable1[2] = { 1073741864, 41 }; // NOLINT bool LineTerminator::Is(uchar c) { int chunk_index = c >> 13; switch (chunk_index) { case 0: return LookupPredicate(kLineTerminatorTable0, kLineTerminatorTable0Size, c); case 1: return LookupPredicate(kLineTerminatorTable1, kLineTerminatorTable1Size, c); default: return false; } } static const MultiCharacterSpecialCase<2> kToLowercaseMultiStrings0[2] = { // NOLINT {{105, 775}}, {{kSentinel}} }; // NOLINT static const uint16_t kToLowercaseTable0Size = 488; // NOLINT static const int32_t kToLowercaseTable0[976] = { 1073741889, 128, 90, 128, 1073742016, 128, 214, 128, 1073742040, 128, 222, 128, 256, 4, 258, 4, // NOLINT 260, 4, 262, 4, 264, 4, 266, 4, 268, 4, 270, 4, 272, 4, 274, 4, // NOLINT 276, 4, 278, 4, 280, 4, 282, 4, 284, 4, 286, 4, 288, 4, 290, 4, // NOLINT 292, 4, 294, 4, 296, 4, 298, 4, 300, 4, 302, 4, 304, 1, 306, 4, // NOLINT 308, 4, 310, 4, 313, 4, 315, 4, 317, 4, 319, 4, 321, 4, 323, 4, // NOLINT 325, 4, 327, 4, 330, 4, 332, 4, 334, 4, 336, 4, 338, 4, 340, 4, // NOLINT 342, 4, 344, 4, 346, 4, 348, 4, 350, 4, 352, 4, 354, 4, 356, 4, // NOLINT 358, 4, 360, 4, 362, 4, 364, 4, 366, 4, 368, 4, 370, 4, 372, 4, // NOLINT 374, 4, 376, -484, 377, 4, 379, 4, 381, 4, 385, 840, 386, 4, 388, 4, // NOLINT 390, 824, 391, 4, 1073742217, 820, 394, 820, 395, 4, 398, 316, 399, 808, 400, 812, // NOLINT 401, 4, 403, 820, 404, 828, 406, 844, 407, 836, 408, 4, 412, 844, 413, 852, // NOLINT 415, 856, 416, 4, 418, 4, 420, 4, 422, 872, 423, 4, 425, 872, 428, 4, // NOLINT 430, 872, 431, 4, 1073742257, 868, 434, 868, 435, 4, 437, 4, 439, 876, 440, 4, // NOLINT 444, 4, 452, 8, 453, 4, 455, 8, 456, 4, 458, 8, 459, 4, 461, 4, // NOLINT 463, 4, 465, 4, 467, 4, 469, 4, 471, 4, 473, 4, 475, 4, 478, 4, // NOLINT 480, 4, 482, 4, 484, 4, 486, 4, 488, 4, 490, 4, 492, 4, 494, 4, // NOLINT 497, 8, 498, 4, 500, 4, 502, -388, 503, -224, 504, 4, 506, 4, 508, 4, // NOLINT 510, 4, 512, 4, 514, 4, 516, 4, 518, 4, 520, 4, 522, 4, 524, 4, // NOLINT 526, 4, 528, 4, 530, 4, 532, 4, 534, 4, 536, 4, 538, 4, 540, 4, // NOLINT 542, 4, 544, -520, 546, 4, 548, 4, 550, 4, 552, 4, 554, 4, 556, 4, // NOLINT 558, 4, 560, 4, 562, 4, 570, 43180, 571, 4, 573, -652, 574, 43168, 577, 4, // NOLINT 579, -780, 580, 276, 581, 284, 582, 4, 584, 4, 586, 4, 588, 4, 590, 4, // NOLINT 880, 4, 882, 4, 886, 4, 895, 464, 902, 152, 1073742728, 148, 906, 148, 908, 256, // NOLINT 1073742734, 252, 911, 252, 1073742737, 128, 929, 128, 931, 6, 1073742756, 128, 939, 128, 975, 32, // NOLINT 984, 4, 986, 4, 988, 4, 990, 4, 992, 4, 994, 4, 996, 4, 998, 4, // NOLINT 1000, 4, 1002, 4, 1004, 4, 1006, 4, 1012, -240, 1015, 4, 1017, -28, 1018, 4, // NOLINT 1073742845, -520, 1023, -520, 1073742848, 320, 1039, 320, 1073742864, 128, 1071, 128, 1120, 4, 1122, 4, // NOLINT 1124, 4, 1126, 4, 1128, 4, 1130, 4, 1132, 4, 1134, 4, 1136, 4, 1138, 4, // NOLINT 1140, 4, 1142, 4, 1144, 4, 1146, 4, 1148, 4, 1150, 4, 1152, 4, 1162, 4, // NOLINT 1164, 4, 1166, 4, 1168, 4, 1170, 4, 1172, 4, 1174, 4, 1176, 4, 1178, 4, // NOLINT 1180, 4, 1182, 4, 1184, 4, 1186, 4, 1188, 4, 1190, 4, 1192, 4, 1194, 4, // NOLINT 1196, 4, 1198, 4, 1200, 4, 1202, 4, 1204, 4, 1206, 4, 1208, 4, 1210, 4, // NOLINT 1212, 4, 1214, 4, 1216, 60, 1217, 4, 1219, 4, 1221, 4, 1223, 4, 1225, 4, // NOLINT 1227, 4, 1229, 4, 1232, 4, 1234, 4, 1236, 4, 1238, 4, 1240, 4, 1242, 4, // NOLINT 1244, 4, 1246, 4, 1248, 4, 1250, 4, 1252, 4, 1254, 4, 1256, 4, 1258, 4, // NOLINT 1260, 4, 1262, 4, 1264, 4, 1266, 4, 1268, 4, 1270, 4, 1272, 4, 1274, 4, // NOLINT 1276, 4, 1278, 4, 1280, 4, 1282, 4, 1284, 4, 1286, 4, 1288, 4, 1290, 4, // NOLINT 1292, 4, 1294, 4, 1296, 4, 1298, 4, 1300, 4, 1302, 4, 1304, 4, 1306, 4, // NOLINT 1308, 4, 1310, 4, 1312, 4, 1314, 4, 1316, 4, 1318, 4, 1320, 4, 1322, 4, // NOLINT 1324, 4, 1326, 4, 1073743153, 192, 1366, 192, 1073746080, 29056, 4293, 29056, 4295, 29056, 4301, 29056, // NOLINT 7680, 4, 7682, 4, 7684, 4, 7686, 4, 7688, 4, 7690, 4, 7692, 4, 7694, 4, // NOLINT 7696, 4, 7698, 4, 7700, 4, 7702, 4, 7704, 4, 7706, 4, 7708, 4, 7710, 4, // NOLINT 7712, 4, 7714, 4, 7716, 4, 7718, 4, 7720, 4, 7722, 4, 7724, 4, 7726, 4, // NOLINT 7728, 4, 7730, 4, 7732, 4, 7734, 4, 7736, 4, 7738, 4, 7740, 4, 7742, 4, // NOLINT 7744, 4, 7746, 4, 7748, 4, 7750, 4, 7752, 4, 7754, 4, 7756, 4, 7758, 4, // NOLINT 7760, 4, 7762, 4, 7764, 4, 7766, 4, 7768, 4, 7770, 4, 7772, 4, 7774, 4, // NOLINT 7776, 4, 7778, 4, 7780, 4, 7782, 4, 7784, 4, 7786, 4, 7788, 4, 7790, 4, // NOLINT 7792, 4, 7794, 4, 7796, 4, 7798, 4, 7800, 4, 7802, 4, 7804, 4, 7806, 4, // NOLINT 7808, 4, 7810, 4, 7812, 4, 7814, 4, 7816, 4, 7818, 4, 7820, 4, 7822, 4, // NOLINT 7824, 4, 7826, 4, 7828, 4, 7838, -30460, 7840, 4, 7842, 4, 7844, 4, 7846, 4, // NOLINT 7848, 4, 7850, 4, 7852, 4, 7854, 4, 7856, 4, 7858, 4, 7860, 4, 7862, 4, // NOLINT 7864, 4, 7866, 4, 7868, 4, 7870, 4, 7872, 4, 7874, 4, 7876, 4, 7878, 4, // NOLINT 7880, 4, 7882, 4, 7884, 4, 7886, 4, 7888, 4, 7890, 4, 7892, 4, 7894, 4, // NOLINT 7896, 4, 7898, 4, 7900, 4, 7902, 4, 7904, 4, 7906, 4, 7908, 4, 7910, 4, // NOLINT 7912, 4, 7914, 4, 7916, 4, 7918, 4, 7920, 4, 7922, 4, 7924, 4, 7926, 4, // NOLINT 7928, 4, 7930, 4, 7932, 4, 7934, 4, 1073749768, -32, 7951, -32, 1073749784, -32, 7965, -32, // NOLINT 1073749800, -32, 7983, -32, 1073749816, -32, 7999, -32, 1073749832, -32, 8013, -32, 8025, -32, 8027, -32, // NOLINT 8029, -32, 8031, -32, 1073749864, -32, 8047, -32, 1073749896, -32, 8079, -32, 1073749912, -32, 8095, -32, // NOLINT 1073749928, -32, 8111, -32, 1073749944, -32, 8121, -32, 1073749946, -296, 8123, -296, 8124, -36, 1073749960, -344, // NOLINT 8139, -344, 8140, -36, 1073749976, -32, 8153, -32, 1073749978, -400, 8155, -400, 1073749992, -32, 8169, -32, // NOLINT 1073749994, -448, 8171, -448, 8172, -28, 1073750008, -512, 8185, -512, 1073750010, -504, 8187, -504, 8188, -36}; // NOLINT static const uint16_t kToLowercaseMultiStrings0Size = 2; // NOLINT static const MultiCharacterSpecialCase<1> kToLowercaseMultiStrings1[1] = { // NOLINT {{kSentinel}} }; // NOLINT static const uint16_t kToLowercaseTable1Size = 79; // NOLINT static const int32_t kToLowercaseTable1[158] = { 294, -30068, 298, -33532, 299, -33048, 306, 112, 1073742176, 64, 367, 64, 387, 4, 1073743030, 104, // NOLINT 1231, 104, 1073744896, 192, 3118, 192, 3168, 4, 3170, -42972, 3171, -15256, 3172, -42908, 3175, 4, // NOLINT 3177, 4, 3179, 4, 3181, -43120, 3182, -42996, 3183, -43132, 3184, -43128, 3186, 4, 3189, 4, // NOLINT 1073745022, -43260, 3199, -43260, 3200, 4, 3202, 4, 3204, 4, 3206, 4, 3208, 4, 3210, 4, // NOLINT 3212, 4, 3214, 4, 3216, 4, 3218, 4, 3220, 4, 3222, 4, 3224, 4, 3226, 4, // NOLINT 3228, 4, 3230, 4, 3232, 4, 3234, 4, 3236, 4, 3238, 4, 3240, 4, 3242, 4, // NOLINT 3244, 4, 3246, 4, 3248, 4, 3250, 4, 3252, 4, 3254, 4, 3256, 4, 3258, 4, // NOLINT 3260, 4, 3262, 4, 3264, 4, 3266, 4, 3268, 4, 3270, 4, 3272, 4, 3274, 4, // NOLINT 3276, 4, 3278, 4, 3280, 4, 3282, 4, 3284, 4, 3286, 4, 3288, 4, 3290, 4, // NOLINT 3292, 4, 3294, 4, 3296, 4, 3298, 4, 3307, 4, 3309, 4, 3314, 4 }; // NOLINT static const uint16_t kToLowercaseMultiStrings1Size = 1; // NOLINT static const MultiCharacterSpecialCase<1> kToLowercaseMultiStrings5[1] = { // NOLINT {{kSentinel}} }; // NOLINT static const uint16_t kToLowercaseTable5Size = 103; // NOLINT static const int32_t kToLowercaseTable5[206] = { 1600, 4, 1602, 4, 1604, 4, 1606, 4, 1608, 4, 1610, 4, 1612, 4, 1614, 4, // NOLINT 1616, 4, 1618, 4, 1620, 4, 1622, 4, 1624, 4, 1626, 4, 1628, 4, 1630, 4, // NOLINT 1632, 4, 1634, 4, 1636, 4, 1638, 4, 1640, 4, 1642, 4, 1644, 4, 1664, 4, // NOLINT 1666, 4, 1668, 4, 1670, 4, 1672, 4, 1674, 4, 1676, 4, 1678, 4, 1680, 4, // NOLINT 1682, 4, 1684, 4, 1686, 4, 1688, 4, 1690, 4, 1826, 4, 1828, 4, 1830, 4, // NOLINT 1832, 4, 1834, 4, 1836, 4, 1838, 4, 1842, 4, 1844, 4, 1846, 4, 1848, 4, // NOLINT 1850, 4, 1852, 4, 1854, 4, 1856, 4, 1858, 4, 1860, 4, 1862, 4, 1864, 4, // NOLINT 1866, 4, 1868, 4, 1870, 4, 1872, 4, 1874, 4, 1876, 4, 1878, 4, 1880, 4, // NOLINT 1882, 4, 1884, 4, 1886, 4, 1888, 4, 1890, 4, 1892, 4, 1894, 4, 1896, 4, // NOLINT 1898, 4, 1900, 4, 1902, 4, 1913, 4, 1915, 4, 1917, -141328, 1918, 4, 1920, 4, // NOLINT 1922, 4, 1924, 4, 1926, 4, 1931, 4, 1933, -169120, 1936, 4, 1938, 4, 1942, 4, // NOLINT 1944, 4, 1946, 4, 1948, 4, 1950, 4, 1952, 4, 1954, 4, 1956, 4, 1958, 4, // NOLINT 1960, 4, 1962, -169232, 1963, -169276, 1964, -169260, 1965, -169220, 1968, -169032, 1969, -169128}; // NOLINT static const uint16_t kToLowercaseMultiStrings5Size = 1; // NOLINT static const MultiCharacterSpecialCase<1> kToLowercaseMultiStrings7[1] = { // NOLINT {{kSentinel}} }; // NOLINT static const uint16_t kToLowercaseTable7Size = 2; // NOLINT static const int32_t kToLowercaseTable7[4] = { 1073749793, 128, 7994, 128 }; // NOLINT static const uint16_t kToLowercaseMultiStrings7Size = 1; // NOLINT int ToLowercase::Convert(uchar c, uchar n, uchar* result, bool* allow_caching_ptr) { int chunk_index = c >> 13; switch (chunk_index) { case 0: return LookupMapping(kToLowercaseTable0, kToLowercaseTable0Size, kToLowercaseMultiStrings0, c, n, result, allow_caching_ptr); case 1: return LookupMapping(kToLowercaseTable1, kToLowercaseTable1Size, kToLowercaseMultiStrings1, c, n, result, allow_caching_ptr); case 5: return LookupMapping(kToLowercaseTable5, kToLowercaseTable5Size, kToLowercaseMultiStrings5, c, n, result, allow_caching_ptr); case 7: return LookupMapping(kToLowercaseTable7, kToLowercaseTable7Size, kToLowercaseMultiStrings7, c, n, result, allow_caching_ptr); default: return 0; } } static const MultiCharacterSpecialCase<3> kToUppercaseMultiStrings0[62] = { // NOLINT {{83, 83, kSentinel}}, {{700, 78, kSentinel}}, {{74, 780, kSentinel}}, {{921, 776, 769}}, // NOLINT {{933, 776, 769}}, {{1333, 1362, kSentinel}}, {{72, 817, kSentinel}}, {{84, 776, kSentinel}}, // NOLINT {{87, 778, kSentinel}}, {{89, 778, kSentinel}}, {{65, 702, kSentinel}}, {{933, 787, kSentinel}}, // NOLINT {{933, 787, 768}}, {{933, 787, 769}}, {{933, 787, 834}}, {{7944, 921, kSentinel}}, // NOLINT {{7945, 921, kSentinel}}, {{7946, 921, kSentinel}}, {{7947, 921, kSentinel}}, {{7948, 921, kSentinel}}, // NOLINT {{7949, 921, kSentinel}}, {{7950, 921, kSentinel}}, {{7951, 921, kSentinel}}, {{7976, 921, kSentinel}}, // NOLINT {{7977, 921, kSentinel}}, {{7978, 921, kSentinel}}, {{7979, 921, kSentinel}}, {{7980, 921, kSentinel}}, // NOLINT {{7981, 921, kSentinel}}, {{7982, 921, kSentinel}}, {{7983, 921, kSentinel}}, {{8040, 921, kSentinel}}, // NOLINT {{8041, 921, kSentinel}}, {{8042, 921, kSentinel}}, {{8043, 921, kSentinel}}, {{8044, 921, kSentinel}}, // NOLINT {{8045, 921, kSentinel}}, {{8046, 921, kSentinel}}, {{8047, 921, kSentinel}}, {{8122, 921, kSentinel}}, // NOLINT {{913, 921, kSentinel}}, {{902, 921, kSentinel}}, {{913, 834, kSentinel}}, {{913, 834, 921}}, // NOLINT {{8138, 921, kSentinel}}, {{919, 921, kSentinel}}, {{905, 921, kSentinel}}, {{919, 834, kSentinel}}, // NOLINT {{919, 834, 921}}, {{921, 776, 768}}, {{921, 834, kSentinel}}, {{921, 776, 834}}, // NOLINT {{933, 776, 768}}, {{929, 787, kSentinel}}, {{933, 834, kSentinel}}, {{933, 776, 834}}, // NOLINT {{8186, 921, kSentinel}}, {{937, 921, kSentinel}}, {{911, 921, kSentinel}}, {{937, 834, kSentinel}}, // NOLINT {{937, 834, 921}}, {{kSentinel}} }; // NOLINT static const uint16_t kToUppercaseTable0Size = 590; // NOLINT static const int32_t kToUppercaseTable0[1180] = { 1073741921, -128, 122, -128, 181, 2972, 223, 1, 1073742048, -128, 246, -128, 1073742072, -128, 254, -128, // NOLINT 255, 484, 257, -4, 259, -4, 261, -4, 263, -4, 265, -4, 267, -4, 269, -4, // NOLINT 271, -4, 273, -4, 275, -4, 277, -4, 279, -4, 281, -4, 283, -4, 285, -4, // NOLINT 287, -4, 289, -4, 291, -4, 293, -4, 295, -4, 297, -4, 299, -4, 301, -4, // NOLINT 303, -4, 305, -928, 307, -4, 309, -4, 311, -4, 314, -4, 316, -4, 318, -4, // NOLINT 320, -4, 322, -4, 324, -4, 326, -4, 328, -4, 329, 5, 331, -4, 333, -4, // NOLINT 335, -4, 337, -4, 339, -4, 341, -4, 343, -4, 345, -4, 347, -4, 349, -4, // NOLINT 351, -4, 353, -4, 355, -4, 357, -4, 359, -4, 361, -4, 363, -4, 365, -4, // NOLINT 367, -4, 369, -4, 371, -4, 373, -4, 375, -4, 378, -4, 380, -4, 382, -4, // NOLINT 383, -1200, 384, 780, 387, -4, 389, -4, 392, -4, 396, -4, 402, -4, 405, 388, // NOLINT 409, -4, 410, 652, 414, 520, 417, -4, 419, -4, 421, -4, 424, -4, 429, -4, // NOLINT 432, -4, 436, -4, 438, -4, 441, -4, 445, -4, 447, 224, 453, -4, 454, -8, // NOLINT 456, -4, 457, -8, 459, -4, 460, -8, 462, -4, 464, -4, 466, -4, 468, -4, // NOLINT 470, -4, 472, -4, 474, -4, 476, -4, 477, -316, 479, -4, 481, -4, 483, -4, // NOLINT 485, -4, 487, -4, 489, -4, 491, -4, 493, -4, 495, -4, 496, 9, 498, -4, // NOLINT 499, -8, 501, -4, 505, -4, 507, -4, 509, -4, 511, -4, 513, -4, 515, -4, // NOLINT 517, -4, 519, -4, 521, -4, 523, -4, 525, -4, 527, -4, 529, -4, 531, -4, // NOLINT 533, -4, 535, -4, 537, -4, 539, -4, 541, -4, 543, -4, 547, -4, 549, -4, // NOLINT 551, -4, 553, -4, 555, -4, 557, -4, 559, -4, 561, -4, 563, -4, 572, -4, // NOLINT 1073742399, 43260, 576, 43260, 578, -4, 583, -4, 585, -4, 587, -4, 589, -4, 591, -4, // NOLINT 592, 43132, 593, 43120, 594, 43128, 595, -840, 596, -824, 1073742422, -820, 599, -820, 601, -808, // NOLINT 603, -812, 604, 169276, 608, -820, 609, 169260, 611, -828, 613, 169120, 614, 169232, 616, -836, // NOLINT 617, -844, 619, 42972, 620, 169220, 623, -844, 625, 42996, 626, -852, 629, -856, 637, 42908, // NOLINT 640, -872, 643, -872, 647, 169128, 648, -872, 649, -276, 1073742474, -868, 651, -868, 652, -284, // NOLINT 658, -876, 670, 169032, 837, 336, 881, -4, 883, -4, 887, -4, 1073742715, 520, 893, 520, // NOLINT 912, 13, 940, -152, 1073742765, -148, 943, -148, 944, 17, 1073742769, -128, 961, -128, 962, -124, // NOLINT 1073742787, -128, 971, -128, 972, -256, 1073742797, -252, 974, -252, 976, -248, 977, -228, 981, -188, // NOLINT 982, -216, 983, -32, 985, -4, 987, -4, 989, -4, 991, -4, 993, -4, 995, -4, // NOLINT 997, -4, 999, -4, 1001, -4, 1003, -4, 1005, -4, 1007, -4, 1008, -344, 1009, -320, // NOLINT 1010, 28, 1011, -464, 1013, -384, 1016, -4, 1019, -4, 1073742896, -128, 1103, -128, 1073742928, -320, // NOLINT 1119, -320, 1121, -4, 1123, -4, 1125, -4, 1127, -4, 1129, -4, 1131, -4, 1133, -4, // NOLINT 1135, -4, 1137, -4, 1139, -4, 1141, -4, 1143, -4, 1145, -4, 1147, -4, 1149, -4, // NOLINT 1151, -4, 1153, -4, 1163, -4, 1165, -4, 1167, -4, 1169, -4, 1171, -4, 1173, -4, // NOLINT 1175, -4, 1177, -4, 1179, -4, 1181, -4, 1183, -4, 1185, -4, 1187, -4, 1189, -4, // NOLINT 1191, -4, 1193, -4, 1195, -4, 1197, -4, 1199, -4, 1201, -4, 1203, -4, 1205, -4, // NOLINT 1207, -4, 1209, -4, 1211, -4, 1213, -4, 1215, -4, 1218, -4, 1220, -4, 1222, -4, // NOLINT 1224, -4, 1226, -4, 1228, -4, 1230, -4, 1231, -60, 1233, -4, 1235, -4, 1237, -4, // NOLINT 1239, -4, 1241, -4, 1243, -4, 1245, -4, 1247, -4, 1249, -4, 1251, -4, 1253, -4, // NOLINT 1255, -4, 1257, -4, 1259, -4, 1261, -4, 1263, -4, 1265, -4, 1267, -4, 1269, -4, // NOLINT 1271, -4, 1273, -4, 1275, -4, 1277, -4, 1279, -4, 1281, -4, 1283, -4, 1285, -4, // NOLINT 1287, -4, 1289, -4, 1291, -4, 1293, -4, 1295, -4, 1297, -4, 1299, -4, 1301, -4, // NOLINT 1303, -4, 1305, -4, 1307, -4, 1309, -4, 1311, -4, 1313, -4, 1315, -4, 1317, -4, // NOLINT 1319, -4, 1321, -4, 1323, -4, 1325, -4, 1327, -4, 1073743201, -192, 1414, -192, 1415, 21, // NOLINT 7545, 141328, 7549, 15256, 7681, -4, 7683, -4, 7685, -4, 7687, -4, 7689, -4, 7691, -4, // NOLINT 7693, -4, 7695, -4, 7697, -4, 7699, -4, 7701, -4, 7703, -4, 7705, -4, 7707, -4, // NOLINT 7709, -4, 7711, -4, 7713, -4, 7715, -4, 7717, -4, 7719, -4, 7721, -4, 7723, -4, // NOLINT 7725, -4, 7727, -4, 7729, -4, 7731, -4, 7733, -4, 7735, -4, 7737, -4, 7739, -4, // NOLINT 7741, -4, 7743, -4, 7745, -4, 7747, -4, 7749, -4, 7751, -4, 7753, -4, 7755, -4, // NOLINT 7757, -4, 7759, -4, 7761, -4, 7763, -4, 7765, -4, 7767, -4, 7769, -4, 7771, -4, // NOLINT 7773, -4, 7775, -4, 7777, -4, 7779, -4, 7781, -4, 7783, -4, 7785, -4, 7787, -4, // NOLINT 7789, -4, 7791, -4, 7793, -4, 7795, -4, 7797, -4, 7799, -4, 7801, -4, 7803, -4, // NOLINT 7805, -4, 7807, -4, 7809, -4, 7811, -4, 7813, -4, 7815, -4, 7817, -4, 7819, -4, // NOLINT 7821, -4, 7823, -4, 7825, -4, 7827, -4, 7829, -4, 7830, 25, 7831, 29, 7832, 33, // NOLINT 7833, 37, 7834, 41, 7835, -236, 7841, -4, 7843, -4, 7845, -4, 7847, -4, 7849, -4, // NOLINT 7851, -4, 7853, -4, 7855, -4, 7857, -4, 7859, -4, 7861, -4, 7863, -4, 7865, -4, // NOLINT 7867, -4, 7869, -4, 7871, -4, 7873, -4, 7875, -4, 7877, -4, 7879, -4, 7881, -4, // NOLINT 7883, -4, 7885, -4, 7887, -4, 7889, -4, 7891, -4, 7893, -4, 7895, -4, 7897, -4, // NOLINT 7899, -4, 7901, -4, 7903, -4, 7905, -4, 7907, -4, 7909, -4, 7911, -4, 7913, -4, // NOLINT 7915, -4, 7917, -4, 7919, -4, 7921, -4, 7923, -4, 7925, -4, 7927, -4, 7929, -4, // NOLINT 7931, -4, 7933, -4, 7935, -4, 1073749760, 32, 7943, 32, 1073749776, 32, 7957, 32, 1073749792, 32, // NOLINT 7975, 32, 1073749808, 32, 7991, 32, 1073749824, 32, 8005, 32, 8016, 45, 8017, 32, 8018, 49, // NOLINT 8019, 32, 8020, 53, 8021, 32, 8022, 57, 8023, 32, 1073749856, 32, 8039, 32, 1073749872, 296, // NOLINT 8049, 296, 1073749874, 344, 8053, 344, 1073749878, 400, 8055, 400, 1073749880, 512, 8057, 512, 1073749882, 448, // NOLINT 8059, 448, 1073749884, 504, 8061, 504, 8064, 61, 8065, 65, 8066, 69, 8067, 73, 8068, 77, // NOLINT 8069, 81, 8070, 85, 8071, 89, 8072, 61, 8073, 65, 8074, 69, 8075, 73, 8076, 77, // NOLINT 8077, 81, 8078, 85, 8079, 89, 8080, 93, 8081, 97, 8082, 101, 8083, 105, 8084, 109, // NOLINT 8085, 113, 8086, 117, 8087, 121, 8088, 93, 8089, 97, 8090, 101, 8091, 105, 8092, 109, // NOLINT 8093, 113, 8094, 117, 8095, 121, 8096, 125, 8097, 129, 8098, 133, 8099, 137, 8100, 141, // NOLINT 8101, 145, 8102, 149, 8103, 153, 8104, 125, 8105, 129, 8106, 133, 8107, 137, 8108, 141, // NOLINT 8109, 145, 8110, 149, 8111, 153, 1073749936, 32, 8113, 32, 8114, 157, 8115, 161, 8116, 165, // NOLINT 8118, 169, 8119, 173, 8124, 161, 8126, -28820, 8130, 177, 8131, 181, 8132, 185, 8134, 189, // NOLINT 8135, 193, 8140, 181, 1073749968, 32, 8145, 32, 8146, 197, 8147, 13, 8150, 201, 8151, 205, // NOLINT 1073749984, 32, 8161, 32, 8162, 209, 8163, 17, 8164, 213, 8165, 28, 8166, 217, 8167, 221, // NOLINT 8178, 225, 8179, 229, 8180, 233, 8182, 237, 8183, 241, 8188, 229}; // NOLINT static const uint16_t kToUppercaseMultiStrings0Size = 62; // NOLINT static const MultiCharacterSpecialCase<1> kToUppercaseMultiStrings1[1] = { // NOLINT {{kSentinel}} }; // NOLINT static const uint16_t kToUppercaseTable1Size = 73; // NOLINT static const int32_t kToUppercaseTable1[146] = { 334, -112, 1073742192, -64, 383, -64, 388, -4, 1073743056, -104, 1257, -104, 1073744944, -192, 3166, -192, // NOLINT 3169, -4, 3173, -43180, 3174, -43168, 3176, -4, 3178, -4, 3180, -4, 3187, -4, 3190, -4, // NOLINT 3201, -4, 3203, -4, 3205, -4, 3207, -4, 3209, -4, 3211, -4, 3213, -4, 3215, -4, // NOLINT 3217, -4, 3219, -4, 3221, -4, 3223, -4, 3225, -4, 3227, -4, 3229, -4, 3231, -4, // NOLINT 3233, -4, 3235, -4, 3237, -4, 3239, -4, 3241, -4, 3243, -4, 3245, -4, 3247, -4, // NOLINT 3249, -4, 3251, -4, 3253, -4, 3255, -4, 3257, -4, 3259, -4, 3261, -4, 3263, -4, // NOLINT 3265, -4, 3267, -4, 3269, -4, 3271, -4, 3273, -4, 3275, -4, 3277, -4, 3279, -4, // NOLINT 3281, -4, 3283, -4, 3285, -4, 3287, -4, 3289, -4, 3291, -4, 3293, -4, 3295, -4, // NOLINT 3297, -4, 3299, -4, 3308, -4, 3310, -4, 3315, -4, 1073745152, -29056, 3365, -29056, 3367, -29056, // NOLINT 3373, -29056 }; // NOLINT static const uint16_t kToUppercaseMultiStrings1Size = 1; // NOLINT static const MultiCharacterSpecialCase<1> kToUppercaseMultiStrings5[1] = { // NOLINT {{kSentinel}} }; // NOLINT static const uint16_t kToUppercaseTable5Size = 95; // NOLINT static const int32_t kToUppercaseTable5[190] = {1601, -4, 1603, -4, 1605, -4, 1607, -4, 1609, -4, 1611, -4, 1613, -4, 1615, -4, // NOLINT 1617, -4, 1619, -4, 1621, -4, 1623, -4, 1625, -4, 1627, -4, 1629, -4, 1631, -4, // NOLINT 1633, -4, 1635, -4, 1637, -4, 1639, -4, 1641, -4, 1643, -4, 1645, -4, 1665, -4, // NOLINT 1667, -4, 1669, -4, 1671, -4, 1673, -4, 1675, -4, 1677, -4, 1679, -4, 1681, -4, // NOLINT 1683, -4, 1685, -4, 1687, -4, 1689, -4, 1691, -4, 1827, -4, 1829, -4, 1831, -4, // NOLINT 1833, -4, 1835, -4, 1837, -4, 1839, -4, 1843, -4, 1845, -4, 1847, -4, 1849, -4, // NOLINT 1851, -4, 1853, -4, 1855, -4, 1857, -4, 1859, -4, 1861, -4, 1863, -4, 1865, -4, // NOLINT 1867, -4, 1869, -4, 1871, -4, 1873, -4, 1875, -4, 1877, -4, 1879, -4, 1881, -4, // NOLINT 1883, -4, 1885, -4, 1887, -4, 1889, -4, 1891, -4, 1893, -4, 1895, -4, 1897, -4, // NOLINT 1899, -4, 1901, -4, 1903, -4, 1914, -4, 1916, -4, 1919, -4, 1921, -4, 1923, -4, // NOLINT 1925, -4, 1927, -4, 1932, -4, 1937, -4, 1939, -4, 1943, -4, 1945, -4, 1947, -4, // NOLINT 1949, -4, 1951, -4, 1953, -4, 1955, -4, 1957, -4, 1959, -4, 1961, -4}; // NOLINT static const uint16_t kToUppercaseMultiStrings5Size = 1; // NOLINT static const MultiCharacterSpecialCase<3> kToUppercaseMultiStrings7[12] = { // NOLINT {{70, 70, kSentinel}}, {{70, 73, kSentinel}}, {{70, 76, kSentinel}}, {{70, 70, 73}}, // NOLINT {{70, 70, 76}}, {{83, 84, kSentinel}}, {{1348, 1350, kSentinel}}, {{1348, 1333, kSentinel}}, // NOLINT {{1348, 1339, kSentinel}}, {{1358, 1350, kSentinel}}, {{1348, 1341, kSentinel}}, {{kSentinel}} }; // NOLINT static const uint16_t kToUppercaseTable7Size = 14; // NOLINT static const int32_t kToUppercaseTable7[28] = { 6912, 1, 6913, 5, 6914, 9, 6915, 13, 6916, 17, 6917, 21, 6918, 21, 6931, 25, // NOLINT 6932, 29, 6933, 33, 6934, 37, 6935, 41, 1073749825, -128, 8026, -128 }; // NOLINT static const uint16_t kToUppercaseMultiStrings7Size = 12; // NOLINT int ToUppercase::Convert(uchar c, uchar n, uchar* result, bool* allow_caching_ptr) { int chunk_index = c >> 13; switch (chunk_index) { case 0: return LookupMapping(kToUppercaseTable0, kToUppercaseTable0Size, kToUppercaseMultiStrings0, c, n, result, allow_caching_ptr); case 1: return LookupMapping(kToUppercaseTable1, kToUppercaseTable1Size, kToUppercaseMultiStrings1, c, n, result, allow_caching_ptr); case 5: return LookupMapping(kToUppercaseTable5, kToUppercaseTable5Size, kToUppercaseMultiStrings5, c, n, result, allow_caching_ptr); case 7: return LookupMapping(kToUppercaseTable7, kToUppercaseTable7Size, kToUppercaseMultiStrings7, c, n, result, allow_caching_ptr); default: return 0; } } static const MultiCharacterSpecialCase<1> kEcma262CanonicalizeMultiStrings0[1] = { // NOLINT {{kSentinel}} }; // NOLINT static const uint16_t kEcma262CanonicalizeTable0Size = 498; // NOLINT static const int32_t kEcma262CanonicalizeTable0[996] = { 1073741921, -128, 122, -128, 181, 2972, 1073742048, -128, 246, -128, 1073742072, -128, 254, -128, 255, 484, // NOLINT 257, -4, 259, -4, 261, -4, 263, -4, 265, -4, 267, -4, 269, -4, 271, -4, // NOLINT 273, -4, 275, -4, 277, -4, 279, -4, 281, -4, 283, -4, 285, -4, 287, -4, // NOLINT 289, -4, 291, -4, 293, -4, 295, -4, 297, -4, 299, -4, 301, -4, 303, -4, // NOLINT 307, -4, 309, -4, 311, -4, 314, -4, 316, -4, 318, -4, 320, -4, 322, -4, // NOLINT 324, -4, 326, -4, 328, -4, 331, -4, 333, -4, 335, -4, 337, -4, 339, -4, // NOLINT 341, -4, 343, -4, 345, -4, 347, -4, 349, -4, 351, -4, 353, -4, 355, -4, // NOLINT 357, -4, 359, -4, 361, -4, 363, -4, 365, -4, 367, -4, 369, -4, 371, -4, // NOLINT 373, -4, 375, -4, 378, -4, 380, -4, 382, -4, 384, 780, 387, -4, 389, -4, // NOLINT 392, -4, 396, -4, 402, -4, 405, 388, 409, -4, 410, 652, 414, 520, 417, -4, // NOLINT 419, -4, 421, -4, 424, -4, 429, -4, 432, -4, 436, -4, 438, -4, 441, -4, // NOLINT 445, -4, 447, 224, 453, -4, 454, -8, 456, -4, 457, -8, 459, -4, 460, -8, // NOLINT 462, -4, 464, -4, 466, -4, 468, -4, 470, -4, 472, -4, 474, -4, 476, -4, // NOLINT 477, -316, 479, -4, 481, -4, 483, -4, 485, -4, 487, -4, 489, -4, 491, -4, // NOLINT 493, -4, 495, -4, 498, -4, 499, -8, 501, -4, 505, -4, 507, -4, 509, -4, // NOLINT 511, -4, 513, -4, 515, -4, 517, -4, 519, -4, 521, -4, 523, -4, 525, -4, // NOLINT 527, -4, 529, -4, 531, -4, 533, -4, 535, -4, 537, -4, 539, -4, 541, -4, // NOLINT 543, -4, 547, -4, 549, -4, 551, -4, 553, -4, 555, -4, 557, -4, 559, -4, // NOLINT 561, -4, 563, -4, 572, -4, 1073742399, 43260, 576, 43260, 578, -4, 583, -4, 585, -4, // NOLINT 587, -4, 589, -4, 591, -4, 592, 43132, 593, 43120, 594, 43128, 595, -840, 596, -824, // NOLINT 1073742422, -820, 599, -820, 601, -808, 603, -812, 604, 169276, 608, -820, 609, 169260, 611, -828, // NOLINT 613, 169120, 614, 169232, 616, -836, 617, -844, 619, 42972, 620, 169220, 623, -844, 625, 42996, // NOLINT 626, -852, 629, -856, 637, 42908, 640, -872, 643, -872, 647, 169128, 648, -872, 649, -276, // NOLINT 1073742474, -868, 651, -868, 652, -284, 658, -876, 670, 169032, 837, 336, 881, -4, 883, -4, // NOLINT 887, -4, 1073742715, 520, 893, 520, 940, -152, 1073742765, -148, 943, -148, 1073742769, -128, 961, -128, // NOLINT 962, -124, 1073742787, -128, 971, -128, 972, -256, 1073742797, -252, 974, -252, 976, -248, 977, -228, // NOLINT 981, -188, 982, -216, 983, -32, 985, -4, 987, -4, 989, -4, 991, -4, 993, -4, // NOLINT 995, -4, 997, -4, 999, -4, 1001, -4, 1003, -4, 1005, -4, 1007, -4, 1008, -344, // NOLINT 1009, -320, 1010, 28, 1011, -464, 1013, -384, 1016, -4, 1019, -4, 1073742896, -128, 1103, -128, // NOLINT 1073742928, -320, 1119, -320, 1121, -4, 1123, -4, 1125, -4, 1127, -4, 1129, -4, 1131, -4, // NOLINT 1133, -4, 1135, -4, 1137, -4, 1139, -4, 1141, -4, 1143, -4, 1145, -4, 1147, -4, // NOLINT 1149, -4, 1151, -4, 1153, -4, 1163, -4, 1165, -4, 1167, -4, 1169, -4, 1171, -4, // NOLINT 1173, -4, 1175, -4, 1177, -4, 1179, -4, 1181, -4, 1183, -4, 1185, -4, 1187, -4, // NOLINT 1189, -4, 1191, -4, 1193, -4, 1195, -4, 1197, -4, 1199, -4, 1201, -4, 1203, -4, // NOLINT 1205, -4, 1207, -4, 1209, -4, 1211, -4, 1213, -4, 1215, -4, 1218, -4, 1220, -4, // NOLINT 1222, -4, 1224, -4, 1226, -4, 1228, -4, 1230, -4, 1231, -60, 1233, -4, 1235, -4, // NOLINT 1237, -4, 1239, -4, 1241, -4, 1243, -4, 1245, -4, 1247, -4, 1249, -4, 1251, -4, // NOLINT 1253, -4, 1255, -4, 1257, -4, 1259, -4, 1261, -4, 1263, -4, 1265, -4, 1267, -4, // NOLINT 1269, -4, 1271, -4, 1273, -4, 1275, -4, 1277, -4, 1279, -4, 1281, -4, 1283, -4, // NOLINT 1285, -4, 1287, -4, 1289, -4, 1291, -4, 1293, -4, 1295, -4, 1297, -4, 1299, -4, // NOLINT 1301, -4, 1303, -4, 1305, -4, 1307, -4, 1309, -4, 1311, -4, 1313, -4, 1315, -4, // NOLINT 1317, -4, 1319, -4, 1321, -4, 1323, -4, 1325, -4, 1327, -4, 1073743201, -192, 1414, -192, // NOLINT 7545, 141328, 7549, 15256, 7681, -4, 7683, -4, 7685, -4, 7687, -4, 7689, -4, 7691, -4, // NOLINT 7693, -4, 7695, -4, 7697, -4, 7699, -4, 7701, -4, 7703, -4, 7705, -4, 7707, -4, // NOLINT 7709, -4, 7711, -4, 7713, -4, 7715, -4, 7717, -4, 7719, -4, 7721, -4, 7723, -4, // NOLINT 7725, -4, 7727, -4, 7729, -4, 7731, -4, 7733, -4, 7735, -4, 7737, -4, 7739, -4, // NOLINT 7741, -4, 7743, -4, 7745, -4, 7747, -4, 7749, -4, 7751, -4, 7753, -4, 7755, -4, // NOLINT 7757, -4, 7759, -4, 7761, -4, 7763, -4, 7765, -4, 7767, -4, 7769, -4, 7771, -4, // NOLINT 7773, -4, 7775, -4, 7777, -4, 7779, -4, 7781, -4, 7783, -4, 7785, -4, 7787, -4, // NOLINT 7789, -4, 7791, -4, 7793, -4, 7795, -4, 7797, -4, 7799, -4, 7801, -4, 7803, -4, // NOLINT 7805, -4, 7807, -4, 7809, -4, 7811, -4, 7813, -4, 7815, -4, 7817, -4, 7819, -4, // NOLINT 7821, -4, 7823, -4, 7825, -4, 7827, -4, 7829, -4, 7835, -236, 7841, -4, 7843, -4, // NOLINT 7845, -4, 7847, -4, 7849, -4, 7851, -4, 7853, -4, 7855, -4, 7857, -4, 7859, -4, // NOLINT 7861, -4, 7863, -4, 7865, -4, 7867, -4, 7869, -4, 7871, -4, 7873, -4, 7875, -4, // NOLINT 7877, -4, 7879, -4, 7881, -4, 7883, -4, 7885, -4, 7887, -4, 7889, -4, 7891, -4, // NOLINT 7893, -4, 7895, -4, 7897, -4, 7899, -4, 7901, -4, 7903, -4, 7905, -4, 7907, -4, // NOLINT 7909, -4, 7911, -4, 7913, -4, 7915, -4, 7917, -4, 7919, -4, 7921, -4, 7923, -4, // NOLINT 7925, -4, 7927, -4, 7929, -4, 7931, -4, 7933, -4, 7935, -4, 1073749760, 32, 7943, 32, // NOLINT 1073749776, 32, 7957, 32, 1073749792, 32, 7975, 32, 1073749808, 32, 7991, 32, 1073749824, 32, 8005, 32, // NOLINT 8017, 32, 8019, 32, 8021, 32, 8023, 32, 1073749856, 32, 8039, 32, 1073749872, 296, 8049, 296, // NOLINT 1073749874, 344, 8053, 344, 1073749878, 400, 8055, 400, 1073749880, 512, 8057, 512, 1073749882, 448, 8059, 448, // NOLINT 1073749884, 504, 8061, 504, 1073749936, 32, 8113, 32, 8126, -28820, 1073749968, 32, 8145, 32, 1073749984, 32, // NOLINT 8161, 32, 8165, 28}; // NOLINT static const uint16_t kEcma262CanonicalizeMultiStrings0Size = 1; // NOLINT static const MultiCharacterSpecialCase<1> kEcma262CanonicalizeMultiStrings1[1] = { // NOLINT {{kSentinel}} }; // NOLINT static const uint16_t kEcma262CanonicalizeTable1Size = 73; // NOLINT static const int32_t kEcma262CanonicalizeTable1[146] = { 334, -112, 1073742192, -64, 383, -64, 388, -4, 1073743056, -104, 1257, -104, 1073744944, -192, 3166, -192, // NOLINT 3169, -4, 3173, -43180, 3174, -43168, 3176, -4, 3178, -4, 3180, -4, 3187, -4, 3190, -4, // NOLINT 3201, -4, 3203, -4, 3205, -4, 3207, -4, 3209, -4, 3211, -4, 3213, -4, 3215, -4, // NOLINT 3217, -4, 3219, -4, 3221, -4, 3223, -4, 3225, -4, 3227, -4, 3229, -4, 3231, -4, // NOLINT 3233, -4, 3235, -4, 3237, -4, 3239, -4, 3241, -4, 3243, -4, 3245, -4, 3247, -4, // NOLINT 3249, -4, 3251, -4, 3253, -4, 3255, -4, 3257, -4, 3259, -4, 3261, -4, 3263, -4, // NOLINT 3265, -4, 3267, -4, 3269, -4, 3271, -4, 3273, -4, 3275, -4, 3277, -4, 3279, -4, // NOLINT 3281, -4, 3283, -4, 3285, -4, 3287, -4, 3289, -4, 3291, -4, 3293, -4, 3295, -4, // NOLINT 3297, -4, 3299, -4, 3308, -4, 3310, -4, 3315, -4, 1073745152, -29056, 3365, -29056, 3367, -29056, // NOLINT 3373, -29056 }; // NOLINT static const uint16_t kEcma262CanonicalizeMultiStrings1Size = 1; // NOLINT static const MultiCharacterSpecialCase<1> kEcma262CanonicalizeMultiStrings5[1] = { // NOLINT {{kSentinel}} }; // NOLINT static const uint16_t kEcma262CanonicalizeTable5Size = 95; // NOLINT static const int32_t kEcma262CanonicalizeTable5 [190] = {1601, -4, 1603, -4, 1605, -4, 1607, -4, 1609, -4, 1611, -4, 1613, -4, 1615, -4, // NOLINT 1617, -4, 1619, -4, 1621, -4, 1623, -4, 1625, -4, 1627, -4, 1629, -4, 1631, -4, // NOLINT 1633, -4, 1635, -4, 1637, -4, 1639, -4, 1641, -4, 1643, -4, 1645, -4, 1665, -4, // NOLINT 1667, -4, 1669, -4, 1671, -4, 1673, -4, 1675, -4, 1677, -4, 1679, -4, 1681, -4, // NOLINT 1683, -4, 1685, -4, 1687, -4, 1689, -4, 1691, -4, 1827, -4, 1829, -4, 1831, -4, // NOLINT 1833, -4, 1835, -4, 1837, -4, 1839, -4, 1843, -4, 1845, -4, 1847, -4, 1849, -4, // NOLINT 1851, -4, 1853, -4, 1855, -4, 1857, -4, 1859, -4, 1861, -4, 1863, -4, 1865, -4, // NOLINT 1867, -4, 1869, -4, 1871, -4, 1873, -4, 1875, -4, 1877, -4, 1879, -4, 1881, -4, // NOLINT 1883, -4, 1885, -4, 1887, -4, 1889, -4, 1891, -4, 1893, -4, 1895, -4, 1897, -4, // NOLINT 1899, -4, 1901, -4, 1903, -4, 1914, -4, 1916, -4, 1919, -4, 1921, -4, 1923, -4, // NOLINT 1925, -4, 1927, -4, 1932, -4, 1937, -4, 1939, -4, 1943, -4, 1945, -4, 1947, -4, // NOLINT 1949, -4, 1951, -4, 1953, -4, 1955, -4, 1957, -4, 1959, -4, 1961, -4}; // NOLINT static const uint16_t kEcma262CanonicalizeMultiStrings5Size = 1; // NOLINT static const MultiCharacterSpecialCase<1> kEcma262CanonicalizeMultiStrings7[1] = { // NOLINT {{kSentinel}} }; // NOLINT static const uint16_t kEcma262CanonicalizeTable7Size = 2; // NOLINT static const int32_t kEcma262CanonicalizeTable7[4] = { 1073749825, -128, 8026, -128 }; // NOLINT static const uint16_t kEcma262CanonicalizeMultiStrings7Size = 1; // NOLINT int Ecma262Canonicalize::Convert(uchar c, uchar n, uchar* result, bool* allow_caching_ptr) { int chunk_index = c >> 13; switch (chunk_index) { case 0: return LookupMapping(kEcma262CanonicalizeTable0, kEcma262CanonicalizeTable0Size, kEcma262CanonicalizeMultiStrings0, c, n, result, allow_caching_ptr); case 1: return LookupMapping(kEcma262CanonicalizeTable1, kEcma262CanonicalizeTable1Size, kEcma262CanonicalizeMultiStrings1, c, n, result, allow_caching_ptr); case 5: return LookupMapping(kEcma262CanonicalizeTable5, kEcma262CanonicalizeTable5Size, kEcma262CanonicalizeMultiStrings5, c, n, result, allow_caching_ptr); case 7: return LookupMapping(kEcma262CanonicalizeTable7, kEcma262CanonicalizeTable7Size, kEcma262CanonicalizeMultiStrings7, c, n, result, allow_caching_ptr); default: return 0; } } static const MultiCharacterSpecialCase<4> kEcma262UnCanonicalizeMultiStrings0[507] = { // NOLINT {{65, 97, kSentinel}}, {{90, 122, kSentinel}}, {{181, 924, 956, kSentinel}}, {{192, 224, kSentinel}}, // NOLINT {{214, 246, kSentinel}}, {{216, 248, kSentinel}}, {{222, 254, kSentinel}}, {{255, 376, kSentinel}}, // NOLINT {{256, 257, kSentinel}}, {{258, 259, kSentinel}}, {{260, 261, kSentinel}}, {{262, 263, kSentinel}}, // NOLINT {{264, 265, kSentinel}}, {{266, 267, kSentinel}}, {{268, 269, kSentinel}}, {{270, 271, kSentinel}}, // NOLINT {{272, 273, kSentinel}}, {{274, 275, kSentinel}}, {{276, 277, kSentinel}}, {{278, 279, kSentinel}}, // NOLINT {{280, 281, kSentinel}}, {{282, 283, kSentinel}}, {{284, 285, kSentinel}}, {{286, 287, kSentinel}}, // NOLINT {{288, 289, kSentinel}}, {{290, 291, kSentinel}}, {{292, 293, kSentinel}}, {{294, 295, kSentinel}}, // NOLINT {{296, 297, kSentinel}}, {{298, 299, kSentinel}}, {{300, 301, kSentinel}}, {{302, 303, kSentinel}}, // NOLINT {{306, 307, kSentinel}}, {{308, 309, kSentinel}}, {{310, 311, kSentinel}}, {{313, 314, kSentinel}}, // NOLINT {{315, 316, kSentinel}}, {{317, 318, kSentinel}}, {{319, 320, kSentinel}}, {{321, 322, kSentinel}}, // NOLINT {{323, 324, kSentinel}}, {{325, 326, kSentinel}}, {{327, 328, kSentinel}}, {{330, 331, kSentinel}}, // NOLINT {{332, 333, kSentinel}}, {{334, 335, kSentinel}}, {{336, 337, kSentinel}}, {{338, 339, kSentinel}}, // NOLINT {{340, 341, kSentinel}}, {{342, 343, kSentinel}}, {{344, 345, kSentinel}}, {{346, 347, kSentinel}}, // NOLINT {{348, 349, kSentinel}}, {{350, 351, kSentinel}}, {{352, 353, kSentinel}}, {{354, 355, kSentinel}}, // NOLINT {{356, 357, kSentinel}}, {{358, 359, kSentinel}}, {{360, 361, kSentinel}}, {{362, 363, kSentinel}}, // NOLINT {{364, 365, kSentinel}}, {{366, 367, kSentinel}}, {{368, 369, kSentinel}}, {{370, 371, kSentinel}}, // NOLINT {{372, 373, kSentinel}}, {{374, 375, kSentinel}}, {{377, 378, kSentinel}}, {{379, 380, kSentinel}}, // NOLINT {{381, 382, kSentinel}}, {{384, 579, kSentinel}}, {{385, 595, kSentinel}}, {{386, 387, kSentinel}}, // NOLINT {{388, 389, kSentinel}}, {{390, 596, kSentinel}}, {{391, 392, kSentinel}}, {{393, 598, kSentinel}}, // NOLINT {{394, 599, kSentinel}}, {{395, 396, kSentinel}}, {{398, 477, kSentinel}}, {{399, 601, kSentinel}}, // NOLINT {{400, 603, kSentinel}}, {{401, 402, kSentinel}}, {{403, 608, kSentinel}}, {{404, 611, kSentinel}}, // NOLINT {{405, 502, kSentinel}}, {{406, 617, kSentinel}}, {{407, 616, kSentinel}}, {{408, 409, kSentinel}}, // NOLINT {{410, 573, kSentinel}}, {{412, 623, kSentinel}}, {{413, 626, kSentinel}}, {{414, 544, kSentinel}}, // NOLINT {{415, 629, kSentinel}}, {{416, 417, kSentinel}}, {{418, 419, kSentinel}}, {{420, 421, kSentinel}}, // NOLINT {{422, 640, kSentinel}}, {{423, 424, kSentinel}}, {{425, 643, kSentinel}}, {{428, 429, kSentinel}}, // NOLINT {{430, 648, kSentinel}}, {{431, 432, kSentinel}}, {{433, 650, kSentinel}}, {{434, 651, kSentinel}}, // NOLINT {{435, 436, kSentinel}}, {{437, 438, kSentinel}}, {{439, 658, kSentinel}}, {{440, 441, kSentinel}}, // NOLINT {{444, 445, kSentinel}}, {{447, 503, kSentinel}}, {{452, 453, 454, kSentinel}}, {{455, 456, 457, kSentinel}}, // NOLINT {{458, 459, 460, kSentinel}}, {{461, 462, kSentinel}}, {{463, 464, kSentinel}}, {{465, 466, kSentinel}}, // NOLINT {{467, 468, kSentinel}}, {{469, 470, kSentinel}}, {{471, 472, kSentinel}}, {{473, 474, kSentinel}}, // NOLINT {{475, 476, kSentinel}}, {{478, 479, kSentinel}}, {{480, 481, kSentinel}}, {{482, 483, kSentinel}}, // NOLINT {{484, 485, kSentinel}}, {{486, 487, kSentinel}}, {{488, 489, kSentinel}}, {{490, 491, kSentinel}}, // NOLINT {{492, 493, kSentinel}}, {{494, 495, kSentinel}}, {{497, 498, 499, kSentinel}}, {{500, 501, kSentinel}}, // NOLINT {{504, 505, kSentinel}}, {{506, 507, kSentinel}}, {{508, 509, kSentinel}}, {{510, 511, kSentinel}}, // NOLINT {{512, 513, kSentinel}}, {{514, 515, kSentinel}}, {{516, 517, kSentinel}}, {{518, 519, kSentinel}}, // NOLINT {{520, 521, kSentinel}}, {{522, 523, kSentinel}}, {{524, 525, kSentinel}}, {{526, 527, kSentinel}}, // NOLINT {{528, 529, kSentinel}}, {{530, 531, kSentinel}}, {{532, 533, kSentinel}}, {{534, 535, kSentinel}}, // NOLINT {{536, 537, kSentinel}}, {{538, 539, kSentinel}}, {{540, 541, kSentinel}}, {{542, 543, kSentinel}}, // NOLINT {{546, 547, kSentinel}}, {{548, 549, kSentinel}}, {{550, 551, kSentinel}}, {{552, 553, kSentinel}}, // NOLINT {{554, 555, kSentinel}}, {{556, 557, kSentinel}}, {{558, 559, kSentinel}}, {{560, 561, kSentinel}}, // NOLINT {{562, 563, kSentinel}}, {{570, 11365, kSentinel}}, {{571, 572, kSentinel}}, {{574, 11366, kSentinel}}, // NOLINT {{575, 11390, kSentinel}}, {{576, 11391, kSentinel}}, {{577, 578, kSentinel}}, {{580, 649, kSentinel}}, // NOLINT {{581, 652, kSentinel}}, {{582, 583, kSentinel}}, {{584, 585, kSentinel}}, {{586, 587, kSentinel}}, // NOLINT {{588, 589, kSentinel}}, {{590, 591, kSentinel}}, {{592, 11375, kSentinel}}, {{593, 11373, kSentinel}}, // NOLINT {{594, 11376, kSentinel}}, {{604, 42923, kSentinel}}, {{609, 42924, kSentinel}}, {{613, 42893, kSentinel}}, // NOLINT {{614, 42922, kSentinel}}, {{619, 11362, kSentinel}}, {{620, 42925, kSentinel}}, {{625, 11374, kSentinel}}, // NOLINT {{637, 11364, kSentinel}}, {{647, 42929, kSentinel}}, {{670, 42928, kSentinel}}, {{837, 921, 953, 8126}}, // NOLINT {{880, 881, kSentinel}}, {{882, 883, kSentinel}}, {{886, 887, kSentinel}}, {{891, 1021, kSentinel}}, // NOLINT {{893, 1023, kSentinel}}, {{895, 1011, kSentinel}}, {{902, 940, kSentinel}}, {{904, 941, kSentinel}}, // NOLINT {{906, 943, kSentinel}}, {{908, 972, kSentinel}}, {{910, 973, kSentinel}}, {{911, 974, kSentinel}}, // NOLINT {{913, 945, kSentinel}}, {{914, 946, 976, kSentinel}}, {{915, 947, kSentinel}}, {{916, 948, kSentinel}}, // NOLINT {{917, 949, 1013, kSentinel}}, {{918, 950, kSentinel}}, {{919, 951, kSentinel}}, {{920, 952, 977, kSentinel}}, // NOLINT {{922, 954, 1008, kSentinel}}, {{923, 955, kSentinel}}, {{925, 957, kSentinel}}, {{927, 959, kSentinel}}, // NOLINT {{928, 960, 982, kSentinel}}, {{929, 961, 1009, kSentinel}}, {{931, 962, 963, kSentinel}}, {{932, 964, kSentinel}}, // NOLINT {{933, 965, kSentinel}}, {{934, 966, 981, kSentinel}}, {{935, 967, kSentinel}}, {{939, 971, kSentinel}}, // NOLINT {{975, 983, kSentinel}}, {{984, 985, kSentinel}}, {{986, 987, kSentinel}}, {{988, 989, kSentinel}}, // NOLINT {{990, 991, kSentinel}}, {{992, 993, kSentinel}}, {{994, 995, kSentinel}}, {{996, 997, kSentinel}}, // NOLINT {{998, 999, kSentinel}}, {{1000, 1001, kSentinel}}, {{1002, 1003, kSentinel}}, {{1004, 1005, kSentinel}}, // NOLINT {{1006, 1007, kSentinel}}, {{1010, 1017, kSentinel}}, {{1015, 1016, kSentinel}}, {{1018, 1019, kSentinel}}, // NOLINT {{1024, 1104, kSentinel}}, {{1039, 1119, kSentinel}}, {{1040, 1072, kSentinel}}, {{1071, 1103, kSentinel}}, // NOLINT {{1120, 1121, kSentinel}}, {{1122, 1123, kSentinel}}, {{1124, 1125, kSentinel}}, {{1126, 1127, kSentinel}}, // NOLINT {{1128, 1129, kSentinel}}, {{1130, 1131, kSentinel}}, {{1132, 1133, kSentinel}}, {{1134, 1135, kSentinel}}, // NOLINT {{1136, 1137, kSentinel}}, {{1138, 1139, kSentinel}}, {{1140, 1141, kSentinel}}, {{1142, 1143, kSentinel}}, // NOLINT {{1144, 1145, kSentinel}}, {{1146, 1147, kSentinel}}, {{1148, 1149, kSentinel}}, {{1150, 1151, kSentinel}}, // NOLINT {{1152, 1153, kSentinel}}, {{1162, 1163, kSentinel}}, {{1164, 1165, kSentinel}}, {{1166, 1167, kSentinel}}, // NOLINT {{1168, 1169, kSentinel}}, {{1170, 1171, kSentinel}}, {{1172, 1173, kSentinel}}, {{1174, 1175, kSentinel}}, // NOLINT {{1176, 1177, kSentinel}}, {{1178, 1179, kSentinel}}, {{1180, 1181, kSentinel}}, {{1182, 1183, kSentinel}}, // NOLINT {{1184, 1185, kSentinel}}, {{1186, 1187, kSentinel}}, {{1188, 1189, kSentinel}}, {{1190, 1191, kSentinel}}, // NOLINT {{1192, 1193, kSentinel}}, {{1194, 1195, kSentinel}}, {{1196, 1197, kSentinel}}, {{1198, 1199, kSentinel}}, // NOLINT {{1200, 1201, kSentinel}}, {{1202, 1203, kSentinel}}, {{1204, 1205, kSentinel}}, {{1206, 1207, kSentinel}}, // NOLINT {{1208, 1209, kSentinel}}, {{1210, 1211, kSentinel}}, {{1212, 1213, kSentinel}}, {{1214, 1215, kSentinel}}, // NOLINT {{1216, 1231, kSentinel}}, {{1217, 1218, kSentinel}}, {{1219, 1220, kSentinel}}, {{1221, 1222, kSentinel}}, // NOLINT {{1223, 1224, kSentinel}}, {{1225, 1226, kSentinel}}, {{1227, 1228, kSentinel}}, {{1229, 1230, kSentinel}}, // NOLINT {{1232, 1233, kSentinel}}, {{1234, 1235, kSentinel}}, {{1236, 1237, kSentinel}}, {{1238, 1239, kSentinel}}, // NOLINT {{1240, 1241, kSentinel}}, {{1242, 1243, kSentinel}}, {{1244, 1245, kSentinel}}, {{1246, 1247, kSentinel}}, // NOLINT {{1248, 1249, kSentinel}}, {{1250, 1251, kSentinel}}, {{1252, 1253, kSentinel}}, {{1254, 1255, kSentinel}}, // NOLINT {{1256, 1257, kSentinel}}, {{1258, 1259, kSentinel}}, {{1260, 1261, kSentinel}}, {{1262, 1263, kSentinel}}, // NOLINT {{1264, 1265, kSentinel}}, {{1266, 1267, kSentinel}}, {{1268, 1269, kSentinel}}, {{1270, 1271, kSentinel}}, // NOLINT {{1272, 1273, kSentinel}}, {{1274, 1275, kSentinel}}, {{1276, 1277, kSentinel}}, {{1278, 1279, kSentinel}}, // NOLINT {{1280, 1281, kSentinel}}, {{1282, 1283, kSentinel}}, {{1284, 1285, kSentinel}}, {{1286, 1287, kSentinel}}, // NOLINT {{1288, 1289, kSentinel}}, {{1290, 1291, kSentinel}}, {{1292, 1293, kSentinel}}, {{1294, 1295, kSentinel}}, // NOLINT {{1296, 1297, kSentinel}}, {{1298, 1299, kSentinel}}, {{1300, 1301, kSentinel}}, {{1302, 1303, kSentinel}}, // NOLINT {{1304, 1305, kSentinel}}, {{1306, 1307, kSentinel}}, {{1308, 1309, kSentinel}}, {{1310, 1311, kSentinel}}, // NOLINT {{1312, 1313, kSentinel}}, {{1314, 1315, kSentinel}}, {{1316, 1317, kSentinel}}, {{1318, 1319, kSentinel}}, // NOLINT {{1320, 1321, kSentinel}}, {{1322, 1323, kSentinel}}, {{1324, 1325, kSentinel}}, {{1326, 1327, kSentinel}}, // NOLINT {{1329, 1377, kSentinel}}, {{1366, 1414, kSentinel}}, {{4256, 11520, kSentinel}}, {{4293, 11557, kSentinel}}, // NOLINT {{4295, 11559, kSentinel}}, {{4301, 11565, kSentinel}}, {{7545, 42877, kSentinel}}, {{7549, 11363, kSentinel}}, // NOLINT {{7680, 7681, kSentinel}}, {{7682, 7683, kSentinel}}, {{7684, 7685, kSentinel}}, {{7686, 7687, kSentinel}}, // NOLINT {{7688, 7689, kSentinel}}, {{7690, 7691, kSentinel}}, {{7692, 7693, kSentinel}}, {{7694, 7695, kSentinel}}, // NOLINT {{7696, 7697, kSentinel}}, {{7698, 7699, kSentinel}}, {{7700, 7701, kSentinel}}, {{7702, 7703, kSentinel}}, // NOLINT {{7704, 7705, kSentinel}}, {{7706, 7707, kSentinel}}, {{7708, 7709, kSentinel}}, {{7710, 7711, kSentinel}}, // NOLINT {{7712, 7713, kSentinel}}, {{7714, 7715, kSentinel}}, {{7716, 7717, kSentinel}}, {{7718, 7719, kSentinel}}, // NOLINT {{7720, 7721, kSentinel}}, {{7722, 7723, kSentinel}}, {{7724, 7725, kSentinel}}, {{7726, 7727, kSentinel}}, // NOLINT {{7728, 7729, kSentinel}}, {{7730, 7731, kSentinel}}, {{7732, 7733, kSentinel}}, {{7734, 7735, kSentinel}}, // NOLINT {{7736, 7737, kSentinel}}, {{7738, 7739, kSentinel}}, {{7740, 7741, kSentinel}}, {{7742, 7743, kSentinel}}, // NOLINT {{7744, 7745, kSentinel}}, {{7746, 7747, kSentinel}}, {{7748, 7749, kSentinel}}, {{7750, 7751, kSentinel}}, // NOLINT {{7752, 7753, kSentinel}}, {{7754, 7755, kSentinel}}, {{7756, 7757, kSentinel}}, {{7758, 7759, kSentinel}}, // NOLINT {{7760, 7761, kSentinel}}, {{7762, 7763, kSentinel}}, {{7764, 7765, kSentinel}}, {{7766, 7767, kSentinel}}, // NOLINT {{7768, 7769, kSentinel}}, {{7770, 7771, kSentinel}}, {{7772, 7773, kSentinel}}, {{7774, 7775, kSentinel}}, // NOLINT {{7776, 7777, 7835, kSentinel}}, {{7778, 7779, kSentinel}}, {{7780, 7781, kSentinel}}, {{7782, 7783, kSentinel}}, // NOLINT {{7784, 7785, kSentinel}}, {{7786, 7787, kSentinel}}, {{7788, 7789, kSentinel}}, {{7790, 7791, kSentinel}}, // NOLINT {{7792, 7793, kSentinel}}, {{7794, 7795, kSentinel}}, {{7796, 7797, kSentinel}}, {{7798, 7799, kSentinel}}, // NOLINT {{7800, 7801, kSentinel}}, {{7802, 7803, kSentinel}}, {{7804, 7805, kSentinel}}, {{7806, 7807, kSentinel}}, // NOLINT {{7808, 7809, kSentinel}}, {{7810, 7811, kSentinel}}, {{7812, 7813, kSentinel}}, {{7814, 7815, kSentinel}}, // NOLINT {{7816, 7817, kSentinel}}, {{7818, 7819, kSentinel}}, {{7820, 7821, kSentinel}}, {{7822, 7823, kSentinel}}, // NOLINT {{7824, 7825, kSentinel}}, {{7826, 7827, kSentinel}}, {{7828, 7829, kSentinel}}, {{7840, 7841, kSentinel}}, // NOLINT {{7842, 7843, kSentinel}}, {{7844, 7845, kSentinel}}, {{7846, 7847, kSentinel}}, {{7848, 7849, kSentinel}}, // NOLINT {{7850, 7851, kSentinel}}, {{7852, 7853, kSentinel}}, {{7854, 7855, kSentinel}}, {{7856, 7857, kSentinel}}, // NOLINT {{7858, 7859, kSentinel}}, {{7860, 7861, kSentinel}}, {{7862, 7863, kSentinel}}, {{7864, 7865, kSentinel}}, // NOLINT {{7866, 7867, kSentinel}}, {{7868, 7869, kSentinel}}, {{7870, 7871, kSentinel}}, {{7872, 7873, kSentinel}}, // NOLINT {{7874, 7875, kSentinel}}, {{7876, 7877, kSentinel}}, {{7878, 7879, kSentinel}}, {{7880, 7881, kSentinel}}, // NOLINT {{7882, 7883, kSentinel}}, {{7884, 7885, kSentinel}}, {{7886, 7887, kSentinel}}, {{7888, 7889, kSentinel}}, // NOLINT {{7890, 7891, kSentinel}}, {{7892, 7893, kSentinel}}, {{7894, 7895, kSentinel}}, {{7896, 7897, kSentinel}}, // NOLINT {{7898, 7899, kSentinel}}, {{7900, 7901, kSentinel}}, {{7902, 7903, kSentinel}}, {{7904, 7905, kSentinel}}, // NOLINT {{7906, 7907, kSentinel}}, {{7908, 7909, kSentinel}}, {{7910, 7911, kSentinel}}, {{7912, 7913, kSentinel}}, // NOLINT {{7914, 7915, kSentinel}}, {{7916, 7917, kSentinel}}, {{7918, 7919, kSentinel}}, {{7920, 7921, kSentinel}}, // NOLINT {{7922, 7923, kSentinel}}, {{7924, 7925, kSentinel}}, {{7926, 7927, kSentinel}}, {{7928, 7929, kSentinel}}, // NOLINT {{7930, 7931, kSentinel}}, {{7932, 7933, kSentinel}}, {{7934, 7935, kSentinel}}, {{7936, 7944, kSentinel}}, // NOLINT {{7943, 7951, kSentinel}}, {{7952, 7960, kSentinel}}, {{7957, 7965, kSentinel}}, {{7968, 7976, kSentinel}}, // NOLINT {{7975, 7983, kSentinel}}, {{7984, 7992, kSentinel}}, {{7991, 7999, kSentinel}}, {{8000, 8008, kSentinel}}, // NOLINT {{8005, 8013, kSentinel}}, {{8017, 8025, kSentinel}}, {{8019, 8027, kSentinel}}, {{8021, 8029, kSentinel}}, // NOLINT {{8023, 8031, kSentinel}}, {{8032, 8040, kSentinel}}, {{8039, 8047, kSentinel}}, {{8048, 8122, kSentinel}}, // NOLINT {{8049, 8123, kSentinel}}, {{8050, 8136, kSentinel}}, {{8053, 8139, kSentinel}}, {{8054, 8154, kSentinel}}, // NOLINT {{8055, 8155, kSentinel}}, {{8056, 8184, kSentinel}}, {{8057, 8185, kSentinel}}, {{8058, 8170, kSentinel}}, // NOLINT {{8059, 8171, kSentinel}}, {{8060, 8186, kSentinel}}, {{8061, 8187, kSentinel}}, {{8112, 8120, kSentinel}}, // NOLINT {{8113, 8121, kSentinel}}, {{8144, 8152, kSentinel}}, {{8145, 8153, kSentinel}}, {{8160, 8168, kSentinel}}, // NOLINT {{8161, 8169, kSentinel}}, {{8165, 8172, kSentinel}}, {{kSentinel}}}; // NOLINT static const uint16_t kEcma262UnCanonicalizeTable0Size = 1005; // NOLINT static const int32_t kEcma262UnCanonicalizeTable0[2010] = { 1073741889, 1, 90, 5, 1073741921, 1, 122, 5, 181, 9, 1073742016, 13, 214, 17, 1073742040, 21, // NOLINT 222, 25, 1073742048, 13, 246, 17, 1073742072, 21, 254, 25, 255, 29, 256, 33, 257, 33, // NOLINT 258, 37, 259, 37, 260, 41, 261, 41, 262, 45, 263, 45, 264, 49, 265, 49, // NOLINT 266, 53, 267, 53, 268, 57, 269, 57, 270, 61, 271, 61, 272, 65, 273, 65, // NOLINT 274, 69, 275, 69, 276, 73, 277, 73, 278, 77, 279, 77, 280, 81, 281, 81, // NOLINT 282, 85, 283, 85, 284, 89, 285, 89, 286, 93, 287, 93, 288, 97, 289, 97, // NOLINT 290, 101, 291, 101, 292, 105, 293, 105, 294, 109, 295, 109, 296, 113, 297, 113, // NOLINT 298, 117, 299, 117, 300, 121, 301, 121, 302, 125, 303, 125, 306, 129, 307, 129, // NOLINT 308, 133, 309, 133, 310, 137, 311, 137, 313, 141, 314, 141, 315, 145, 316, 145, // NOLINT 317, 149, 318, 149, 319, 153, 320, 153, 321, 157, 322, 157, 323, 161, 324, 161, // NOLINT 325, 165, 326, 165, 327, 169, 328, 169, 330, 173, 331, 173, 332, 177, 333, 177, // NOLINT 334, 181, 335, 181, 336, 185, 337, 185, 338, 189, 339, 189, 340, 193, 341, 193, // NOLINT 342, 197, 343, 197, 344, 201, 345, 201, 346, 205, 347, 205, 348, 209, 349, 209, // NOLINT 350, 213, 351, 213, 352, 217, 353, 217, 354, 221, 355, 221, 356, 225, 357, 225, // NOLINT 358, 229, 359, 229, 360, 233, 361, 233, 362, 237, 363, 237, 364, 241, 365, 241, // NOLINT 366, 245, 367, 245, 368, 249, 369, 249, 370, 253, 371, 253, 372, 257, 373, 257, // NOLINT 374, 261, 375, 261, 376, 29, 377, 265, 378, 265, 379, 269, 380, 269, 381, 273, // NOLINT 382, 273, 384, 277, 385, 281, 386, 285, 387, 285, 388, 289, 389, 289, 390, 293, // NOLINT 391, 297, 392, 297, 1073742217, 301, 394, 305, 395, 309, 396, 309, 398, 313, 399, 317, // NOLINT 400, 321, 401, 325, 402, 325, 403, 329, 404, 333, 405, 337, 406, 341, 407, 345, // NOLINT 408, 349, 409, 349, 410, 353, 412, 357, 413, 361, 414, 365, 415, 369, 416, 373, // NOLINT 417, 373, 418, 377, 419, 377, 420, 381, 421, 381, 422, 385, 423, 389, 424, 389, // NOLINT 425, 393, 428, 397, 429, 397, 430, 401, 431, 405, 432, 405, 1073742257, 409, 434, 413, // NOLINT 435, 417, 436, 417, 437, 421, 438, 421, 439, 425, 440, 429, 441, 429, 444, 433, // NOLINT 445, 433, 447, 437, 452, 441, 453, 441, 454, 441, 455, 445, 456, 445, 457, 445, // NOLINT 458, 449, 459, 449, 460, 449, 461, 453, 462, 453, 463, 457, 464, 457, 465, 461, // NOLINT 466, 461, 467, 465, 468, 465, 469, 469, 470, 469, 471, 473, 472, 473, 473, 477, // NOLINT 474, 477, 475, 481, 476, 481, 477, 313, 478, 485, 479, 485, 480, 489, 481, 489, // NOLINT 482, 493, 483, 493, 484, 497, 485, 497, 486, 501, 487, 501, 488, 505, 489, 505, // NOLINT 490, 509, 491, 509, 492, 513, 493, 513, 494, 517, 495, 517, 497, 521, 498, 521, // NOLINT 499, 521, 500, 525, 501, 525, 502, 337, 503, 437, 504, 529, 505, 529, 506, 533, // NOLINT 507, 533, 508, 537, 509, 537, 510, 541, 511, 541, 512, 545, 513, 545, 514, 549, // NOLINT 515, 549, 516, 553, 517, 553, 518, 557, 519, 557, 520, 561, 521, 561, 522, 565, // NOLINT 523, 565, 524, 569, 525, 569, 526, 573, 527, 573, 528, 577, 529, 577, 530, 581, // NOLINT 531, 581, 532, 585, 533, 585, 534, 589, 535, 589, 536, 593, 537, 593, 538, 597, // NOLINT 539, 597, 540, 601, 541, 601, 542, 605, 543, 605, 544, 365, 546, 609, 547, 609, // NOLINT 548, 613, 549, 613, 550, 617, 551, 617, 552, 621, 553, 621, 554, 625, 555, 625, // NOLINT 556, 629, 557, 629, 558, 633, 559, 633, 560, 637, 561, 637, 562, 641, 563, 641, // NOLINT 570, 645, 571, 649, 572, 649, 573, 353, 574, 653, 1073742399, 657, 576, 661, 577, 665, // NOLINT 578, 665, 579, 277, 580, 669, 581, 673, 582, 677, 583, 677, 584, 681, 585, 681, // NOLINT 586, 685, 587, 685, 588, 689, 589, 689, 590, 693, 591, 693, 592, 697, 593, 701, // NOLINT 594, 705, 595, 281, 596, 293, 1073742422, 301, 599, 305, 601, 317, 603, 321, 604, 709, // NOLINT 608, 329, 609, 713, 611, 333, 613, 717, 614, 721, 616, 345, 617, 341, 619, 725, // NOLINT 620, 729, 623, 357, 625, 733, 626, 361, 629, 369, 637, 737, 640, 385, 643, 393, // NOLINT 647, 741, 648, 401, 649, 669, 1073742474, 409, 651, 413, 652, 673, 658, 425, 670, 745, // NOLINT 837, 749, 880, 753, 881, 753, 882, 757, 883, 757, 886, 761, 887, 761, 1073742715, 765, // NOLINT 893, 769, 895, 773, 902, 777, 1073742728, 781, 906, 785, 908, 789, 1073742734, 793, 911, 797, // NOLINT 913, 801, 914, 805, 1073742739, 809, 916, 813, 917, 817, 1073742742, 821, 919, 825, 920, 829, // NOLINT 921, 749, 922, 833, 923, 837, 924, 9, 1073742749, 841, 927, 845, 928, 849, 929, 853, // NOLINT 931, 857, 1073742756, 861, 933, 865, 934, 869, 1073742759, 873, 939, 877, 940, 777, 1073742765, 781, // NOLINT 943, 785, 945, 801, 946, 805, 1073742771, 809, 948, 813, 949, 817, 1073742774, 821, 951, 825, // NOLINT 952, 829, 953, 749, 954, 833, 955, 837, 956, 9, 1073742781, 841, 959, 845, 960, 849, // NOLINT 961, 853, 962, 857, 963, 857, 1073742788, 861, 965, 865, 966, 869, 1073742791, 873, 971, 877, // NOLINT 972, 789, 1073742797, 793, 974, 797, 975, 881, 976, 805, 977, 829, 981, 869, 982, 849, // NOLINT 983, 881, 984, 885, 985, 885, 986, 889, 987, 889, 988, 893, 989, 893, 990, 897, // NOLINT 991, 897, 992, 901, 993, 901, 994, 905, 995, 905, 996, 909, 997, 909, 998, 913, // NOLINT 999, 913, 1000, 917, 1001, 917, 1002, 921, 1003, 921, 1004, 925, 1005, 925, 1006, 929, // NOLINT 1007, 929, 1008, 833, 1009, 853, 1010, 933, 1011, 773, 1013, 817, 1015, 937, 1016, 937, // NOLINT 1017, 933, 1018, 941, 1019, 941, 1073742845, 765, 1023, 769, 1073742848, 945, 1039, 949, 1073742864, 953, // NOLINT 1071, 957, 1073742896, 953, 1103, 957, 1073742928, 945, 1119, 949, 1120, 961, 1121, 961, 1122, 965, // NOLINT 1123, 965, 1124, 969, 1125, 969, 1126, 973, 1127, 973, 1128, 977, 1129, 977, 1130, 981, // NOLINT 1131, 981, 1132, 985, 1133, 985, 1134, 989, 1135, 989, 1136, 993, 1137, 993, 1138, 997, // NOLINT 1139, 997, 1140, 1001, 1141, 1001, 1142, 1005, 1143, 1005, 1144, 1009, 1145, 1009, 1146, 1013, // NOLINT 1147, 1013, 1148, 1017, 1149, 1017, 1150, 1021, 1151, 1021, 1152, 1025, 1153, 1025, 1162, 1029, // NOLINT 1163, 1029, 1164, 1033, 1165, 1033, 1166, 1037, 1167, 1037, 1168, 1041, 1169, 1041, 1170, 1045, // NOLINT 1171, 1045, 1172, 1049, 1173, 1049, 1174, 1053, 1175, 1053, 1176, 1057, 1177, 1057, 1178, 1061, // NOLINT 1179, 1061, 1180, 1065, 1181, 1065, 1182, 1069, 1183, 1069, 1184, 1073, 1185, 1073, 1186, 1077, // NOLINT 1187, 1077, 1188, 1081, 1189, 1081, 1190, 1085, 1191, 1085, 1192, 1089, 1193, 1089, 1194, 1093, // NOLINT 1195, 1093, 1196, 1097, 1197, 1097, 1198, 1101, 1199, 1101, 1200, 1105, 1201, 1105, 1202, 1109, // NOLINT 1203, 1109, 1204, 1113, 1205, 1113, 1206, 1117, 1207, 1117, 1208, 1121, 1209, 1121, 1210, 1125, // NOLINT 1211, 1125, 1212, 1129, 1213, 1129, 1214, 1133, 1215, 1133, 1216, 1137, 1217, 1141, 1218, 1141, // NOLINT 1219, 1145, 1220, 1145, 1221, 1149, 1222, 1149, 1223, 1153, 1224, 1153, 1225, 1157, 1226, 1157, // NOLINT 1227, 1161, 1228, 1161, 1229, 1165, 1230, 1165, 1231, 1137, 1232, 1169, 1233, 1169, 1234, 1173, // NOLINT 1235, 1173, 1236, 1177, 1237, 1177, 1238, 1181, 1239, 1181, 1240, 1185, 1241, 1185, 1242, 1189, // NOLINT 1243, 1189, 1244, 1193, 1245, 1193, 1246, 1197, 1247, 1197, 1248, 1201, 1249, 1201, 1250, 1205, // NOLINT 1251, 1205, 1252, 1209, 1253, 1209, 1254, 1213, 1255, 1213, 1256, 1217, 1257, 1217, 1258, 1221, // NOLINT 1259, 1221, 1260, 1225, 1261, 1225, 1262, 1229, 1263, 1229, 1264, 1233, 1265, 1233, 1266, 1237, // NOLINT 1267, 1237, 1268, 1241, 1269, 1241, 1270, 1245, 1271, 1245, 1272, 1249, 1273, 1249, 1274, 1253, // NOLINT 1275, 1253, 1276, 1257, 1277, 1257, 1278, 1261, 1279, 1261, 1280, 1265, 1281, 1265, 1282, 1269, // NOLINT 1283, 1269, 1284, 1273, 1285, 1273, 1286, 1277, 1287, 1277, 1288, 1281, 1289, 1281, 1290, 1285, // NOLINT 1291, 1285, 1292, 1289, 1293, 1289, 1294, 1293, 1295, 1293, 1296, 1297, 1297, 1297, 1298, 1301, // NOLINT 1299, 1301, 1300, 1305, 1301, 1305, 1302, 1309, 1303, 1309, 1304, 1313, 1305, 1313, 1306, 1317, // NOLINT 1307, 1317, 1308, 1321, 1309, 1321, 1310, 1325, 1311, 1325, 1312, 1329, 1313, 1329, 1314, 1333, // NOLINT 1315, 1333, 1316, 1337, 1317, 1337, 1318, 1341, 1319, 1341, 1320, 1345, 1321, 1345, 1322, 1349, // NOLINT 1323, 1349, 1324, 1353, 1325, 1353, 1326, 1357, 1327, 1357, 1073743153, 1361, 1366, 1365, 1073743201, 1361, // NOLINT 1414, 1365, 1073746080, 1369, 4293, 1373, 4295, 1377, 4301, 1381, 7545, 1385, 7549, 1389, 7680, 1393, // NOLINT 7681, 1393, 7682, 1397, 7683, 1397, 7684, 1401, 7685, 1401, 7686, 1405, 7687, 1405, 7688, 1409, // NOLINT 7689, 1409, 7690, 1413, 7691, 1413, 7692, 1417, 7693, 1417, 7694, 1421, 7695, 1421, 7696, 1425, // NOLINT 7697, 1425, 7698, 1429, 7699, 1429, 7700, 1433, 7701, 1433, 7702, 1437, 7703, 1437, 7704, 1441, // NOLINT 7705, 1441, 7706, 1445, 7707, 1445, 7708, 1449, 7709, 1449, 7710, 1453, 7711, 1453, 7712, 1457, // NOLINT 7713, 1457, 7714, 1461, 7715, 1461, 7716, 1465, 7717, 1465, 7718, 1469, 7719, 1469, 7720, 1473, // NOLINT 7721, 1473, 7722, 1477, 7723, 1477, 7724, 1481, 7725, 1481, 7726, 1485, 7727, 1485, 7728, 1489, // NOLINT 7729, 1489, 7730, 1493, 7731, 1493, 7732, 1497, 7733, 1497, 7734, 1501, 7735, 1501, 7736, 1505, // NOLINT 7737, 1505, 7738, 1509, 7739, 1509, 7740, 1513, 7741, 1513, 7742, 1517, 7743, 1517, 7744, 1521, // NOLINT 7745, 1521, 7746, 1525, 7747, 1525, 7748, 1529, 7749, 1529, 7750, 1533, 7751, 1533, 7752, 1537, // NOLINT 7753, 1537, 7754, 1541, 7755, 1541, 7756, 1545, 7757, 1545, 7758, 1549, 7759, 1549, 7760, 1553, // NOLINT 7761, 1553, 7762, 1557, 7763, 1557, 7764, 1561, 7765, 1561, 7766, 1565, 7767, 1565, 7768, 1569, // NOLINT 7769, 1569, 7770, 1573, 7771, 1573, 7772, 1577, 7773, 1577, 7774, 1581, 7775, 1581, 7776, 1585, // NOLINT 7777, 1585, 7778, 1589, 7779, 1589, 7780, 1593, 7781, 1593, 7782, 1597, 7783, 1597, 7784, 1601, // NOLINT 7785, 1601, 7786, 1605, 7787, 1605, 7788, 1609, 7789, 1609, 7790, 1613, 7791, 1613, 7792, 1617, // NOLINT 7793, 1617, 7794, 1621, 7795, 1621, 7796, 1625, 7797, 1625, 7798, 1629, 7799, 1629, 7800, 1633, // NOLINT 7801, 1633, 7802, 1637, 7803, 1637, 7804, 1641, 7805, 1641, 7806, 1645, 7807, 1645, 7808, 1649, // NOLINT 7809, 1649, 7810, 1653, 7811, 1653, 7812, 1657, 7813, 1657, 7814, 1661, 7815, 1661, 7816, 1665, // NOLINT 7817, 1665, 7818, 1669, 7819, 1669, 7820, 1673, 7821, 1673, 7822, 1677, 7823, 1677, 7824, 1681, // NOLINT 7825, 1681, 7826, 1685, 7827, 1685, 7828, 1689, 7829, 1689, 7835, 1585, 7840, 1693, 7841, 1693, // NOLINT 7842, 1697, 7843, 1697, 7844, 1701, 7845, 1701, 7846, 1705, 7847, 1705, 7848, 1709, 7849, 1709, // NOLINT 7850, 1713, 7851, 1713, 7852, 1717, 7853, 1717, 7854, 1721, 7855, 1721, 7856, 1725, 7857, 1725, // NOLINT 7858, 1729, 7859, 1729, 7860, 1733, 7861, 1733, 7862, 1737, 7863, 1737, 7864, 1741, 7865, 1741, // NOLINT 7866, 1745, 7867, 1745, 7868, 1749, 7869, 1749, 7870, 1753, 7871, 1753, 7872, 1757, 7873, 1757, // NOLINT 7874, 1761, 7875, 1761, 7876, 1765, 7877, 1765, 7878, 1769, 7879, 1769, 7880, 1773, 7881, 1773, // NOLINT 7882, 1777, 7883, 1777, 7884, 1781, 7885, 1781, 7886, 1785, 7887, 1785, 7888, 1789, 7889, 1789, // NOLINT 7890, 1793, 7891, 1793, 7892, 1797, 7893, 1797, 7894, 1801, 7895, 1801, 7896, 1805, 7897, 1805, // NOLINT 7898, 1809, 7899, 1809, 7900, 1813, 7901, 1813, 7902, 1817, 7903, 1817, 7904, 1821, 7905, 1821, // NOLINT 7906, 1825, 7907, 1825, 7908, 1829, 7909, 1829, 7910, 1833, 7911, 1833, 7912, 1837, 7913, 1837, // NOLINT 7914, 1841, 7915, 1841, 7916, 1845, 7917, 1845, 7918, 1849, 7919, 1849, 7920, 1853, 7921, 1853, // NOLINT 7922, 1857, 7923, 1857, 7924, 1861, 7925, 1861, 7926, 1865, 7927, 1865, 7928, 1869, 7929, 1869, // NOLINT 7930, 1873, 7931, 1873, 7932, 1877, 7933, 1877, 7934, 1881, 7935, 1881, 1073749760, 1885, 7943, 1889, // NOLINT 1073749768, 1885, 7951, 1889, 1073749776, 1893, 7957, 1897, 1073749784, 1893, 7965, 1897, 1073749792, 1901, 7975, 1905, // NOLINT 1073749800, 1901, 7983, 1905, 1073749808, 1909, 7991, 1913, 1073749816, 1909, 7999, 1913, 1073749824, 1917, 8005, 1921, // NOLINT 1073749832, 1917, 8013, 1921, 8017, 1925, 8019, 1929, 8021, 1933, 8023, 1937, 8025, 1925, 8027, 1929, // NOLINT 8029, 1933, 8031, 1937, 1073749856, 1941, 8039, 1945, 1073749864, 1941, 8047, 1945, 1073749872, 1949, 8049, 1953, // NOLINT 1073749874, 1957, 8053, 1961, 1073749878, 1965, 8055, 1969, 1073749880, 1973, 8057, 1977, 1073749882, 1981, 8059, 1985, // NOLINT 1073749884, 1989, 8061, 1993, 1073749936, 1997, 8113, 2001, 1073749944, 1997, 8121, 2001, 1073749946, 1949, 8123, 1953, // NOLINT 8126, 749, 1073749960, 1957, 8139, 1961, 1073749968, 2005, 8145, 2009, 1073749976, 2005, 8153, 2009, 1073749978, 1965, // NOLINT 8155, 1969, 1073749984, 2013, 8161, 2017, 8165, 2021, 1073749992, 2013, 8169, 2017, 1073749994, 1981, 8171, 1985, // NOLINT 8172, 2021, 1073750008, 1973, 8185, 1977, 1073750010, 1989, 8187, 1993}; // NOLINT static const uint16_t kEcma262UnCanonicalizeMultiStrings0Size = 507; // NOLINT static const MultiCharacterSpecialCase<2> kEcma262UnCanonicalizeMultiStrings1[83] = { // NOLINT {{8498, 8526}}, {{8544, 8560}}, {{8559, 8575}}, {{8579, 8580}}, // NOLINT {{9398, 9424}}, {{9423, 9449}}, {{11264, 11312}}, {{11310, 11358}}, // NOLINT {{11360, 11361}}, {{619, 11362}}, {{7549, 11363}}, {{637, 11364}}, // NOLINT {{570, 11365}}, {{574, 11366}}, {{11367, 11368}}, {{11369, 11370}}, // NOLINT {{11371, 11372}}, {{593, 11373}}, {{625, 11374}}, {{592, 11375}}, // NOLINT {{594, 11376}}, {{11378, 11379}}, {{11381, 11382}}, {{575, 11390}}, // NOLINT {{576, 11391}}, {{11392, 11393}}, {{11394, 11395}}, {{11396, 11397}}, // NOLINT {{11398, 11399}}, {{11400, 11401}}, {{11402, 11403}}, {{11404, 11405}}, // NOLINT {{11406, 11407}}, {{11408, 11409}}, {{11410, 11411}}, {{11412, 11413}}, // NOLINT {{11414, 11415}}, {{11416, 11417}}, {{11418, 11419}}, {{11420, 11421}}, // NOLINT {{11422, 11423}}, {{11424, 11425}}, {{11426, 11427}}, {{11428, 11429}}, // NOLINT {{11430, 11431}}, {{11432, 11433}}, {{11434, 11435}}, {{11436, 11437}}, // NOLINT {{11438, 11439}}, {{11440, 11441}}, {{11442, 11443}}, {{11444, 11445}}, // NOLINT {{11446, 11447}}, {{11448, 11449}}, {{11450, 11451}}, {{11452, 11453}}, // NOLINT {{11454, 11455}}, {{11456, 11457}}, {{11458, 11459}}, {{11460, 11461}}, // NOLINT {{11462, 11463}}, {{11464, 11465}}, {{11466, 11467}}, {{11468, 11469}}, // NOLINT {{11470, 11471}}, {{11472, 11473}}, {{11474, 11475}}, {{11476, 11477}}, // NOLINT {{11478, 11479}}, {{11480, 11481}}, {{11482, 11483}}, {{11484, 11485}}, // NOLINT {{11486, 11487}}, {{11488, 11489}}, {{11490, 11491}}, {{11499, 11500}}, // NOLINT {{11501, 11502}}, {{11506, 11507}}, {{4256, 11520}}, {{4293, 11557}}, // NOLINT {{4295, 11559}}, {{4301, 11565}}, {{kSentinel}} }; // NOLINT static const uint16_t kEcma262UnCanonicalizeTable1Size = 149; // NOLINT static const int32_t kEcma262UnCanonicalizeTable1[298] = { 306, 1, 334, 1, 1073742176, 5, 367, 9, 1073742192, 5, 383, 9, 387, 13, 388, 13, // NOLINT 1073743030, 17, 1231, 21, 1073743056, 17, 1257, 21, 1073744896, 25, 3118, 29, 1073744944, 25, 3166, 29, // NOLINT 3168, 33, 3169, 33, 3170, 37, 3171, 41, 3172, 45, 3173, 49, 3174, 53, 3175, 57, // NOLINT 3176, 57, 3177, 61, 3178, 61, 3179, 65, 3180, 65, 3181, 69, 3182, 73, 3183, 77, // NOLINT 3184, 81, 3186, 85, 3187, 85, 3189, 89, 3190, 89, 1073745022, 93, 3199, 97, 3200, 101, // NOLINT 3201, 101, 3202, 105, 3203, 105, 3204, 109, 3205, 109, 3206, 113, 3207, 113, 3208, 117, // NOLINT 3209, 117, 3210, 121, 3211, 121, 3212, 125, 3213, 125, 3214, 129, 3215, 129, 3216, 133, // NOLINT 3217, 133, 3218, 137, 3219, 137, 3220, 141, 3221, 141, 3222, 145, 3223, 145, 3224, 149, // NOLINT 3225, 149, 3226, 153, 3227, 153, 3228, 157, 3229, 157, 3230, 161, 3231, 161, 3232, 165, // NOLINT 3233, 165, 3234, 169, 3235, 169, 3236, 173, 3237, 173, 3238, 177, 3239, 177, 3240, 181, // NOLINT 3241, 181, 3242, 185, 3243, 185, 3244, 189, 3245, 189, 3246, 193, 3247, 193, 3248, 197, // NOLINT 3249, 197, 3250, 201, 3251, 201, 3252, 205, 3253, 205, 3254, 209, 3255, 209, 3256, 213, // NOLINT 3257, 213, 3258, 217, 3259, 217, 3260, 221, 3261, 221, 3262, 225, 3263, 225, 3264, 229, // NOLINT 3265, 229, 3266, 233, 3267, 233, 3268, 237, 3269, 237, 3270, 241, 3271, 241, 3272, 245, // NOLINT 3273, 245, 3274, 249, 3275, 249, 3276, 253, 3277, 253, 3278, 257, 3279, 257, 3280, 261, // NOLINT 3281, 261, 3282, 265, 3283, 265, 3284, 269, 3285, 269, 3286, 273, 3287, 273, 3288, 277, // NOLINT 3289, 277, 3290, 281, 3291, 281, 3292, 285, 3293, 285, 3294, 289, 3295, 289, 3296, 293, // NOLINT 3297, 293, 3298, 297, 3299, 297, 3307, 301, 3308, 301, 3309, 305, 3310, 305, 3314, 309, // NOLINT 3315, 309, 1073745152, 313, 3365, 317, 3367, 321, 3373, 325 }; // NOLINT static const uint16_t kEcma262UnCanonicalizeMultiStrings1Size = 83; // NOLINT static const MultiCharacterSpecialCase<2> kEcma262UnCanonicalizeMultiStrings5[104] = { // NOLINT {{42560, 42561}}, {{42562, 42563}}, {{42564, 42565}}, {{42566, 42567}}, // NOLINT {{42568, 42569}}, {{42570, 42571}}, {{42572, 42573}}, {{42574, 42575}}, // NOLINT {{42576, 42577}}, {{42578, 42579}}, {{42580, 42581}}, {{42582, 42583}}, // NOLINT {{42584, 42585}}, {{42586, 42587}}, {{42588, 42589}}, {{42590, 42591}}, // NOLINT {{42592, 42593}}, {{42594, 42595}}, {{42596, 42597}}, {{42598, 42599}}, // NOLINT {{42600, 42601}}, {{42602, 42603}}, {{42604, 42605}}, {{42624, 42625}}, // NOLINT {{42626, 42627}}, {{42628, 42629}}, {{42630, 42631}}, {{42632, 42633}}, // NOLINT {{42634, 42635}}, {{42636, 42637}}, {{42638, 42639}}, {{42640, 42641}}, // NOLINT {{42642, 42643}}, {{42644, 42645}}, {{42646, 42647}}, {{42648, 42649}}, // NOLINT {{42650, 42651}}, {{42786, 42787}}, {{42788, 42789}}, {{42790, 42791}}, // NOLINT {{42792, 42793}}, {{42794, 42795}}, {{42796, 42797}}, {{42798, 42799}}, // NOLINT {{42802, 42803}}, {{42804, 42805}}, {{42806, 42807}}, {{42808, 42809}}, // NOLINT {{42810, 42811}}, {{42812, 42813}}, {{42814, 42815}}, {{42816, 42817}}, // NOLINT {{42818, 42819}}, {{42820, 42821}}, {{42822, 42823}}, {{42824, 42825}}, // NOLINT {{42826, 42827}}, {{42828, 42829}}, {{42830, 42831}}, {{42832, 42833}}, // NOLINT {{42834, 42835}}, {{42836, 42837}}, {{42838, 42839}}, {{42840, 42841}}, // NOLINT {{42842, 42843}}, {{42844, 42845}}, {{42846, 42847}}, {{42848, 42849}}, // NOLINT {{42850, 42851}}, {{42852, 42853}}, {{42854, 42855}}, {{42856, 42857}}, // NOLINT {{42858, 42859}}, {{42860, 42861}}, {{42862, 42863}}, {{42873, 42874}}, // NOLINT {{42875, 42876}}, {{7545, 42877}}, {{42878, 42879}}, {{42880, 42881}}, // NOLINT {{42882, 42883}}, {{42884, 42885}}, {{42886, 42887}}, {{42891, 42892}}, // NOLINT {{613, 42893}}, {{42896, 42897}}, {{42898, 42899}}, {{42902, 42903}}, // NOLINT {{42904, 42905}}, {{42906, 42907}}, {{42908, 42909}}, {{42910, 42911}}, // NOLINT {{42912, 42913}}, {{42914, 42915}}, {{42916, 42917}}, {{42918, 42919}}, // NOLINT {{42920, 42921}}, {{614, 42922}}, {{604, 42923}}, {{609, 42924}}, // NOLINT {{620, 42925}}, {{670, 42928}}, {{647, 42929}}, {{kSentinel}}}; // NOLINT static const uint16_t kEcma262UnCanonicalizeTable5Size = 198; // NOLINT static const int32_t kEcma262UnCanonicalizeTable5 [396] = {1600, 1, 1601, 1, 1602, 5, 1603, 5, 1604, 9, 1605, 9, 1606, 13, 1607, 13, // NOLINT 1608, 17, 1609, 17, 1610, 21, 1611, 21, 1612, 25, 1613, 25, 1614, 29, 1615, 29, // NOLINT 1616, 33, 1617, 33, 1618, 37, 1619, 37, 1620, 41, 1621, 41, 1622, 45, 1623, 45, // NOLINT 1624, 49, 1625, 49, 1626, 53, 1627, 53, 1628, 57, 1629, 57, 1630, 61, 1631, 61, // NOLINT 1632, 65, 1633, 65, 1634, 69, 1635, 69, 1636, 73, 1637, 73, 1638, 77, 1639, 77, // NOLINT 1640, 81, 1641, 81, 1642, 85, 1643, 85, 1644, 89, 1645, 89, 1664, 93, 1665, 93, // NOLINT 1666, 97, 1667, 97, 1668, 101, 1669, 101, 1670, 105, 1671, 105, 1672, 109, 1673, 109, // NOLINT 1674, 113, 1675, 113, 1676, 117, 1677, 117, 1678, 121, 1679, 121, 1680, 125, 1681, 125, // NOLINT 1682, 129, 1683, 129, 1684, 133, 1685, 133, 1686, 137, 1687, 137, 1688, 141, 1689, 141, // NOLINT 1690, 145, 1691, 145, 1826, 149, 1827, 149, 1828, 153, 1829, 153, 1830, 157, 1831, 157, // NOLINT 1832, 161, 1833, 161, 1834, 165, 1835, 165, 1836, 169, 1837, 169, 1838, 173, 1839, 173, // NOLINT 1842, 177, 1843, 177, 1844, 181, 1845, 181, 1846, 185, 1847, 185, 1848, 189, 1849, 189, // NOLINT 1850, 193, 1851, 193, 1852, 197, 1853, 197, 1854, 201, 1855, 201, 1856, 205, 1857, 205, // NOLINT 1858, 209, 1859, 209, 1860, 213, 1861, 213, 1862, 217, 1863, 217, 1864, 221, 1865, 221, // NOLINT 1866, 225, 1867, 225, 1868, 229, 1869, 229, 1870, 233, 1871, 233, 1872, 237, 1873, 237, // NOLINT 1874, 241, 1875, 241, 1876, 245, 1877, 245, 1878, 249, 1879, 249, 1880, 253, 1881, 253, // NOLINT 1882, 257, 1883, 257, 1884, 261, 1885, 261, 1886, 265, 1887, 265, 1888, 269, 1889, 269, // NOLINT 1890, 273, 1891, 273, 1892, 277, 1893, 277, 1894, 281, 1895, 281, 1896, 285, 1897, 285, // NOLINT 1898, 289, 1899, 289, 1900, 293, 1901, 293, 1902, 297, 1903, 297, 1913, 301, 1914, 301, // NOLINT 1915, 305, 1916, 305, 1917, 309, 1918, 313, 1919, 313, 1920, 317, 1921, 317, 1922, 321, // NOLINT 1923, 321, 1924, 325, 1925, 325, 1926, 329, 1927, 329, 1931, 333, 1932, 333, 1933, 337, // NOLINT 1936, 341, 1937, 341, 1938, 345, 1939, 345, 1942, 349, 1943, 349, 1944, 353, 1945, 353, // NOLINT 1946, 357, 1947, 357, 1948, 361, 1949, 361, 1950, 365, 1951, 365, 1952, 369, 1953, 369, // NOLINT 1954, 373, 1955, 373, 1956, 377, 1957, 377, 1958, 381, 1959, 381, 1960, 385, 1961, 385, // NOLINT 1962, 389, 1963, 393, 1964, 397, 1965, 401, 1968, 405, 1969, 409}; // NOLINT static const uint16_t kEcma262UnCanonicalizeMultiStrings5Size = 104; // NOLINT static const MultiCharacterSpecialCase<2> kEcma262UnCanonicalizeMultiStrings7[3] = { // NOLINT {{65313, 65345}}, {{65338, 65370}}, {{kSentinel}} }; // NOLINT static const uint16_t kEcma262UnCanonicalizeTable7Size = 4; // NOLINT static const int32_t kEcma262UnCanonicalizeTable7[8] = { 1073749793, 1, 7994, 5, 1073749825, 1, 8026, 5 }; // NOLINT static const uint16_t kEcma262UnCanonicalizeMultiStrings7Size = 3; // NOLINT int Ecma262UnCanonicalize::Convert(uchar c, uchar n, uchar* result, bool* allow_caching_ptr) { int chunk_index = c >> 13; switch (chunk_index) { case 0: return LookupMapping(kEcma262UnCanonicalizeTable0, kEcma262UnCanonicalizeTable0Size, kEcma262UnCanonicalizeMultiStrings0, c, n, result, allow_caching_ptr); case 1: return LookupMapping(kEcma262UnCanonicalizeTable1, kEcma262UnCanonicalizeTable1Size, kEcma262UnCanonicalizeMultiStrings1, c, n, result, allow_caching_ptr); case 5: return LookupMapping(kEcma262UnCanonicalizeTable5, kEcma262UnCanonicalizeTable5Size, kEcma262UnCanonicalizeMultiStrings5, c, n, result, allow_caching_ptr); case 7: return LookupMapping(kEcma262UnCanonicalizeTable7, kEcma262UnCanonicalizeTable7Size, kEcma262UnCanonicalizeMultiStrings7, c, n, result, allow_caching_ptr); default: return 0; } } static const MultiCharacterSpecialCase<1> kCanonicalizationRangeMultiStrings0[1] = { // NOLINT {{kSentinel}} }; // NOLINT static const uint16_t kCanonicalizationRangeTable0Size = 70; // NOLINT static const int32_t kCanonicalizationRangeTable0[140] = { 1073741889, 100, 90, 0, 1073741921, 100, 122, 0, 1073742016, 88, 214, 0, 1073742040, 24, 222, 0, // NOLINT 1073742048, 88, 246, 0, 1073742072, 24, 254, 0, 1073742715, 8, 893, 0, 1073742728, 8, 906, 0, // NOLINT 1073742749, 8, 927, 0, 1073742759, 16, 939, 0, 1073742765, 8, 943, 0, 1073742781, 8, 959, 0, // NOLINT 1073742791, 16, 971, 0, 1073742845, 8, 1023, 0, 1073742848, 60, 1039, 0, 1073742864, 124, 1071, 0, // NOLINT 1073742896, 124, 1103, 0, 1073742928, 60, 1119, 0, 1073743153, 148, 1366, 0, 1073743201, 148, 1414, 0, // NOLINT 1073746080, 148, 4293, 0, 1073749760, 28, 7943, 0, 1073749768, 28, 7951, 0, 1073749776, 20, 7957, 0, // NOLINT 1073749784, 20, 7965, 0, 1073749792, 28, 7975, 0, 1073749800, 28, 7983, 0, 1073749808, 28, 7991, 0, // NOLINT 1073749816, 28, 7999, 0, 1073749824, 20, 8005, 0, 1073749832, 20, 8013, 0, 1073749856, 28, 8039, 0, // NOLINT 1073749864, 28, 8047, 0, 1073749874, 12, 8053, 0, 1073749960, 12, 8139, 0 }; // NOLINT static const uint16_t kCanonicalizationRangeMultiStrings0Size = 1; // NOLINT static const MultiCharacterSpecialCase<1> kCanonicalizationRangeMultiStrings1[1] = { // NOLINT {{kSentinel}} }; // NOLINT static const uint16_t kCanonicalizationRangeTable1Size = 14; // NOLINT static const int32_t kCanonicalizationRangeTable1[28] = { 1073742176, 60, 367, 0, 1073742192, 60, 383, 0, 1073743030, 100, 1231, 0, 1073743056, 100, 1257, 0, // NOLINT 1073744896, 184, 3118, 0, 1073744944, 184, 3166, 0, 1073745152, 148, 3365, 0 }; // NOLINT static const uint16_t kCanonicalizationRangeMultiStrings1Size = 1; // NOLINT static const MultiCharacterSpecialCase<1> kCanonicalizationRangeMultiStrings7[1] = { // NOLINT {{kSentinel}} }; // NOLINT static const uint16_t kCanonicalizationRangeTable7Size = 4; // NOLINT static const int32_t kCanonicalizationRangeTable7[8] = { 1073749793, 100, 7994, 0, 1073749825, 100, 8026, 0 }; // NOLINT static const uint16_t kCanonicalizationRangeMultiStrings7Size = 1; // NOLINT int CanonicalizationRange::Convert(uchar c, uchar n, uchar* result, bool* allow_caching_ptr) { int chunk_index = c >> 13; switch (chunk_index) { case 0: return LookupMapping(kCanonicalizationRangeTable0, kCanonicalizationRangeTable0Size, kCanonicalizationRangeMultiStrings0, c, n, result, allow_caching_ptr); case 1: return LookupMapping(kCanonicalizationRangeTable1, kCanonicalizationRangeTable1Size, kCanonicalizationRangeMultiStrings1, c, n, result, allow_caching_ptr); case 7: return LookupMapping(kCanonicalizationRangeTable7, kCanonicalizationRangeTable7Size, kCanonicalizationRangeMultiStrings7, c, n, result, allow_caching_ptr); default: return 0; } } const uchar UnicodeData::kMaxCodePoint = 65533; int UnicodeData::GetByteCount() { return kUppercaseTable0Size * sizeof(int32_t) // NOLINT + kUppercaseTable1Size * sizeof(int32_t) // NOLINT + kUppercaseTable5Size * sizeof(int32_t) // NOLINT + kUppercaseTable7Size * sizeof(int32_t) // NOLINT + kLowercaseTable0Size * sizeof(int32_t) // NOLINT + kLowercaseTable1Size * sizeof(int32_t) // NOLINT + kLowercaseTable5Size * sizeof(int32_t) // NOLINT + kLowercaseTable7Size * sizeof(int32_t) // NOLINT + kLetterTable0Size * sizeof(int32_t) // NOLINT + kLetterTable1Size * sizeof(int32_t) // NOLINT + kLetterTable2Size * sizeof(int32_t) // NOLINT + kLetterTable3Size * sizeof(int32_t) // NOLINT + kLetterTable4Size * sizeof(int32_t) // NOLINT + kLetterTable5Size * sizeof(int32_t) // NOLINT + kLetterTable6Size * sizeof(int32_t) // NOLINT + kLetterTable7Size * sizeof(int32_t) // NOLINT + kID_StartTable0Size * sizeof(int32_t) // NOLINT + kID_StartTable1Size * sizeof(int32_t) // NOLINT + kID_StartTable2Size * sizeof(int32_t) // NOLINT + kID_StartTable3Size * sizeof(int32_t) // NOLINT + kID_StartTable4Size * sizeof(int32_t) // NOLINT + kID_StartTable5Size * sizeof(int32_t) // NOLINT + kID_StartTable6Size * sizeof(int32_t) // NOLINT + kID_StartTable7Size * sizeof(int32_t) // NOLINT + kID_ContinueTable0Size * sizeof(int32_t) // NOLINT + kID_ContinueTable1Size * sizeof(int32_t) // NOLINT + kID_ContinueTable5Size * sizeof(int32_t) // NOLINT + kID_ContinueTable7Size * sizeof(int32_t) // NOLINT + kWhiteSpaceTable0Size * sizeof(int32_t) // NOLINT + kWhiteSpaceTable1Size * sizeof(int32_t) // NOLINT + kWhiteSpaceTable7Size * sizeof(int32_t) // NOLINT + kLineTerminatorTable0Size * sizeof(int32_t) // NOLINT + kLineTerminatorTable1Size * sizeof(int32_t) // NOLINT + kToLowercaseMultiStrings0Size * sizeof(MultiCharacterSpecialCase<2>) // NOLINT + kToLowercaseMultiStrings1Size * sizeof(MultiCharacterSpecialCase<1>) // NOLINT + kToLowercaseMultiStrings5Size * sizeof(MultiCharacterSpecialCase<1>) // NOLINT + kToLowercaseMultiStrings7Size * sizeof(MultiCharacterSpecialCase<1>) // NOLINT + kToUppercaseMultiStrings0Size * sizeof(MultiCharacterSpecialCase<3>) // NOLINT + kToUppercaseMultiStrings1Size * sizeof(MultiCharacterSpecialCase<1>) // NOLINT + kToUppercaseMultiStrings5Size * sizeof(MultiCharacterSpecialCase<1>) // NOLINT + kToUppercaseMultiStrings7Size * sizeof(MultiCharacterSpecialCase<3>) // NOLINT + kEcma262CanonicalizeMultiStrings0Size * sizeof(MultiCharacterSpecialCase<1>) // NOLINT + kEcma262CanonicalizeMultiStrings1Size * sizeof(MultiCharacterSpecialCase<1>) // NOLINT + kEcma262CanonicalizeMultiStrings5Size * sizeof(MultiCharacterSpecialCase<1>) // NOLINT + kEcma262CanonicalizeMultiStrings7Size * sizeof(MultiCharacterSpecialCase<1>) // NOLINT + kEcma262UnCanonicalizeMultiStrings0Size * sizeof(MultiCharacterSpecialCase<4>) // NOLINT + kEcma262UnCanonicalizeMultiStrings1Size * sizeof(MultiCharacterSpecialCase<2>) // NOLINT + kEcma262UnCanonicalizeMultiStrings5Size * sizeof(MultiCharacterSpecialCase<2>) // NOLINT + kEcma262UnCanonicalizeMultiStrings7Size * sizeof(MultiCharacterSpecialCase<2>) // NOLINT + kCanonicalizationRangeMultiStrings0Size * sizeof(MultiCharacterSpecialCase<1>) // NOLINT + kCanonicalizationRangeMultiStrings1Size * sizeof(MultiCharacterSpecialCase<1>) // NOLINT + kCanonicalizationRangeMultiStrings7Size * sizeof(MultiCharacterSpecialCase<1>); // NOLINT } } // namespace unibrow