js/src/jit-test/tests/for-of/non-iterable.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:46e3d268fa9e
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 }

mercurial