Flutter Engine
The Flutter Engine
Classes | Functions | Variables
unibrow Namespace Reference

Classes

struct  CanonicalizationRange
 
struct  Ecma262Canonicalize
 
struct  Ecma262UnCanonicalize
 
struct  Letter
 
class  Mapping
 
struct  MultiCharacterSpecialCase
 

Functions

template<intptr_t D>
static int32_t TableGet (const int32_t *table, intptr_t index)
 
static int32_t GetEntry (int32_t entry)
 
static bool IsStart (int32_t entry)
 
static bool LookupPredicate (const int32_t *table, uint16_t size, int32_t chr)
 
template<bool ranges_are_linear, intptr_t kW>
static intptr_t LookupMapping (const int32_t *table, uint16_t size, const MultiCharacterSpecialCase< kW > *multi_chars, int32_t chr, int32_t next, int32_t *result, bool *allow_caching_ptr)
 

Variables

static constexpr intptr_t kStartBit = (1 << 30)
 
static constexpr intptr_t kChunkBits = (1 << 13)
 
static constexpr int32_t kSentinel = static_cast<int32_t>(-1)
 
static constexpr uint16_t kLetterTable0Size = 431
 
static constexpr int32_t kLetterTable0 [431]
 
static constexpr uint16_t kLetterTable1Size = 87
 
static constexpr int32_t kLetterTable1 [87]
 
static constexpr uint16_t kLetterTable2Size = 4
 
static constexpr int32_t kLetterTable2 [4]
 
static constexpr uint16_t kLetterTable3Size = 2
 
static constexpr int32_t kLetterTable3 [2]
 
static constexpr uint16_t kLetterTable4Size = 2
 
static constexpr int32_t kLetterTable4 [2]
 
static constexpr uint16_t kLetterTable5Size = 100
 
static constexpr int32_t kLetterTable5 [100]
 
static constexpr uint16_t kLetterTable6Size = 6
 
static constexpr int32_t kLetterTable6 [6]
 
static constexpr uint16_t kLetterTable7Size = 48
 
static constexpr int32_t kLetterTable7 [48]
 
static const MultiCharacterSpecialCase< 1 > kEcma262CanonicalizeMultiStrings0 [1]
 
static constexpr uint16_t kEcma262CanonicalizeTable0Size = 498
 
static constexpr int32_t kEcma262CanonicalizeTable0 [996]
 
static const MultiCharacterSpecialCase< 1 > kEcma262CanonicalizeMultiStrings1 [1]
 
static constexpr uint16_t kEcma262CanonicalizeTable1Size = 73
 
static constexpr int32_t kEcma262CanonicalizeTable1 [146]
 
static const MultiCharacterSpecialCase< 1 > kEcma262CanonicalizeMultiStrings5 [1]
 
static constexpr uint16_t kEcma262CanonicalizeTable5Size = 95
 
static constexpr int32_t kEcma262CanonicalizeTable5 [190]
 
static const MultiCharacterSpecialCase< 1 > kEcma262CanonicalizeMultiStrings7 [1]
 
static constexpr uint16_t kEcma262CanonicalizeTable7Size = 2
 
static constexpr int32_t kEcma262CanonicalizeTable7 [4]
 
static const MultiCharacterSpecialCase< 4 > kEcma262UnCanonicalizeMultiStrings0 [507]
 
static constexpr uint16_t kEcma262UnCanonicalizeTable0Size = 1005
 
static constexpr int32_t kEcma262UnCanonicalizeTable0 [2010]
 
static const MultiCharacterSpecialCase< 2 > kEcma262UnCanonicalizeMultiStrings1 [83]
 
static constexpr uint16_t kEcma262UnCanonicalizeTable1Size = 149
 
static constexpr int32_t kEcma262UnCanonicalizeTable1 [298]
 
static const MultiCharacterSpecialCase< 2 > kEcma262UnCanonicalizeMultiStrings5 [104]
 
static constexpr uint16_t kEcma262UnCanonicalizeTable5Size = 198
 
static constexpr int32_t kEcma262UnCanonicalizeTable5 [396]
 
static const MultiCharacterSpecialCase< 2 > kEcma262UnCanonicalizeMultiStrings7 [3]
 
static constexpr uint16_t kEcma262UnCanonicalizeTable7Size = 4
 
static constexpr int32_t kEcma262UnCanonicalizeTable7 [8]
 
