@@ -47,7 +47,25 @@ ruleTester.run("no-unreachable", rule, {
47
47
"function foo() { var x = 1; for (x in {}) { return; } x = 2; }" ,
48
48
"function foo() { var x = 1; try { return; } finally { x = 2; } }" ,
49
49
"function foo() { var x = 1; for (;;) { if (x) break; } x = 2; }" ,
50
- "A: { break A; } foo()"
50
+ "A: { break A; } foo()" ,
51
+ {
52
+ code : "function* foo() { try { yield 1; return; } catch (err) { return err; } }" ,
53
+ parserOptions : {
54
+ ecmaVersion : 6
55
+ }
56
+ } ,
57
+ {
58
+ code : "function foo() { try { bar(); return; } catch (err) { return err; } }" ,
59
+ parserOptions : {
60
+ ecmaVersion : 6
61
+ }
62
+ } ,
63
+ {
64
+ code : "function foo() { try { a.b.c = 1; return; } catch (err) { return err; } }" ,
65
+ parserOptions : {
66
+ ecmaVersion : 6
67
+ }
68
+ }
51
69
] ,
52
70
invalid : [
53
71
{ code : "function foo() { return x; var x = 1; }" , errors : [ { messageId : "unreachableCode" , type : "VariableDeclaration" } ] } ,
@@ -206,6 +224,84 @@ ruleTester.run("no-unreachable", rule, {
206
224
endColumn : 25
207
225
}
208
226
]
227
+ } ,
228
+ {
229
+ code : `
230
+ function* foo() {
231
+ try {
232
+ return;
233
+ } catch (err) {
234
+ return err;
235
+ }
236
+ }` ,
237
+ parserOptions : {
238
+ ecmaVersion : 6
239
+ } ,
240
+ errors : [
241
+ {
242
+ messageId : "unreachableCode" ,
243
+ type : "BlockStatement" ,
244
+ line : 5 ,
245
+ column : 35 ,
246
+ endLine : 7 ,
247
+ endColumn : 22
248
+ }
249
+ ]
250
+ } ,
251
+ {
252
+ code : `
253
+ function foo() {
254
+ try {
255
+ return;
256
+ } catch (err) {
257
+ return err;
258
+ }
259
+ }` ,
260
+ parserOptions : {
261
+ ecmaVersion : 6
262
+ } ,
263
+ errors : [
264
+ {
265
+ messageId : "unreachableCode" ,
266
+ type : "BlockStatement" ,
267
+ line : 5 ,
268
+ column : 35 ,
269
+ endLine : 7 ,
270
+ endColumn : 22
271
+ }
272
+ ]
273
+ } ,
274
+ {
275
+ code : `
276
+ function foo() {
277
+ try {
278
+ return;
279
+ let a = 1;
280
+ } catch (err) {
281
+ return err;
282
+ }
283
+ }` ,
284
+ parserOptions : {
285
+ ecmaVersion : 6
286
+ } ,
287
+ errors : [
288
+ {
289
+ messageId : "unreachableCode" ,
290
+ type : "VariableDeclaration" ,
291
+ line : 5 ,
292
+ column : 25 ,
293
+ endLine : 5 ,
294
+ endColumn : 35
295
+ } ,
296
+ {
297
+ messageId : "unreachableCode" ,
298
+ type : "BlockStatement" ,
299
+ line : 6 ,
300
+ column : 35 ,
301
+ endLine : 8 ,
302
+ endColumn : 22
303
+ }
304
+ ]
209
305
}
210
306
]
211
307
} ) ;
0 commit comments