@@ -252,6 +252,15 @@ ruleTester.run("no-unused-vars", rule, {
252252 { code : "(function(obj) { for ( const name in obj ) { return true } })({})" , parserOptions : { ecmaVersion : 6 } } ,
253253 { code : "(function(obj) { for ( const name in obj ) return true })({})" , parserOptions : { ecmaVersion : 6 } } ,
254254
255+ // For-of loops
256+ { code : "(function(iter) { let name; for ( name of iter ) return; })({});" , parserOptions : { ecmaVersion : 6 } } ,
257+ { code : "(function(iter) { let name; for ( name of iter ) { return; } })({});" , parserOptions : { ecmaVersion : 6 } } ,
258+ { code : "(function(iter) { for ( let name of iter ) { return true } })({})" , parserOptions : { ecmaVersion : 6 } } ,
259+ { code : "(function(iter) { for ( let name of iter ) return true })({})" , parserOptions : { ecmaVersion : 6 } } ,
260+
261+ { code : "(function(iter) { for ( const name of iter ) { return true } })({})" , parserOptions : { ecmaVersion : 6 } } ,
262+ { code : "(function(iter) { for ( const name of iter ) return true })({})" , parserOptions : { ecmaVersion : 6 } } ,
263+
255264 // Sequence Expressions (See https://github.com/eslint/eslint/issues/14325)
256265 { code : "let x = 0; foo = (0, x++);" , parserOptions : { ecmaVersion : 6 } } ,
257266 { code : "let x = 0; foo = (0, x += 1);" , parserOptions : { ecmaVersion : 6 } } ,
@@ -704,6 +713,50 @@ ruleTester.run("no-unused-vars", rule, {
704713 } ]
705714 } ,
706715
716+ // For-of loops
717+ {
718+ code : "(function(iter) { var name; for ( name of iter ) { i(); return; } })({});" ,
719+ env : { es6 : true } ,
720+ errors : [ {
721+ line : 1 ,
722+ column : 35 ,
723+ messageId : "unusedVar" ,
724+ data : {
725+ varName : "name" ,
726+ action : "assigned a value" ,
727+ additional : ""
728+ }
729+ } ]
730+ } ,
731+ {
732+ code : "(function(iter) { var name; for ( name of iter ) { } })({});" ,
733+ env : { es6 : true } ,
734+ errors : [ {
735+ line : 1 ,
736+ column : 35 ,
737+ messageId : "unusedVar" ,
738+ data : {
739+ varName : "name" ,
740+ action : "assigned a value" ,
741+ additional : ""
742+ }
743+ } ]
744+ } ,
745+ {
746+ code : "(function(iter) { for ( var name of iter ) { } })({});" ,
747+ env : { es6 : true } ,
748+ errors : [ {
749+ line : 1 ,
750+ column : 29 ,
751+ messageId : "unusedVar" ,
752+ data : {
753+ varName : "name" ,
754+ action : "assigned a value" ,
755+ additional : ""
756+ }
757+ } ]
758+ } ,
759+
707760 // https://github.com/eslint/eslint/issues/3617
708761 {
709762 code : "\n/* global foobar, foo, bar */\nfoobar;" ,
0 commit comments