static const MultiCharacterSpecialCase< 1 > kCanonicalizationRangeMultiStrings0 [1]
 
static constexpr uint16_t kCanonicalizationRangeTable0Size = 70
 
static constexpr int32_t kCanonicalizationRangeTable0 [140]
 
static const MultiCharacterSpecialCase< 1 > kCanonicalizationRangeMultiStrings1 [1]
 
static constexpr uint16_t kCanonicalizationRangeTable1Size = 14
 
static constexpr int32_t kCanonicalizationRangeTable1 [28]
 
static const MultiCharacterSpecialCase< 1 > kCanonicalizationRangeMultiStrings7 [1]
 
static constexpr uint16_t kCanonicalizationRangeTable7Size = 4
 
static constexpr int32_t kCanonicalizationRangeTable7 [8]
 

Function Documentation

◆ GetEntry()

static int32_t unibrow::GetEntry ( int32_t  entry)
inlinestatic

Definition at line 30 of file unibrow.cc.

30 {
31 return entry & (kStartBit - 1);
32}
static constexpr intptr_t kStartBit
Definition: unibrow.cc:15

◆ IsStart()

static bool unibrow::IsStart ( int32_t  entry)
inlinestatic

Definition at line 34 of file unibrow.cc.

34 {
35 return (entry & kStartBit) != 0;
36}

◆ LookupMapping()

template<bool ranges_are_linear, intptr_t kW>
static intptr_t unibrow::LookupMapping ( const int32_t *  table,
uint16_t  size,
const MultiCharacterSpecialCase< kW > *  multi_chars,
int32_t  chr,
int32_t  next,
int32_t *  result,
bool *  allow_caching_ptr 
)
static

Definition at line 96 of file unibrow.cc.

102 {
103 const intptr_t kEntryDist = 2;
104 uint16_t key = chr & (kChunkBits - 1);
105 uint16_t chunk_start = chr - key;
106 uint32_t low = 0;
107 uint32_t high = size - 1;
108 while (high != low) {
109 uint32_t mid = low + ((high - low) >> 1);
110 int32_t current_value = GetEntry(TableGet<kEntryDist>(table, mid));
111 // If we've found an entry less than or equal to this one, and the next one
112 // is not also less than this one, we've arrived.
113 if ((current_value <= key) &&
114 (mid + 1 == size ||
115 GetEntry(TableGet<kEntryDist>(table, mid + 1)) > key)) {
116 low = mid;
117 break;
118 } else if (current_value < key) {
119 low = mid + 1;
120 } else if (current_value > key) {
121 // If we've just checked the bottom-most value and it's not
122 // the one we're looking for, we're done.
123 if (mid == 0) break;
124 high = mid - 1;
125 }
126 }
127 int32_t field = TableGet<kEntryDist>(table, low);
128 int32_t entry = GetEntry(field);
129 bool is_start = IsStart(field);
130 bool found = (entry == key) || (entry < key && is_start);
131 if (found) {
132 int32_t value = table[2 * low + 1];
133 if (value == 0) {
134 // 0 means not present
135 return 0;
136 } else if ((value & 3) == 0) {
137 // Low bits 0 means a constant offset from the given character.
138 if (ranges_are_linear) {
139 result[0] = chr + (value >> 2);
140 } else {
141 result[0] = entry + chunk_start + (value >> 2);
142 }
143 return 1;
144 } else if ((value & 3) == 1) {
145 // Low bits 1 means a special case mapping
146 if (allow_caching_ptr) *allow_caching_ptr = false;
147 const MultiCharacterSpecialCase<kW>& mapping = multi_chars[value >> 2];
148 intptr_t length = 0;
149 for (length = 0; length < kW; length++) {
150 int32_t mapped = mapping.chars[length];
151 if (mapped == MultiCharacterSpecialCase<kW>::kEndOfEncoding) break;
152 if (ranges_are_linear) {
153 result[length] = mapped + (key - entry);
154 } else {
155 result[length] = mapped;
156 }
157 }
158 return length;
159 } else {
160 // Low bits 2 means a really really special case
161 if (allow_caching_ptr) *allow_caching_ptr = false;
162 // The cases of this switch are defined in unicode.py in the
163 // really_special_cases mapping.
164 switch (value >> 2) {
165 case 1:
166 // Really special case 1: upper case sigma. This letter
167 // converts to two different lower case sigmas depending on
168 // whether or not it occurs at the end of a word.
169 if (next != 0 && Letter::Is(next)) {
170 result[0] = 0x03C3;
171 } else {
172 result[0] = 0x03C2;
173 }
174 return 1;
175 default:
176 return 0;
177 }
178 return -1;
179 }
180 } else {
181 return 0;
182 }
183}
static float next(float f)
SI F table(const skcms_Curve *curve, F v)
constexpr int kW
uint8_t value
GAsyncResult * result
size_t length
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
Definition: switches.h:259
static bool IsStart(int32_t entry)
Definition: unibrow.cc:34
static int32_t GetEntry(int32_t entry)
Definition: unibrow.cc:30
static constexpr intptr_t kChunkBits
Definition: unibrow.cc:16

