|
1 // Iterating over non-iterable values throws a TypeError. |
|
2 |
|
3 load(libdir + "asserts.js"); |
|
4 |
|
5 function argsobj() { return arguments; } |
|
6 |
|
7 var misc = [ |
|
8 {}, {x: 1}, Math, isNaN, |
|
9 Object.create(null), |
|
10 argsobj(0, 1, 2), |
|
11 null, undefined, |
|
12 true, 0, 3.1416, |
|
13 new Boolean(true), new Number(0), |
|
14 {iterator: function () { return undefined; }}, |
|
15 {iterator: function () { return null; }}, |
|
16 {iterator: function () { return true; }}, |
|
17 {iterator: function () { return 17; }}, |
|
18 ]; |
|
19 |
|
20 for (var i = 0; i < misc.length; i++) { |
|
21 let v = misc[i]; |
|
22 var testfn = function () { |
|
23 for (var _ of v) |
|
24 throw 'FAIL'; |
|
25 throw 'BAD'; |
|
26 }; |
|
27 assertThrowsInstanceOf(testfn, TypeError); |
|
28 } |