@@ -5,8 +5,8 @@ use super::{Context, LintRule};
55use crate :: js_regex:: * ;
66use crate :: Program ;
77use crate :: ProgramRef ;
8- use deno_ast:: swc:: ast:: Expr ;
98use deno_ast:: swc:: ast:: ExprOrSpread ;
9+ use deno_ast:: swc:: ast:: { Callee , Expr } ;
1010use deno_ast:: swc:: visit:: Visit ;
1111use deno_ast:: swc:: visit:: { noop_visit_type, VisitWith } ;
1212use deno_ast:: SourceRange ;
@@ -126,8 +126,12 @@ impl<'c, 'view> Visit for NoInvalidRegexpVisitor<'c, 'view> {
126126 }
127127
128128 fn visit_call_expr ( & mut self , call_expr : & deno_ast:: swc:: ast:: CallExpr ) {
129- if let deno_ast:: swc:: ast:: Callee :: Expr ( expr) = & call_expr. callee {
130- self . handle_call_or_new_expr ( expr, & call_expr. args , call_expr. range ( ) ) ;
129+ match & call_expr. callee {
130+ Callee :: Super ( _) => call_expr. args . visit_children_with ( self ) ,
131+ Callee :: Expr ( expr) => {
132+ self . handle_call_or_new_expr ( expr, & call_expr. args , call_expr. range ( ) ) ;
133+ }
134+ _ => { }
131135 }
132136 }
133137
@@ -217,6 +221,12 @@ let re = new RegExp('foo', x);",
217221new function () {
218222 return /+/;
219223};" : [ { line: 3 , col: 9 , message: MESSAGE , hint: HINT } ] ,
224+ r"
225+ class C extends RegExp {
226+ constructor() {
227+ super(/+/);
228+ }
229+ }" : [ { line: 4 , col: 10 , message: MESSAGE , hint: HINT } ] ,
220230 }
221231 }
222232}
0 commit comments