◆ LookupPredicate()

static bool unibrow::LookupPredicate ( const int32_t *  table,
uint16_t  size,
int32_t  chr 
)
static

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.

Definition at line 48 of file unibrow.cc.

48 {
49 const intptr_t kEntryDist = 1;
50 uint16_t value = chr & (kChunkBits - 1);
51 uint32_t low = 0;
52 uint32_t high = size - 1;
53 while (high != low) {
54 uint32_t mid = low + ((high - low) >> 1);
55 int32_t current_value = GetEntry(TableGet<kEntryDist>(table, mid));
56 // If we've found an entry less than or equal to this one, and the
57 // next one is not also less than this one, we've arrived.
58 if ((current_value <= value) &&
59 (mid + 1 == size ||
60 GetEntry(TableGet<kEntryDist>(table, mid + 1)) > value)) {
61 low = mid;
62 break;
63 } else if (current_value < value) {
64 low = mid + 1;
65 } else if (current_value > value) {
66 // If we've just checked the bottom-most value and it's not
67 // the one we're looking for, we're done.
68 if (mid == 0) break;
69 high = mid - 1;
70 }
71 }
72 int32_t field = TableGet<kEntryDist>(table, low);
73 int32_t entry = GetEntry(field);
74 bool is_start = IsStart(field);
75 return (entry == value) || (entry < value && is_start);
76}

◆ TableGet()

template<intptr_t D>
static int32_t unibrow::TableGet ( const int32_t *  table,
intptr_t  index 
)
inlinestatic

Definition at line 26 of file unibrow.cc.

26 {
27 return table[D * index];
28}

Variable Documentation

◆ kCanonicalizationRangeMultiStrings0

const MultiCharacterSpecialCase<1> unibrow::kCanonicalizationRangeMultiStrings0[1]
static
Initial value:
= {
{{kSentinel}} }
@ kSentinel

Definition at line 1797 of file unibrow.cc.

◆ kCanonicalizationRangeMultiStrings1

const MultiCharacterSpecialCase<1> unibrow::kCanonicalizationRangeMultiStrings1[1]
static
Initial value:
= {
{{kSentinel}} }

Definition at line 1810 of file unibrow.cc.

◆ kCanonicalizationRangeMultiStrings7

const MultiCharacterSpecialCase<1> unibrow::kCanonicalizationRangeMultiStrings7[1]
static
Initial value:
= {
{{kSentinel}} }

Definition at line 1816 of file unibrow.cc.

◆ kCanonicalizationRangeTable0

constexpr int32_t unibrow::kCanonicalizationRangeTable0[140]
staticconstexpr
Initial value:
= {
1073741889, 100, 90, 0, 1073741921, 100, 122, 0, 1073742016, 88, 214, 0, 1073742040, 24, 222, 0,
1073742048, 88, 246, 0, 1073742072, 24, 254, 0, 1073742715, 8, 893, 0, 1073742728, 8, 906, 0,
1073742749, 8, 927, 0, 1073742759, 16, 939, 0, 1073742765, 8, 943, 0, 1073742781, 8, 959, 0,
1073742791, 16, 971, 0, 1073742845, 8, 1023, 0, 1073742848, 60, 1039, 0, 1073742864, 124, 1071, 0,
1073742896, 124, 1103, 0, 1073742928, 60, 1119, 0, 1073743153, 148, 1366, 0, 1073743201, 148, 1414, 0,
1073746080, 148, 4293, 0, 1073749760, 28, 7943, 0, 1073749768, 28, 7951, 0, 1073749776, 20, 7957, 0,
1073749784, 20, 7965, 0, 1073749792, 28, 7975, 0, 1073749800, 28, 7983, 0, 1073749808, 28, 7991, 0,
1073749816, 28, 7999, 0, 1073749824, 20, 8005, 0, 1073749832, 20, 8013, 0, 1073749856, 28, 8039, 0,
1073749864, 28, 8047, 0, 1073749874, 12, 8053, 0, 1073749960, 12, 8139, 0 }

