File tree Expand file tree Collapse file tree 3 files changed +188
-1
lines changed
test/fixtures/parser/literal Expand file tree Collapse file tree 3 files changed +188
-1
lines changed Original file line number Diff line number Diff line change @@ -587,7 +587,12 @@ export class RegExpValidator {
587
587
uFlag = false ,
588
588
) : void {
589
589
this . _uFlag = uFlag && this . ecmaVersion >= 2015
590
- this . _nFlag = uFlag && this . ecmaVersion >= 2018
590
+ this . _nFlag =
591
+ ( uFlag && this . ecmaVersion >= 2018 ) ||
592
+ // Introduced as Normative Change in ES2023
593
+ // See https://github.com/tc39/ecma262/pull/2436
594
+ Boolean ( this . _options . strict && this . ecmaVersion >= 2023 )
595
+
591
596
this . reset ( source , start , end )
592
597
this . consumePattern ( )
593
598
Original file line number Diff line number Diff line change
1
+ {
2
+ "options" : {
3
+ "strict" : true ,
4
+ "ecmaVersion" : 2022
5
+ },
6
+ "patterns" : {
7
+ "/(?<foo>A)\\ k<foo>/" : {
8
+ "error" : {
9
+ "message" : " Invalid regular expression: /(?<foo>A)\\ k<foo>/: Invalid escape" ,
10
+ "index" : 11
11
+ }
12
+ }
13
+ }
14
+ }
Original file line number Diff line number Diff line change
1
+ {
2
+ "options" : {
3
+ "strict" : true ,
4
+ "ecmaVersion" : 2023
5
+ },
6
+ "patterns" : {
7
+ "/(?<foo>A)\\ k<foo>/" : {
8
+ "ast" : {
9
+ "type" : " RegExpLiteral" ,
10
+ "parent" : null ,
11
+ "start" : 0 ,
12
+ "end" : 18 ,
13
+ "raw" : " /(?<foo>A)\\ k<foo>/" ,
14
+ "pattern" : {
15
+ "type" : " Pattern" ,
16
+ "parent" : " ♻️.." ,
17
+ "start" : 1 ,
18
+ "end" : 17 ,
19
+ "raw" : " (?<foo>A)\\ k<foo>" ,
20
+ "alternatives" : [
21
+ {
22
+ "type" : " Alternative" ,
23
+ "parent" : " ♻️../.." ,
24
+ "start" : 1 ,
25
+ "end" : 17 ,
26
+ "raw" : " (?<foo>A)\\ k<foo>" ,
27
+ "elements" : [
28
+ {
29
+ "type" : " CapturingGroup" ,
30
+ "parent" : " ♻️../.." ,
31
+ "start" : 1 ,
32
+ "end" : 10 ,
33
+ "raw" : " (?<foo>A)" ,
34
+ "name" : " foo" ,
35
+ "alternatives" : [
36
+ {
37
+ "type" : " Alternative" ,
38
+ "parent" : " ♻️../.." ,
39
+ "start" : 8 ,
40
+ "end" : 9 ,
41
+ "raw" : " A" ,
42
+ "elements" : [
43
+ {
44
+ "type" : " Character" ,
45
+ "parent" : " ♻️../.." ,
46
+ "start" : 8 ,
47
+ "end" : 9 ,
48
+ "raw" : " A" ,
49
+ "value" : 65
50
+ }
51
+ ]
52
+ }
53
+ ],
54
+ "references" : [
55
+ " ♻️../1"
56
+ ]
57
+ },
58
+ {
59
+ "type" : " Backreference" ,
60
+ "parent" : " ♻️../.." ,
61
+ "start" : 10 ,
62
+ "end" : 17 ,
63
+ "raw" : " \\ k<foo>" ,
64
+ "ref" : " foo" ,
65
+ "resolved" : " ♻️../0"
66
+ }
67
+ ]
68
+ }
69
+ ]
70
+ },
71
+ "flags" : {
72
+ "type" : " Flags" ,
73
+ "parent" : " ♻️.." ,
74
+ "start" : 18 ,
75
+ "end" : 18 ,
76
+ "raw" : " " ,
77
+ "global" : false ,
78
+ "ignoreCase" : false ,
79
+ "multiline" : false ,
80
+ "unicode" : false ,
81
+ "sticky" : false ,
82
+ "dotAll" : false ,
83
+ "hasIndices" : false
84
+ }
85
+ }
86
+ },
87
+ "/(?<foo>A)\\ k<foo>/u" : {
88
+ "ast" : {
89
+ "type" : " RegExpLiteral" ,
90
+ "parent" : null ,
91
+ "start" : 0 ,
92
+ "end" : 19 ,
93
+ "raw" : " /(?<foo>A)\\ k<foo>/u" ,
94
+ "pattern" : {
95
+ "type" : " Pattern" ,
96
+ "parent" : " ♻️.." ,
97
+ "start" : 1 ,
98
+ "end" : 17 ,
99
+ "raw" : " (?<foo>A)\\ k<foo>" ,
100
+ "alternatives" : [
101
+ {
102
+ "type" : " Alternative" ,
103
+ "parent" : " ♻️../.." ,
104
+ "start" : 1 ,
105
+ "end" : 17 ,
106
+ "raw" : " (?<foo>A)\\ k<foo>" ,
107
+ "elements" : [
108
+ {
109
+ "type" : " CapturingGroup" ,
110
+ "parent" : " ♻️../.." ,
111
+ "start" : 1 ,
112
+ "end" : 10 ,
113
+ "raw" : " (?<foo>A)" ,
114
+ "name" : " foo" ,
115
+ "alternatives" : [
116
+ {
117
+ "type" : " Alternative" ,
118
+ "parent" : " ♻️../.." ,
119
+ "start" : 8 ,
120
+ "end" : 9 ,
121
+ "raw" : " A" ,
122
+ "elements" : [
123
+ {
124
+ "type" : " Character" ,
125
+ "parent" : " ♻️../.." ,
126
+ "start" : 8 ,
127
+ "end" : 9 ,
128
+ "raw" : " A" ,
129
+ "value" : 65
130
+ }
131
+ ]
132
+ }
133
+ ],
134
+ "references" : [
135
+ " ♻️../1"
136
+ ]
137
+ },
138
+ {
139
+ "type" : " Backreference" ,
140
+ "parent" : " ♻️../.." ,
141
+ "start" : 10 ,
142
+ "end" : 17 ,
143
+ "raw" : " \\ k<foo>" ,
144
+ "ref" : " foo" ,
145
+ "resolved" : " ♻️../0"
146
+ }
147
+ ]
148
+ }
149
+ ]
150
+ },
151
+ "flags" : {
152
+ "type" : " Flags" ,
153
+ "parent" : " ♻️.." ,
154
+ "start" : 18 ,
155
+ "end" : 19 ,
156
+ "raw" : " u" ,
157
+ "global" : false ,
158
+ "ignoreCase" : false ,
159
+ "multiline" : false ,
160
+ "unicode" : true ,
161
+ "sticky" : false ,
162
+ "dotAll" : false ,
163
+ "hasIndices" : false
164
+ }
165
+ }
166
+ }
167
+ }
168
+ }
You can’t perform that action at this time.
0 commit comments