v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
unicode.cc File Reference
#include "src/strings/unicode.h"
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include "src/strings/unicode-inl.h"
Include dependency graph for unicode.cc:

Go to the source code of this file.

Classes

struct  unibrow::MultiCharacterSpecialCase< kW >
 

Namespaces

namespace  unibrow
 

Typedefs

using unibrow::int16_t = signed short
 
using unibrow::uint16_t = unsigned short
 
using unibrow::int32_t = int
 

Functions

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

Variables

static const int unibrow::kStartBit = (1 << 30)
 
static const int unibrow::kChunkBits = (1 << 13)
 
static const uchar unibrow::kSentinel = static_cast<uchar>(-1)
 
static const uint16_t unibrow::kUppercaseTable0Size = 455
 
static const int32_t unibrow::kUppercaseTable0 [455]
 
static const uint16_t unibrow::kUppercaseTable1Size = 86
 
static const int32_t unibrow::kUppercaseTable1 [86]
 
static const uint16_t unibrow::kUppercaseTable5Size = 101
 
static const int32_t unibrow::kUppercaseTable5 [101]
 
static const uint16_t unibrow::kUppercaseTable7Size = 2
 
static const int32_t unibrow::kUppercaseTable7 [2] = {1073749793, 7994}
 
static const uint16_t unibrow::kLetterTable0Size = 431
 
static const int32_t unibrow::kLetterTable0 [431]
 
static const uint16_t unibrow::kLetterTable1Size = 87
 
static const int32_t unibrow::kLetterTable1 [87]
 
static const uint16_t unibrow::kLetterTable2Size = 4
 
static const int32_t unibrow::kLetterTable2 [4] = {1073741824, 3509, 1073745408, 8191}
 
static const uint16_t unibrow::kLetterTable3Size = 2
 
static const int32_t unibrow::kLetterTable3 [2] = {1073741824, 8191}
 
static const uint16_t unibrow::kLetterTable4Size = 2
 
static const int32_t unibrow::kLetterTable4 [2] = {1073741824, 8140}
 
static const uint16_t unibrow::kLetterTable5Size = 100
 
static const int32_t unibrow::kLetterTable5 [100]
 
static const uint16_t unibrow::kLetterTable6Size = 6
 
static const int32_t unibrow::kLetterTable6 [6]
 
static const uint16_t unibrow::kLetterTable7Size = 48
 
static const int32_t unibrow::kLetterTable7 [48]
 
static const uint16_t unibrow::kID_StartTable0Size = 434
 
static const int32_t unibrow::kID_StartTable0 [434]
 
static const uint16_t unibrow::kID_StartTable1Size = 84
 
static const int32_t unibrow::kID_StartTable1 [84]
 
static const uint16_t unibrow::kID_StartTable2Size = 4
 
static const int32_t unibrow::kID_StartTable2 [4] = {1073741824, 3509, 1073745408, 8191}
 
static const uint16_t unibrow::kID_StartTable3Size = 2
 
static const int32_t unibrow::kID_StartTable3 [2] = {1073741824, 8191}
 
static const uint16_t unibrow::kID_StartTable4Size = 2
 
static const int32_t unibrow::kID_StartTable4 [2] = {1073741824, 8140}
 
static const uint16_t unibrow::kID_StartTable5Size = 100
 
static const int32_t unibrow::kID_StartTable5 [100]
 
static const uint16_t unibrow::kID_StartTable6Size = 6
 
static const int32_t unibrow::kID_StartTable6 [6]
 
static const uint16_t unibrow::kID_StartTable7Size = 48
 
static const int32_t unibrow::kID_StartTable7 [48]
 
static const uint16_t unibrow::kID_ContinueTable0Size = 315
 
static const int32_t unibrow::kID_ContinueTable0 [315]
 
static const uint16_t unibrow::kID_ContinueTable1Size = 19
 
static const int32_t unibrow::kID_ContinueTable1 [19]
 
static const uint16_t unibrow::kID_ContinueTable5Size = 63
 
static const int32_t unibrow::kID_ContinueTable5 [63]
 
static const uint16_t unibrow::kID_ContinueTable7Size = 12
 
static const int32_t unibrow::kID_ContinueTable7 [12]
 
static const uint16_t unibrow::kWhiteSpaceTable0Size = 6
 
static const int32_t unibrow::kWhiteSpaceTable0 [6] = {9, 1073741835, 12, 32, 160, 5760}
 
static const uint16_t unibrow::kWhiteSpaceTable1Size = 5
 
static const int32_t unibrow::kWhiteSpaceTable1 [5] = {1073741824, 10, 47, 95, 4096}
 
static const uint16_t unibrow::kWhiteSpaceTable7Size = 1
 
static const int32_t unibrow::kWhiteSpaceTable7 [1] = {7935}
 
static const MultiCharacterSpecialCase< 2 > unibrow::kToLowercaseMultiStrings0 [2]
 
static const uint16_t unibrow::kToLowercaseTable0Size = 488
 
static const int32_t unibrow::kToLowercaseTable0 [976]
 
static const uint16_t unibrow::kToLowercaseMultiStrings0Size = 2
 
static const MultiCharacterSpecialCase< 1 > unibrow::kToLowercaseMultiStrings1 [1]
 
static const uint16_t unibrow::kToLowercaseTable1Size = 79
 
static const int32_t unibrow::kToLowercaseTable1 [158]
 
static const uint16_t unibrow::kToLowercaseMultiStrings1Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kToLowercaseMultiStrings5 [1]
 