Definition at line 1800 of file unibrow.cc.

◆ kCanonicalizationRangeTable0Size

constexpr uint16_t unibrow::kCanonicalizationRangeTable0Size = 70
staticconstexpr

Definition at line 1799 of file unibrow.cc.

◆ kCanonicalizationRangeTable1

constexpr int32_t unibrow::kCanonicalizationRangeTable1[28]
staticconstexpr
Initial value:
= {
1073742176, 60, 367, 0, 1073742192, 60, 383, 0, 1073743030, 100, 1231, 0, 1073743056, 100, 1257, 0,
1073744896, 184, 3118, 0, 1073744944, 184, 3166, 0, 1073745152, 148, 3365, 0 }

Definition at line 1813 of file unibrow.cc.

◆ kCanonicalizationRangeTable1Size

constexpr uint16_t unibrow::kCanonicalizationRangeTable1Size = 14
staticconstexpr

Definition at line 1812 of file unibrow.cc.

◆ kCanonicalizationRangeTable7

constexpr int32_t unibrow::kCanonicalizationRangeTable7[8]
staticconstexpr
Initial value:
= {
1073749793, 100, 7994, 0, 1073749825, 100, 8026, 0 }

Definition at line 1819 of file unibrow.cc.

◆ kCanonicalizationRangeTable7Size

constexpr uint16_t unibrow::kCanonicalizationRangeTable7Size = 4
staticconstexpr

Definition at line 1818 of file unibrow.cc.

◆ kChunkBits

constexpr intptr_t unibrow::kChunkBits = (1 << 13)
staticconstexpr

Definition at line 16 of file unibrow.cc.

◆ kEcma262CanonicalizeMultiStrings0

const MultiCharacterSpecialCase<1> unibrow::kEcma262CanonicalizeMultiStrings0[1]
static
Initial value:
= {
{{kSentinel}} }

Definition at line 389 of file unibrow.cc.

◆ kEcma262CanonicalizeMultiStrings1

const MultiCharacterSpecialCase<1> unibrow::kEcma262CanonicalizeMultiStrings1[1]
static
Initial value:
= {
{{kSentinel}} }

Definition at line 580 of file unibrow.cc.

◆ kEcma262CanonicalizeMultiStrings5

const MultiCharacterSpecialCase<1> unibrow::kEcma262CanonicalizeMultiStrings5[1]
static
Initial value:
= {
{{kSentinel}} }

Definition at line 594 of file unibrow.cc.

◆ kEcma262CanonicalizeMultiStrings7

const MultiCharacterSpecialCase<1> unibrow::kEcma262CanonicalizeMultiStrings7[1]
static
Initial value:
= {
{{kSentinel}} }

Definition at line 622 of file unibrow.cc.

◆ kEcma262CanonicalizeTable0

constexpr int32_t unibrow::kEcma262CanonicalizeTable0[996]
staticconstexpr

Definition at line 392 of file unibrow.cc.

◆ kEcma262CanonicalizeTable0Size

constexpr uint16_t unibrow::kEcma262CanonicalizeTable0Size = 498
staticconstexpr

Definition at line 391 of file unibrow.cc.

◆ kEcma262CanonicalizeTable1

constexpr int32_t unibrow::kEcma262CanonicalizeTable1[146]
staticconstexpr
Initial value:
= {
334, -112, 1073742192, -64, 383, -64, 388, -4, 1073743056, -104, 1257, -104, 1073744944, -192, 3166, -192,
3169, -4, 3173, -43180, 3174, -43168, 3176, -4, 3178, -4, 3180, -4, 3187, -4, 3190, -4,
3201, -4, 3203, -4, 3205, -4, 3207, -4, 3209, -4, 3211, -4, 3213, -4, 3215, -4,
3217, -4, 3219, -4, 3221, -4, 3223, -4, 3225, -4, 3227, -4, 3229, -4, 3231, -4,
3233, -4, 3235, -4, 3237, -4, 3239, -4, 3241, -4, 3243, -4, 3245, -4, 3247, -4,
3249, -4, 3251, -4, 3253, -4, 3255, -4, 3257, -4, 3259, -4, 3261, -4, 3263, -4,
3265, -4, 3267, -4, 3269, -4, 3271, -4, 3273, -4, 3275, -4, 3277, -4, 3279, -4,
3281, -4, 3283, -4, 3285, -4, 3287, -4, 3289, -4, 3291, -4, 3293, -4, 3295, -4,
3297, -4, 3299, -4, 3308, -4, 3310, -4, 3315, -4, 1073745152, -29056, 3365, -29056, 3367, -29056,
3373, -29056 }

