@@ -26,7 +26,14 @@ ruleTester.run("no-control-regex", rule, {
2626 "var regex = RegExp('x1f')" ,
2727 "new RegExp('[')" ,
2828 "RegExp('[')" ,
29- "new (function foo(){})('\\x1f')"
29+ "new (function foo(){})('\\x1f')" ,
30+ { code : String . raw `/\u{20}/u` , parserOptions : { ecmaVersion : 2015 } } ,
31+ String . raw `/\u{1F}/` ,
32+ String . raw `/\u{1F}/g` ,
33+ String . raw `new RegExp("\\u{20}", "u")` ,
34+ String . raw `new RegExp("\\u{1F}")` ,
35+ String . raw `new RegExp("\\u{1F}", "g")` ,
36+ String . raw `new RegExp("\\u{1F}", flags)` // when flags are unknown, this rule assumes there's no `u` flag
3037 ] ,
3138 invalid : [
3239 { code : String . raw `var regex = /\x1f/` , errors : [ { messageId : "unexpected" , data : { controlChars : "\\x1f" } , type : "Literal" } ] } ,
@@ -46,6 +53,38 @@ ruleTester.run("no-control-regex", rule, {
4653 code : String . raw `var regex = /(?<\u{1d49c}>.)\x1f/` ,
4754 parserOptions : { ecmaVersion : 2020 } ,
4855 errors : [ { messageId : "unexpected" , data : { controlChars : "\\x1f" } , type : "Literal" } ]
56+ } ,
57+ {
58+ code : String . raw `new RegExp("\\u001F", flags)` ,
59+ errors : [ { messageId : "unexpected" , data : { controlChars : "\\x1f" } , type : "Literal" } ]
60+ } ,
61+ {
62+ code : String . raw `/\u{1111}*\x1F/u` ,
63+ parserOptions : { ecmaVersion : 2015 } ,
64+ errors : [ { messageId : "unexpected" , data : { controlChars : "\\x1f" } , type : "Literal" } ]
65+ } ,
66+ {
67+ code : String . raw `new RegExp("\\u{1111}*\\x1F", "u")` ,
68+ parserOptions : { ecmaVersion : 2015 } ,
69+ errors : [ { messageId : "unexpected" , data : { controlChars : "\\x1f" } , type : "Literal" } ]
70+ } ,
71+ {
72+ code : String . raw `/\u{1F}/u` ,
73+ parserOptions : { ecmaVersion : 2015 } ,
74+ errors : [ { messageId : "unexpected" , data : { controlChars : "\\x1f" } , type : "Literal" } ]
75+ } ,
76+ {
77+ code : String . raw `/\u{1F}/gui` ,
78+ parserOptions : { ecmaVersion : 2015 } ,
79+ errors : [ { messageId : "unexpected" , data : { controlChars : "\\x1f" } , type : "Literal" } ]
80+ } ,
81+ {
82+ code : String . raw `new RegExp("\\u{1F}", "u")` ,
83+ errors : [ { messageId : "unexpected" , data : { controlChars : "\\x1f" } , type : "Literal" } ]
84+ } ,
85+ {
86+ code : String . raw `new RegExp("\\u{1F}", "gui")` ,
87+ errors : [ { messageId : "unexpected" , data : { controlChars : "\\x1f" } , type : "Literal" } ]
4988 }
5089 ]
5190} ) ;
0 commit comments