@@ -22,26 +22,62 @@ ruleTester.run('no-hex-escape', rule, {
2222 `const foo = 'foo\\u00b1'` ,
2323 `const foo = 'foo\\u00b1foo'` ,
2424 `const foo = '\\u00b1foo'` ,
25+ `const foo = '\\\\xb1'` ,
26+ `const foo = '\\\\\\\\xb1'` ,
27+ `const foo = 'foo\\\\xb1'` ,
28+ `const foo = 'foo\\\\\\\\xb1'` ,
29+ `const foo = '\\\\xd8\\\\x3d\\\\xdc\\\\xa9'` ,
30+ `const foo = 'foo\\\\x12foo\\\\x34'` ,
31+ `const foo = '\\\\\\\\xd8\\\\\\\\x3d\\\\\\\\xdc\\\\\\\\xa9'` ,
32+ `const foo = 'foo\\\\\\\\x12foo\\\\\\\\x34'` ,
2533 'const foo = 42' ,
2634 'const foo = `foo`' ,
2735 'const foo = `\\u00b1`' ,
2836 'const foo = `\\u00b1\\u00b1`' ,
2937 'const foo = `foo\\u00b1`' ,
3038 'const foo = `foo\\u00b1foo`' ,
3139 'const foo = `\\u00b1foo`' ,
32- 'const foo = `42`'
40+ 'const foo = `42`' ,
41+ 'const foo = `\\\\xb1`' ,
42+ 'const foo = `\\\\\\\\xb1`' ,
43+ 'const foo = `foo\\\\xb1`' ,
44+ 'const foo = `foo\\\\\\\\xb1`' ,
45+ 'const foo = `\\\\xd8\\\\x3d\\\\xdc\\\\xa9`' ,
46+ 'const foo = `foo\\\\x12foo\\\\x34`' ,
47+ 'const foo = `\\\\\\\\xd8\\\\\\\\x3d\\\\\\\\xdc\\\\\\\\xa9`' ,
48+ 'const foo = `foo\\\\\\\\x12foo\\\\\\\\x34`'
3349 ] ,
3450 invalid : [
3551 {
3652 code : `const foo = '\\xb1'` ,
3753 errors : [ error ] ,
3854 output : `const foo = '\\u00b1'`
3955 } ,
56+ {
57+ code : `const foo = '\\\\\\xb1'` ,
58+ errors : [ error ] ,
59+ output : `const foo = '\\\\\\u00b1'`
60+ } ,
4061 {
4162 code : `const foo = '\\xb1\\xb1'` ,
4263 errors : [ error ] ,
4364 output : `const foo = '\\u00b1\\u00b1'`
4465 } ,
66+ {
67+ code : `const foo = '\\\\\\xb1\\\\\\xb1'` ,
68+ errors : [ error ] ,
69+ output : `const foo = '\\\\\\u00b1\\\\\\u00b1'`
70+ } ,
71+ {
72+ code : `const foo = '\\\\\\xb1\\\\\\\\xb1'` ,
73+ errors : [ error ] ,
74+ output : `const foo = '\\\\\\u00b1\\\\\\\\xb1'`
75+ } ,
76+ {
77+ code : `const foo = '\\\\\\\\\\xb1\\\\\\xb1'` ,
78+ errors : [ error ] ,
79+ output : `const foo = '\\\\\\\\\\u00b1\\\\\\u00b1'`
80+ } ,
4581 {
4682 code : `const foo = '\\xb1foo'` ,
4783 errors : [ error ] ,
@@ -57,6 +93,16 @@ ruleTester.run('no-hex-escape', rule, {
5793 errors : [ error ] ,
5894 output : `const foo = 'foo\\u00b1'`
5995 } ,
96+ {
97+ code : `const foo = 'foo\\\\\\xb1'` ,
98+ errors : [ error ] ,
99+ output : `const foo = 'foo\\\\\\u00b1'`
100+ } ,
101+ {
102+ code : `const foo = 'foo\\\\\\\\\\xb1'` ,
103+ errors : [ error ] ,
104+ output : `const foo = 'foo\\\\\\\\\\u00b1'`
105+ } ,
60106 {
61107 code : `const foo = 'foo\\x12foo\\x34'` ,
62108 errors : [ error ] ,
@@ -67,17 +113,42 @@ ruleTester.run('no-hex-escape', rule, {
67113 errors : [ error ] ,
68114 output : `const foo = '42\\u001242\\u0034'`
69115 } ,
116+ {
117+ code : `const foo = '42\\\\\\x1242\\\\\\x34'` ,
118+ errors : [ error ] ,
119+ output : `const foo = '42\\\\\\u001242\\\\\\u0034'`
120+ } ,
70121 // Test template literals
71122 {
72123 code : 'const foo = `\\xb1`' ,
73124 errors : [ error ] ,
74125 output : 'const foo = `\\u00b1`'
75126 } ,
127+ {
128+ code : 'const foo = `\\\\\\xb1`' ,
129+ errors : [ error ] ,
130+ output : 'const foo = `\\\\\\u00b1`'
131+ } ,
76132 {
77133 code : 'const foo = `\\xb1\\xb1`' ,
78134 errors : [ error ] ,
79135 output : 'const foo = `\\u00b1\\u00b1`'
80136 } ,
137+ {
138+ code : 'const foo = `\\\\\\xb1\\\\\\xb1`' ,
139+ errors : [ error ] ,
140+ output : 'const foo = `\\\\\\u00b1\\\\\\u00b1`'
141+ } ,
142+ {
143+ code : 'const foo = `\\\\\\\\\\xb1\\\\\\xb1`' ,
144+ errors : [ error ] ,
145+ output : 'const foo = `\\\\\\\\\\u00b1\\\\\\u00b1`'
146+ } ,
147+ {
148+ code : 'const foo = `\\\\\\\\\\xb1\\\\\\\\xb1`' ,
149+ errors : [ error ] ,
150+ output : 'const foo = `\\\\\\\\\\u00b1\\\\\\\\xb1`'
151+ } ,
81152 {
82153 code : 'const foo = `\\xb1foo`' ,
83154 errors : [ error ] ,
@@ -93,6 +164,16 @@ ruleTester.run('no-hex-escape', rule, {
93164 errors : [ error ] ,
94165 output : 'const foo = `foo\\u00b1`'
95166 } ,
167+ {
168+ code : 'const foo = `foo\\\\\\xb1`' ,
169+ errors : [ error ] ,
170+ output : 'const foo = `foo\\\\\\u00b1`'
171+ } ,
172+ {
173+ code : 'const foo = `foo\\\\\\\\\\xb1`' ,
174+ errors : [ error ] ,
175+ output : 'const foo = `foo\\\\\\\\\\u00b1`'
176+ } ,
96177 {
97178 code : 'const foo = `foo\\x12foo\\x34`' ,
98179 errors : [ error ] ,
@@ -102,6 +183,11 @@ ruleTester.run('no-hex-escape', rule, {
102183 code : 'const foo = `42\\x1242\\x34`' ,
103184 errors : [ error ] ,
104185 output : 'const foo = `42\\u001242\\u0034`'
186+ } ,
187+ {
188+ code : 'const foo = `42\\\\\\x1242\\\\\\x34`' ,
189+ errors : [ error ] ,
190+ output : 'const foo = `42\\\\\\u001242\\\\\\u0034`'
105191 }
106192 ]
107193} ) ;
0 commit comments