Definition at line 583 of file unibrow.cc.

◆ kEcma262CanonicalizeTable1Size

constexpr uint16_t unibrow::kEcma262CanonicalizeTable1Size = 73
staticconstexpr

Definition at line 582 of file unibrow.cc.

◆ kEcma262CanonicalizeTable5

constexpr int32_t unibrow::kEcma262CanonicalizeTable5[190]
staticconstexpr
Initial value:
= {1601, -4, 1603, -4, 1605, -4, 1607, -4,
1609, -4, 1611, -4, 1613, -4, 1615, -4,
1617, -4, 1619, -4, 1621, -4, 1623, -4,
1625, -4, 1627, -4, 1629, -4, 1631, -4,
1633, -4, 1635, -4, 1637, -4, 1639, -4,
1641, -4, 1643, -4, 1645, -4, 1665, -4,
1667, -4, 1669, -4, 1671, -4, 1673, -4,
1675, -4, 1677, -4, 1679, -4, 1681, -4,
1683, -4, 1685, -4, 1687, -4, 1689, -4,
1691, -4, 1827, -4, 1829, -4, 1831, -4,
1833, -4, 1835, -4, 1837, -4, 1839, -4,
1843, -4, 1845, -4, 1847, -4, 1849, -4,
1851, -4, 1853, -4, 1855, -4, 1857, -4,
1859, -4, 1861, -4, 1863, -4, 1865, -4,
1867, -4, 1869, -4, 1871, -4, 1873, -4,
1875, -4, 1877, -4, 1879, -4, 1881, -4,
1883, -4, 1885, -4, 1887, -4, 1889, -4,
1891, -4, 1893, -4, 1895, -4, 1897, -4,
1899, -4, 1901, -4, 1903, -4, 1914, -4,
1916, -4, 1919, -4, 1921, -4, 1923, -4,
1925, -4, 1927, -4, 1932, -4, 1937, -4,
1939, -4, 1943, -4, 1945, -4, 1947, -4,
1949, -4, 1951, -4, 1953, -4, 1955, -4,
1957, -4, 1959, -4, 1961, -4}

Definition at line 597 of file unibrow.cc.

◆ kEcma262CanonicalizeTable5Size

constexpr uint16_t unibrow::kEcma262CanonicalizeTable5Size = 95
staticconstexpr

Definition at line 596 of file unibrow.cc.

◆ kEcma262CanonicalizeTable7

constexpr int32_t unibrow::kEcma262CanonicalizeTable7[4]
staticconstexpr
Initial value:
= {
1073749825, -128, 8026, -128 }

Definition at line 625 of file unibrow.cc.

◆ kEcma262CanonicalizeTable7Size

constexpr uint16_t unibrow::kEcma262CanonicalizeTable7Size = 2
staticconstexpr

Definition at line 624 of file unibrow.cc.

◆ kEcma262UnCanonicalizeMultiStrings0

const MultiCharacterSpecialCase<4> unibrow::kEcma262UnCanonicalizeMultiStrings0[507]
static

Definition at line 666 of file unibrow.cc.

◆ kEcma262UnCanonicalizeMultiStrings1

