1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/for-of/non-iterable.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,28 @@ 1.4 +// Iterating over non-iterable values throws a TypeError. 1.5 + 1.6 +load(libdir + "asserts.js"); 1.7 + 1.8 +function argsobj() { return arguments; } 1.9 + 1.10 +var misc = [ 1.11 + {}, {x: 1}, Math, isNaN, 1.12 + Object.create(null), 1.13 + argsobj(0, 1, 2), 1.14 + null, undefined, 1.15 + true, 0, 3.1416, 1.16 + new Boolean(true), new Number(0), 1.17 + {iterator: function () { return undefined; }}, 1.18 + {iterator: function () { return null; }}, 1.19 + {iterator: function () { return true; }}, 1.20 + {iterator: function () { return 17; }}, 1.21 +]; 1.22 + 1.23 +for (var i = 0; i < misc.length; i++) { 1.24 + let v = misc[i]; 1.25 + var testfn = function () { 1.26 + for (var _ of v) 1.27 + throw 'FAIL'; 1.28 + throw 'BAD'; 1.29 + }; 1.30 + assertThrowsInstanceOf(testfn, TypeError); 1.31 +}