iterator-primitive.js (600B)
1 // |reftest| skip-if(!xulRuntime.shell) -- needs drainJobQueue 2 3 var BUGNUMBER = 1021835; 4 var summary = "Returning non-object from @@iterator should throw"; 5 6 print(BUGNUMBER + ": " + summary); 7 8 let primitives = [ 9 1, 10 true, 11 undefined, 12 null, 13 "foo", 14 Symbol.iterator 15 ]; 16 17 for (let primitive of primitives) { 18 let arg = { 19 [Symbol.iterator]() { 20 return primitive; 21 } 22 }; 23 assertEventuallyThrows(Promise.all(arg), TypeError); 24 assertEventuallyThrows(Promise.race(arg), TypeError); 25 } 26 27 if (typeof reportCompare === "function") 28 reportCompare(0, 0);