const MultiCharacterSpecialCase<2> unibrow::kEcma262UnCanonicalizeMultiStrings1[83]
static
Initial value:
= {
{{8498, 8526}}, {{8544, 8560}}, {{8559, 8575}}, {{8579, 8580}},
{{9398, 9424}}, {{9423, 9449}}, {{11264, 11312}}, {{11310, 11358}},
{{11360, 11361}}, {{619, 11362}}, {{7549, 11363}}, {{637, 11364}},
{{570, 11365}}, {{574, 11366}}, {{11367, 11368}}, {{11369, 11370}},
{{11371, 11372}}, {{593, 11373}}, {{625, 11374}}, {{592, 11375}},
{{594, 11376}}, {{11378, 11379}}, {{11381, 11382}}, {{575, 11390}},
{{576, 11391}}, {{11392, 11393}}, {{11394, 11395}}, {{11396, 11397}},
{{11398, 11399}}, {{11400, 11401}}, {{11402, 11403}}, {{11404, 11405}},
{{11406, 11407}}, {{11408, 11409}}, {{11410, 11411}}, {{11412, 11413}},
{{11414, 11415}}, {{11416, 11417}}, {{11418, 11419}}, {{11420, 11421}},
{{11422, 11423}}, {{11424, 11425}}, {{11426, 11427}}, {{11428, 11429}},
{{11430, 11431}}, {{11432, 11433}}, {{11434, 11435}}, {{11436, 11437}},
{{11438, 11439}}, {{11440, 11441}}, {{11442, 11443}}, {{11444, 11445}},
{{11446, 11447}}, {{11448, 11449}}, {{11450, 11451}}, {{11452, 11453}},
{{11454, 11455}}, {{11456, 11457}}, {{11458, 11459}}, {{11460, 11461}},
{{11462, 11463}}, {{11464, 11465}}, {{11466, 11467}}, {{11468, 11469}},
{{11470, 11471}}, {{11472, 11473}}, {{11474, 11475}}, {{11476, 11477}},
{{11478, 11479}}, {{11480, 11481}}, {{11482, 11483}}, {{11484, 11485}},
{{11486, 11487}}, {{11488, 11489}}, {{11490, 11491}}, {{11499, 11500}},
{{11501, 11502}}, {{11506, 11507}}, {{4256, 11520}}, {{4293, 11557}},
{{4295, 11559}}, {{4301, 11565}}, {{kSentinel}} }

Definition at line 1553 of file unibrow.cc.

◆ kEcma262UnCanonicalizeMultiStrings5

const MultiCharacterSpecialCase<2> unibrow::kEcma262UnCanonicalizeMultiStrings5[104]
static

Definition at line 1597 of file unibrow.cc.

◆ kEcma262UnCanonicalizeMultiStrings7

const MultiCharacterSpecialCase<2> unibrow::kEcma262UnCanonicalizeMultiStrings7[3]
static
Initial value:
= {
{{65313, 65345}}, {{65338, 65370}}, {{kSentinel}} }

Definition at line 1754 of file unibrow.cc.

◆ kEcma262UnCanonicalizeTable0

constexpr int32_t unibrow::kEcma262UnCanonicalizeTable0[2010]
staticconstexpr

Definition at line 1175 of file unibrow.cc.

◆ kEcma262UnCanonicalizeTable0Size

constexpr uint16_t unibrow::kEcma262UnCanonicalizeTable0Size = 1005
staticconstexpr

Definition at line 1174 of file unibrow.cc.

◆ kEcma262UnCanonicalizeTable1

constexpr int32_t unibrow::kEcma262UnCanonicalizeTable1[298]
staticconstexpr
Initial value:
= {
306, 1, 334, 1, 1073742176, 5, 367, 9, 1073742192, 5, 383, 9, 387, 13, 388, 13,
1073743030, 17, 1231, 21, 1073743056, 17, 1257, 21, 1073744896, 25, 3118, 29, 1073744944, 25, 3166, 29,
3168, 33, 3169, 33, 3170, 37, 3171, 41, 3172, 45, 3173, 49, 3174, 53, 3175, 57,
3176, 57, 3177, 61, 3178, 61, 3179, 65, 3180, 65, 3181, 69, 3182, 73, 3183, 77,
3184, 81, 3186, 85, 3187, 85, 3189, 89, 3190, 89, 1073745022, 93, 3199, 97, 3200, 101,
3201, 101, 3202, 105, 3203, 105, 3204, 109, 3205, 109, 3206, 113, 3207, 113, 3208, 117,
3209, 117, 3210, 121, 3211, 121, 3212, 125, 3213, 125, 3214, 129, 3215, 129, 3216, 133,
3217, 133, 3218, 137, 3219, 137, 3220, 141, 3221, 141, 3222, 145, 3223, 145, 3224, 149,
3225, 149, 3226, 153, 3227, 153, 3228, 157, 3229, 157, 3230, 161, 3231, 161, 3232, 165,
3233, 165, 3234, 169, 3235, 169, 3236, 173, 3237, 173, 3238, 177, 3239, 177, 3240, 181,
3241, 181, 3242, 185, 3243, 185, 3244, 189, 3245, 189, 3246, 193, 3247, 193, 3248, 197,
3249, 197, 3250, 201, 3251, 201, 3252, 205, 3253, 205, 3254, 209, 3255, 209, 3256, 213,
3257, 213, 3258, 217, 3259, 217, 3260, 221, 3261, 221, 3262, 225, 3263, 225, 3264, 229,
3265, 229, 3266, 233, 3267, 233, 3268, 237, 3269, 237, 3270, 241, 3271, 241, 3272, 245,
3273, 245, 3274, 249, 3275, 249, 3276, 253, 3277, 253, 3278, 257, 3279, 257, 3280, 261,
3281, 261, 3282, 265, 3283, 265, 3284, 269, 3285, 269, 3286, 273, 3287, 273, 3288, 277,
3289, 277, 3290, 281, 3291, 281, 3292, 285, 3293, 285, 3294, 289, 3295, 289, 3296, 293,
3297, 293, 3298, 297, 3299, 297, 3307, 301, 3308, 301, 3309, 305, 3310, 305, 3314, 309,
3315, 309, 1073745152, 313, 3365, 317, 3367, 321, 3373, 325 }

