OpenCoverage

YarrCanonicalizeUCS2.h

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/3rdparty/masm/yarr/YarrCanonicalizeUCS2.h
Switch to Source codePreprocessed file
LineSourceCount
1-
2namespace JSC { namespace Yarr {-
3-
4-
5-
6-
7enum UCS2CanonicalizationType {-
8 CanonicalizeUnique,-
9 CanonicalizeSet,-
10 CanonicalizeRangeLo,-
11 CanonicalizeRangeHi,-
12 CanonicalizeAlternatingAligned,-
13 CanonicalizeAlternatingUnaligned,-
14};-
15struct UCS2CanonicalizationRange { uint16_t begin, end, value, type; };-
16extern const size_t UCS2_CANONICALIZATION_RANGES;-
17extern uint16_t* characterSetInfo[];-
18extern UCS2CanonicalizationRange rangeInfo[];-
19-
20-
21-
22enum LatinCanonicalizationType {-
23 CanonicalizeLatinSelf,-
24 CanonicalizeLatinMask0x20,-
25 CanonicalizeLatinOther,-
26 CanonicalizeLatinInvalid,-
27};-
28struct LatinCanonicalizationRange { uint16_t begin, end, value, type; };-
29extern const size_t LATIN_CANONICALIZATION_RANGES;-
30extern LatinCanonicalizationRange latinRangeInfo[];-
31-
32-
33inline UCS2CanonicalizationRange* rangeInfoFor(UChar ch)-
34{-
35 UCS2CanonicalizationRange* info = rangeInfo;-
36 size_t entries = UCS2_CANONICALIZATION_RANGES;-
37-
38 while (true) {-
39 size_t candidate = entries >> 1;-
40 UCS2CanonicalizationRange* candidateInfo = info + candidate;-
41 if (ch < candidateInfo->begin
ch < candidateInfo->beginDescription
TRUEevaluated 660 times by 2 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_qjsengine
FALSEevaluated 118 times by 2 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_qjsengine
)
118-660
42 entries = candidate;
executed 660 times by 2 tests: entries = candidate;
Executed by:
  • tst_ecmascripttests
  • tst_qjsengine
660
43 else if (ch <= candidateInfo->end
ch <= candidateInfo->endDescription
TRUEevaluated 90 times by 2 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_qjsengine
FALSEevaluated 28 times by 1 test
Evaluated by:
  • tst_ecmascripttests
)
28-90
44 return
executed 90 times by 2 tests: return candidateInfo;
Executed by:
  • tst_ecmascripttests
  • tst_qjsengine
candidateInfo;
executed 90 times by 2 tests: return candidateInfo;
Executed by:
  • tst_ecmascripttests
  • tst_qjsengine
90
45 else {-
46 info = candidateInfo + 1;-
47 entries -= (candidate + 1);-
48 }
executed 28 times by 1 test: end of block
Executed by:
  • tst_ecmascripttests
28
49 }-
50}
never executed: end of block
0
51-
52-
53inline UChar getCanonicalPair(UCS2CanonicalizationRange* info, UChar ch)-
54{-
55 (!(ch >= info->begin && ch <= info->end) ? (qmlWTFReportAssertionFailure(__FILE__, 85, __PRETTY_FUNCTION__, "ch >= info->begin && ch <= info->end"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0);-
56 switch (info->type) {-
57 case
never executed: case CanonicalizeRangeLo:
CanonicalizeRangeLo:
never executed: case CanonicalizeRangeLo:
0
58 return
never executed: return ch + info->value;
ch + info->value;
never executed: return ch + info->value;
0
59 case
never executed: case CanonicalizeRangeHi:
CanonicalizeRangeHi:
never executed: case CanonicalizeRangeHi:
0
60 return
never executed: return ch - info->value;
ch - info->value;
never executed: return ch - info->value;
0
61 case
never executed: case CanonicalizeAlternatingAligned:
CanonicalizeAlternatingAligned:
never executed: case CanonicalizeAlternatingAligned:
0
62 return
never executed: return ch ^ 1;
ch ^ 1;
never executed: return ch ^ 1;
0
63 case
never executed: case CanonicalizeAlternatingUnaligned:
CanonicalizeAlternatingUnaligned:
never executed: case CanonicalizeAlternatingUnaligned:
0
64 return
never executed: return ((ch - 1) ^ 1) + 1;
((ch - 1) ^ 1) + 1;
never executed: return ((ch - 1) ^ 1) + 1;
0
65 default
never executed: default:
:
never executed: default:
0
66 do { qmlWTFReportAssertionFailure(__FILE__, 96, __PRETTY_FUNCTION__, 0); (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap()); } while (0);-
67 }
never executed: end of block
0
68 do { qmlWTFReportAssertionFailure(__FILE__, 98, __PRETTY_FUNCTION__, 0); (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap()); } while (0);-
69 return
never executed: return 0;
0;
never executed: return 0;
0
70}-
71-
72-
73inline bool isCanonicallyUnique(UChar ch)-
74{-
75 return
executed 86 times by 2 tests: return rangeInfoFor(ch)->type == CanonicalizeUnique;
Executed by:
  • tst_ecmascripttests
  • tst_qjsengine
rangeInfoFor(ch)->type == CanonicalizeUnique;
executed 86 times by 2 tests: return rangeInfoFor(ch)->type == CanonicalizeUnique;
Executed by:
  • tst_ecmascripttests
  • tst_qjsengine
86
76}-
77-
78-
79inline bool areCanonicallyEquivalent(UChar a, UChar b)-
80{-
81 UCS2CanonicalizationRange* info = rangeInfoFor(a);-
82 switch (info->type) {-
83 case
never executed: case CanonicalizeUnique:
CanonicalizeUnique:
never executed: case CanonicalizeUnique:
0
84 return
never executed: return a == b;
a == b;
never executed: return a == b;
0
85 case
never executed: case CanonicalizeSet:
CanonicalizeSet:
never executed: case CanonicalizeSet:
{
0
86 for (uint16_t* set = characterSetInfo[info->value]; (
(a = *set)Description
TRUEnever evaluated
FALSEnever evaluated
a = *set)
(a = *set)Description
TRUEnever evaluated
FALSEnever evaluated
; ++set) {
0
87 if (a == b
a == bDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
88 return
never executed: return true;
true;
never executed: return true;
0
89 }
never executed: end of block
0
90 return
never executed: return false;
false;
never executed: return false;
0
91 }-
92 case
never executed: case CanonicalizeRangeLo:
CanonicalizeRangeLo:
never executed: case CanonicalizeRangeLo:
0
93 return
never executed: return (a == b) || (a + info->value == b);
(a == b) || (a + info->value == b);
never executed: return (a == b) || (a + info->value == b);
0
94 case
never executed: case CanonicalizeRangeHi:
CanonicalizeRangeHi:
never executed: case CanonicalizeRangeHi:
0
95 return
never executed: return (a == b) || (a - info->value == b);
(a == b) || (a - info->value == b);
never executed: return (a == b) || (a - info->value == b);
0
96 case
never executed: case CanonicalizeAlternatingAligned:
CanonicalizeAlternatingAligned:
never executed: case CanonicalizeAlternatingAligned:
0
97 return
never executed: return (a | 1) == (b | 1);
(a | 1) == (b | 1);
never executed: return (a | 1) == (b | 1);
0
98 case
never executed: case CanonicalizeAlternatingUnaligned:
CanonicalizeAlternatingUnaligned:
never executed: case CanonicalizeAlternatingUnaligned:
0
99 return
never executed: return ((a - 1) | 1) == ((b - 1) | 1);
((a - 1) | 1) == ((b - 1) | 1);
never executed: return ((a - 1) | 1) == ((b - 1) | 1);
0
100 }-
101-
102 do { qmlWTFReportAssertionFailure(__FILE__, 132, __PRETTY_FUNCTION__, 0); (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap()); } while (0);-
103 return
never executed: return false;
false;
never executed: return false;
0
104}-
105-
106} }-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.0