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