Definition at line 1576 of file unibrow.cc.

◆ kEcma262UnCanonicalizeTable1Size

constexpr uint16_t unibrow::kEcma262UnCanonicalizeTable1Size = 149
staticconstexpr

Definition at line 1575 of file unibrow.cc.

◆ kEcma262UnCanonicalizeTable5

constexpr int32_t unibrow::kEcma262UnCanonicalizeTable5[396]
staticconstexpr

Definition at line 1703 of file unibrow.cc.

◆ kEcma262UnCanonicalizeTable5Size

constexpr uint16_t unibrow::kEcma262UnCanonicalizeTable5Size = 198
staticconstexpr

Definition at line 1702 of file unibrow.cc.

◆ kEcma262UnCanonicalizeTable7

constexpr int32_t unibrow::kEcma262UnCanonicalizeTable7[8]
staticconstexpr
Initial value:
= {
1073749793, 1, 7994, 5, 1073749825, 1, 8026, 5 }

Definition at line 1757 of file unibrow.cc.

◆ kEcma262UnCanonicalizeTable7Size

constexpr uint16_t unibrow::kEcma262UnCanonicalizeTable7Size = 4
staticconstexpr

Definition at line 1756 of file unibrow.cc.

◆ kLetterTable0

constexpr int32_t unibrow::kLetterTable0[431]
staticconstexpr

Definition at line 188 of file unibrow.cc.

◆ kLetterTable0Size

constexpr uint16_t unibrow::kLetterTable0Size = 431
staticconstexpr

Definition at line 187 of file unibrow.cc.

◆ kLetterTable1

constexpr int32_t unibrow::kLetterTable1[87]
staticconstexpr
Initial value:
= {
113, 127, 1073741968, 156, 258, 263, 1073742090, 275,
277, 1073742105, 285, 292, 294, 296, 1073742122, 301,
1073742127, 313, 1073742140, 319, 1073742149, 329, 334, 1073742176,
392, 1073744896, 3118, 1073744944, 3166, 1073744992, 3300, 1073745131,
3310, 1073745138, 3315, 1073745152, 3365, 3367, 3373, 1073745200,
3431, 3439, 1073745280, 3478, 1073745312, 3494, 1073745320, 3502,
1073745328, 3510, 1073745336, 3518, 1073745344, 3526, 1073745352, 3534,
1073745360, 3542, 1073745368, 3550, 3631, 1073745925, 4103, 1073745953,
4137, 1073745969, 4149, 1073745976, 4156, 1073745985, 4246, 1073746077,
4255, 1073746081, 4346, 1073746172, 4351, 1073746181, 4397, 1073746225,
4494, 1073746336, 4538, 1073746416, 4607, 1073746944, 8191 }

Definition at line 298 of file unibrow.cc.

◆ kLetterTable1Size

constexpr uint16_t unibrow::kLetterTable1Size = 87
staticconstexpr

Definition at line 297 of file unibrow.cc.

◆ kLetterTable2

