@@ -2,46 +2,46 @@ import { BACKSPACE, DELETE, INFORMATION_SEPARATOR_ONE, LINE_TABULATION, LOW_LINE
2
2
// https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokenizer-definitions
3
3
4
4
// https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#digit
5
- export function isDigitCodePoint ( search : number | undefined ) : search is number {
6
- return ( typeof search !== "undefined" ) && search >= 0x0030 && search <= 0x0039 ;
5
+ export function isDigitCodePoint ( search : number ) : boolean {
6
+ return search >= 0x0030 && search <= 0x0039 ;
7
7
}
8
8
9
9
// https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#uppercase-letter
10
- function isUppercaseLetterCodePoint ( search : number | undefined ) : search is number {
11
- return ( typeof search !== "undefined" ) && search >= 0x0041 && search <= 0x005a ;
10
+ function isUppercaseLetterCodePoint ( search : number ) : boolean {
11
+ return search >= 0x0041 && search <= 0x005a ;
12
12
}
13
13
14
14
// https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#lowercase-letter
15
- function isLowercaseLetterCodePoint ( search : number | undefined ) : search is number {
16
- return ( typeof search !== "undefined" ) && search >= 0x0061 && search <= 0x007a ;
15
+ function isLowercaseLetterCodePoint ( search : number ) : boolean {
16
+ return search >= 0x0061 && search <= 0x007a ;
17
17
}
18
18
19
19
// https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#hex-digit
20
- export function isHexDigitCodePoint ( search : number | undefined ) : search is number {
21
- return ( typeof search !== "undefined" ) && (
20
+ export function isHexDigitCodePoint ( search : number ) : boolean {
21
+ return (
22
22
( search >= 0x0030 && search <= 0x0039 ) || // 0 .. 9
23
23
( search >= 0x0061 && search <= 0x0066 ) || // a .. f
24
24
( search >= 0x0041 && search <= 0x0046 ) // A .. F
25
25
) ;
26
26
}
27
27
28
28
// https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#letter
29
- function isLetterCodePoint ( search : number | undefined ) : search is number {
29
+ function isLetterCodePoint ( search : number ) : boolean {
30
30
return isLowercaseLetterCodePoint ( search ) || isUppercaseLetterCodePoint ( search ) ;
31
31
}
32
32
33
33
// https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#ident-start-code-point
34
- export function isIdentStartCodePoint ( search : number | undefined ) : search is number {
34
+ export function isIdentStartCodePoint ( search : number ) : boolean {
35
35
return isLetterCodePoint ( search ) || isNonASCII_IdentCodePoint ( search ) || search === LOW_LINE ;
36
36
}
37
37
38
38
// https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#ident-code-point
39
- export function isIdentCodePoint ( search : number | undefined ) : search is number {
39
+ export function isIdentCodePoint ( search : number ) : boolean {
40
40
return isIdentStartCodePoint ( search ) || isDigitCodePoint ( search ) || search === HYPHEN_MINUS ;
41
41
}
42
42
43
43
// https://drafts.csswg.org/css-syntax/#non-ascii-ident-code-point
44
- function isNonASCII_IdentCodePoint ( search : number | undefined ) : search is number {
44
+ function isNonASCII_IdentCodePoint ( search : number ) : boolean {
45
45
if (
46
46
search === 0x00B7 ||
47
47
search === 0x200C ||
@@ -53,10 +53,6 @@ function isNonASCII_IdentCodePoint(search: number | undefined): search is number
53
53
return true ;
54
54
}
55
55
56
- if ( typeof search === "undefined" ) {
57
- return false ;
58
- }
59
-
60
56
if (
61
57
( 0x00C0 <= search && search <= 0x00D6 ) ||
62
58
( 0x00D8 <= search && search <= 0x00F6 ) ||
@@ -71,12 +67,19 @@ function isNonASCII_IdentCodePoint(search: number | undefined): search is number
71
67
return true ;
72
68
}
73
69
70
+ // Input preprocessing
71
+ if ( search === 0x000 ) {
72
+ return true ;
73
+ } else if ( isSurrogate ( search ) ) {
74
+ return true ;
75
+ }
76
+
74
77
return search >= 0x10000 ;
75
78
}
76
79
77
80
// https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#non-printable-code-point
78
- export function isNonPrintableCodePoint ( search : number | undefined ) : search is number {
79
- return ( typeof search !== "undefined" ) && (
81
+ export function isNonPrintableCodePoint ( search : number ) : boolean {
82
+ return (
80
83
( search === LINE_TABULATION ) ||
81
84
( search === DELETE ) ||
82
85
( NULL <= search && search <= BACKSPACE ) ||
@@ -85,16 +88,16 @@ export function isNonPrintableCodePoint(search: number | undefined): search is n
85
88
}
86
89
87
90
// https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#whitespace
88
- export function isNewLine ( search : number | undefined ) : search is number {
91
+ export function isNewLine ( search : number ) : boolean {
89
92
return search === LINE_FEED || search === CARRIAGE_RETURN || search === FORM_FEED ;
90
93
}
91
94
92
95
// https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#whitespace
93
- export function isWhitespace ( search : number | undefined ) : search is number {
96
+ export function isWhitespace ( search : number ) : boolean {
94
97
return search === SPACE || search === LINE_FEED || search === CHARACTER_TABULATION || search === CARRIAGE_RETURN || search === FORM_FEED ;
95
98
}
96
99
97
100
// https://infra.spec.whatwg.org/#surrogate
98
- export function isSurrogate ( search : number | undefined ) : search is number {
99
- return ( typeof search !== "undefined" ) && search >= 0xd800 && search <= 0xdfff ;
101
+ export function isSurrogate ( search : number ) : boolean {
102
+ return search >= 0xd800 && search <= 0xdfff ;
100
103
}
0 commit comments