@@ -267,7 +267,10 @@ ruleTester.run("no-implied-eval", rule, {
267267 { code : 'setTimeout("x = 1;");' , errors : [ expectedError ] } ,
268268 { code : 'setTimeout("x = 1;", 100);' , errors : [ expectedError ] } ,
269269 { code : 'setInterval("x = 1;");' , errors : [ expectedError ] } ,
270- { code : 'execScript("x = 1;");' , errors : [ expectedError ] } ,
270+ {
271+ code : 'execScript("x = 1;");' ,
272+ errors : [ { messageId : "execScript" , type : "CallExpression" } ] ,
273+ } ,
271274
272275 {
273276 code : "const s = 'x=1'; setTimeout(s, 100);" ,
@@ -291,6 +294,11 @@ ruleTester.run("no-implied-eval", rule, {
291294 languageOptions : { globals : globals . browser } ,
292295 errors : [ expectedError ] ,
293296 } ,
297+ {
298+ code : "window.execScript('foo')" ,
299+ languageOptions : { globals : globals . browser } ,
300+ errors : [ { messageId : "execScript" , type : "CallExpression" } ] ,
301+ } ,
294302 {
295303 code : "window['setTimeout']('foo')" ,
296304 languageOptions : { globals : globals . browser } ,
@@ -306,11 +314,26 @@ ruleTester.run("no-implied-eval", rule, {
306314 languageOptions : { ecmaVersion : 6 , globals : globals . browser } ,
307315 errors : [ expectedError ] ,
308316 } ,
317+ {
318+ code : "window['execScript']('foo')" ,
319+ languageOptions : { globals : globals . browser } ,
320+ errors : [ { messageId : "execScript" , type : "CallExpression" } ] ,
321+ } ,
322+ {
323+ code : "window[`execScript`]('foo')" ,
324+ languageOptions : { ecmaVersion : 6 , globals : globals . browser } ,
325+ errors : [ { messageId : "execScript" , type : "CallExpression" } ] ,
326+ } ,
309327 {
310328 code : "window.window['setInterval']('foo')" ,
311329 languageOptions : { globals : globals . browser } ,
312330 errors : [ expectedError ] ,
313331 } ,
332+ {
333+ code : "window.window['execScript']('foo')" ,
334+ languageOptions : { globals : globals . browser } ,
335+ errors : [ { messageId : "execScript" , type : "CallExpression" } ] ,
336+ } ,
314337 {
315338 code : "global.setTimeout('foo')" ,
316339 languageOptions : { sourceType : "commonjs" } ,
@@ -321,6 +344,11 @@ ruleTester.run("no-implied-eval", rule, {
321344 languageOptions : { sourceType : "commonjs" } ,
322345 errors : [ expectedError ] ,
323346 } ,
347+ {
348+ code : "global.execScript('foo')" ,
349+ languageOptions : { sourceType : "commonjs" } ,
350+ errors : [ { messageId : "execScript" , type : "CallExpression" } ] ,
351+ } ,
324352 {
325353 code : "global['setTimeout']('foo')" ,
326354 languageOptions : { sourceType : "commonjs" } ,
@@ -336,11 +364,26 @@ ruleTester.run("no-implied-eval", rule, {
336364 languageOptions : { ecmaVersion : 6 , sourceType : "commonjs" } ,
337365 errors : [ expectedError ] ,
338366 } ,
367+ {
368+ code : "global['execScript']('foo')" ,
369+ languageOptions : { sourceType : "commonjs" } ,
370+ errors : [ { messageId : "execScript" , type : "CallExpression" } ] ,
371+ } ,
372+ {
373+ code : "global[`execScript`]('foo')" ,
374+ languageOptions : { ecmaVersion : 6 , sourceType : "commonjs" } ,
375+ errors : [ { messageId : "execScript" , type : "CallExpression" } ] ,
376+ } ,
339377 {
340378 code : "global.global['setInterval']('foo')" ,
341379 languageOptions : { sourceType : "commonjs" } ,
342380 errors : [ expectedError ] ,
343381 } ,
382+ {
383+ code : "global.global['execScript']('foo')" ,
384+ languageOptions : { sourceType : "commonjs" } ,
385+ errors : [ { messageId : "execScript" , type : "CallExpression" } ] ,
386+ } ,
344387 {
345388 code : "globalThis.setTimeout('foo')" ,
346389 languageOptions : { ecmaVersion : 2020 } ,
@@ -351,6 +394,11 @@ ruleTester.run("no-implied-eval", rule, {
351394 languageOptions : { ecmaVersion : 2020 } ,
352395 errors : [ expectedError ] ,
353396 } ,
397+ {
398+ code : "globalThis.execScript('foo')" ,
399+ languageOptions : { ecmaVersion : 2020 } ,
400+ errors : [ { messageId : "execScript" , type : "CallExpression" } ] ,
401+ } ,
354402
355403 // template literals
356404 {
@@ -456,7 +504,7 @@ ruleTester.run("no-implied-eval", rule, {
456504
457505 // no error on line 2
458506 {
459- messageId : "impliedEval " ,
507+ messageId : "execScript " ,
460508 type : "CallExpression" ,
461509 line : 3 ,
462510 } ,
@@ -479,7 +527,7 @@ ruleTester.run("no-implied-eval", rule, {
479527
480528 // no error on line 2
481529 {
482- messageId : "impliedEval " ,
530+ messageId : "execScript " ,
483531 type : "CallExpression" ,
484532 line : 3 ,
485533 } ,
@@ -502,7 +550,7 @@ ruleTester.run("no-implied-eval", rule, {
502550
503551 // no error on line 2
504552 {
505- messageId : "impliedEval " ,
553+ messageId : "execScript " ,
506554 type : "CallExpression" ,
507555 line : 3 ,
508556 } ,
@@ -526,5 +574,21 @@ ruleTester.run("no-implied-eval", rule, {
526574 } ,
527575 errors : [ { messageId : "impliedEval" } ] ,
528576 } ,
577+ {
578+ code : "window?.execScript('code')" ,
579+ languageOptions : {
580+ ecmaVersion : 2020 ,
581+ globals : { window : "readonly" } ,
582+ } ,
583+ errors : [ { messageId : "execScript" } ] ,
584+ } ,
585+ {
586+ code : "(window?.execScript)('code')" ,
587+ languageOptions : {
588+ ecmaVersion : 2020 ,
589+ globals : { window : "readonly" } ,
590+ } ,
591+ errors : [ { messageId : "execScript" } ] ,
592+ } ,
529593 ] ,
530594} ) ;
0 commit comments