constexpr int32_t unibrow::kLetterTable2[4]
staticconstexpr
Initial value:
= {
1073741824, 3509, 1073745408, 8191 }

Definition at line 311 of file unibrow.cc.

◆ kLetterTable2Size

constexpr uint16_t unibrow::kLetterTable2Size = 4
staticconstexpr

Definition at line 310 of file unibrow.cc.

◆ kLetterTable3

constexpr int32_t unibrow::kLetterTable3[2]
staticconstexpr
Initial value:
= {
1073741824, 8191 }

Definition at line 314 of file unibrow.cc.

◆ kLetterTable3Size

constexpr uint16_t unibrow::kLetterTable3Size = 2
staticconstexpr

Definition at line 313 of file unibrow.cc.

◆ kLetterTable4

constexpr int32_t unibrow::kLetterTable4[2]
staticconstexpr
Initial value:
= {
1073741824, 8140 }

Definition at line 317 of file unibrow.cc.

◆ kLetterTable4Size

constexpr uint16_t unibrow::kLetterTable4Size = 2
staticconstexpr

Definition at line 316 of file unibrow.cc.

◆ kLetterTable5

constexpr int32_t unibrow::kLetterTable5[100]
staticconstexpr
Initial value:
= {
1073741824, 1164, 1073743056, 1277,
1073743104, 1548, 1073743376, 1567,
1073743402, 1579, 1073743424, 1646,
1073743487, 1693, 1073743520, 1775,
1073743639, 1823, 1073743650, 1928,
1073743755, 1934, 1073743760, 1965,
1073743792, 1969, 1073743863, 2049,
1073743875, 2053, 1073743879, 2058,
1073743884, 2082, 1073743936, 2163,
1073744002, 2227, 1073744114, 2295,
2299, 1073744138, 2341, 1073744176,
2374, 1073744224, 2428, 1073744260,
2482, 2511, 1073744352, 2532,
1073744358, 2543, 1073744378, 2558,
1073744384, 2600, 1073744448, 2626,
1073744452, 2635, 1073744480, 2678,
2682, 1073744510, 2735, 2737,
1073744565, 2742, 1073744569, 2749,
2752, 2754, 1073744603, 2781,
1073744608, 2794, 1073744626, 2804,
1073744641, 2822, 1073744649, 2830,
1073744657, 2838, 1073744672, 2854,
1073744680, 2862, 1073744688, 2906,
1073744732, 2911, 1073744740, 2917,
1073744832, 3042, 1073744896, 8191}

Definition at line 320 of file unibrow.cc.

◆ kLetterTable5Size

constexpr uint16_t unibrow::kLetterTable5Size = 100
staticconstexpr

Definition at line 319 of file unibrow.cc.

◆ kLetterTable6

constexpr int32_t unibrow::kLetterTable6[6]
staticconstexpr
Initial value:
= {
1073741824, 6051, 1073747888, 6086, 1073747915, 6139 }

Definition at line 347 of file unibrow.cc.

◆ kLetterTable6Size

constexpr uint16_t unibrow::kLetterTable6Size = 6
staticconstexpr

Definition at line 346 of file unibrow.cc.

◆ kLetterTable7

constexpr int32_t unibrow::kLetterTable7[48]
staticconstexpr
Initial value:
= {
1073748224, 6765, 1073748592, 6873, 1073748736, 6918, 1073748755, 6935,
6941, 1073748767, 6952, 1073748778, 6966, 1073748792, 6972, 6974,
1073748800, 6977, 1073748803, 6980, 1073748806, 7089, 1073748947, 7485,
1073749328, 7567, 1073749394, 7623, 1073749488, 7675, 1073749616, 7796,
1073749622, 7932, 1073749793, 7994, 1073749825, 8026, 1073749862, 8126,
1073749954, 8135, 1073749962, 8143, 1073749970, 8151, 1073749978, 8156 }

Definition at line 350 of file unibrow.cc.

◆ kLetterTable7Size

constexpr uint16_t unibrow::kLetterTable7Size = 48
staticconstexpr

Definition at line 349 of file unibrow.cc.

◆ kSentinel

constexpr int32_t unibrow::kSentinel = static_cast<int32_t>(-1)
staticconstexpr

Definition at line 17 of file unibrow.cc.

◆ kStartBit

constexpr intptr_t unibrow::kStartBit = (1 << 30)
staticconstexpr

Definition at line 15 of file unibrow.cc.