static const uint16_t unibrow::kToLowercaseTable5Size = 103
 
static const int32_t unibrow::kToLowercaseTable5 [206]
 
static const uint16_t unibrow::kToLowercaseMultiStrings5Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kToLowercaseMultiStrings7 [1]
 
static const uint16_t unibrow::kToLowercaseTable7Size = 2
 
static const int32_t unibrow::kToLowercaseTable7 [4] = {1073749793, 128, 7994, 128}
 
static const uint16_t unibrow::kToLowercaseMultiStrings7Size = 1
 
static const MultiCharacterSpecialCase< 3 > unibrow::kToUppercaseMultiStrings0 [62]
 
static const uint16_t unibrow::kToUppercaseTable0Size = 590
 
static const int32_t unibrow::kToUppercaseTable0 [1180]
 
static const uint16_t unibrow::kToUppercaseMultiStrings0Size = 62
 
static const MultiCharacterSpecialCase< 1 > unibrow::kToUppercaseMultiStrings1 [1]
 
static const uint16_t unibrow::kToUppercaseTable1Size = 73
 
static const int32_t unibrow::kToUppercaseTable1 [146]
 
static const uint16_t unibrow::kToUppercaseMultiStrings1Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kToUppercaseMultiStrings5 [1]
 
static const uint16_t unibrow::kToUppercaseTable5Size = 95
 
static const int32_t unibrow::kToUppercaseTable5 [190]
 
static const uint16_t unibrow::kToUppercaseMultiStrings5Size = 1
 
static const MultiCharacterSpecialCase< 3 > unibrow::kToUppercaseMultiStrings7 [12]
 
static const uint16_t unibrow::kToUppercaseTable7Size = 14
 
static const int32_t unibrow::kToUppercaseTable7 [28]
 
static const uint16_t unibrow::kToUppercaseMultiStrings7Size = 12
 
static const MultiCharacterSpecialCase< 1 > unibrow::kEcma262CanonicalizeMultiStrings0 [1]
 
static const uint16_t unibrow::kEcma262CanonicalizeTable0Size = 498
 
static const int32_t unibrow::kEcma262CanonicalizeTable0 [996]
 
static const uint16_t unibrow::kEcma262CanonicalizeMultiStrings0Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kEcma262CanonicalizeMultiStrings1 [1]
 
static const uint16_t unibrow::kEcma262CanonicalizeTable1Size = 73
 
static const int32_t unibrow::kEcma262CanonicalizeTable1 [146]
 
static const uint16_t unibrow::kEcma262CanonicalizeMultiStrings1Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kEcma262CanonicalizeMultiStrings5 [1]
 
static const uint16_t unibrow::kEcma262CanonicalizeTable5Size = 95
 
static const int32_t unibrow::kEcma262CanonicalizeTable5 [190]
 
static const uint16_t unibrow::kEcma262CanonicalizeMultiStrings5Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kEcma262CanonicalizeMultiStrings7 [1]
 
static const uint16_t unibrow::kEcma262CanonicalizeTable7Size = 2
 
static const int32_t unibrow::kEcma262CanonicalizeTable7 [4]
 
static const uint16_t unibrow::kEcma262CanonicalizeMultiStrings7Size = 1
 
static const MultiCharacterSpecialCase< 4 > unibrow::kEcma262UnCanonicalizeMultiStrings0 [507]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeTable0Size = 1005
 
static const int32_t unibrow::kEcma262UnCanonicalizeTable0 [2010]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeMultiStrings0Size = 507
 
static const MultiCharacterSpecialCase< 2 > unibrow::kEcma262UnCanonicalizeMultiStrings1 [83]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeTable1Size = 149
 
static const int32_t unibrow::kEcma262UnCanonicalizeTable1 [298]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeMultiStrings1Size = 83
 
static const MultiCharacterSpecialCase< 2 > unibrow::kEcma262UnCanonicalizeMultiStrings5 [104]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeTable5Size = 198
 
static const int32_t unibrow::kEcma262UnCanonicalizeTable5 [396]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeMultiStrings5Size = 104
 
static const MultiCharacterSpecialCase< 2 > unibrow::kEcma262UnCanonicalizeMultiStrings7 [3]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeTable7Size = 4
 
static const int32_t unibrow::kEcma262UnCanonicalizeTable7 [8]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeMultiStrings7Size = 3
 
static const MultiCharacterSpecialCase< 1 > unibrow::kCanonicalizationRangeMultiStrings0 [1] = {{{kSentinel}}}
 
static const uint16_t unibrow::kCanonicalizationRangeTable0Size = 70
 
static const int32_t unibrow::kCanonicalizationRangeTable0 [140]
 
static const uint16_t unibrow::kCanonicalizationRangeMultiStrings0Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kCanonicalizationRangeMultiStrings1 [1] = {{{kSentinel}}}
 
static const uint16_t unibrow::kCanonicalizationRangeTable1Size = 14
 
static const int32_t unibrow::kCanonicalizationRangeTable1 [28]
 
static const uint16_t unibrow::kCanonicalizationRangeMultiStrings1Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kCanonicalizationRangeMultiStrings7 [1] = {{{kSentinel}}}
 
static const uint16_t unibrow::kCanonicalizationRangeTable7Size = 4
 
static const int32_t unibrow::kCanonicalizationRangeTable7 [8]
 
static const uint16_t unibrow::kCanonicalizationRangeMultiStrings7Size = 1
 

Detailed Description

Implementations of functions for working with Unicode.

Definition in file unicode.cc.