Source code

Revision control

Copy as Markdown

Other Tools

var BUGNUMBER = 1021835;
var summary = "Returning non-object from @@iterator should throw";
print(BUGNUMBER + ": " + summary);
let primitives = [
1,
true,
undefined,
null,
"foo",
Symbol.iterator
];
function f([]) {
}
for (let primitive of primitives) {
let obj = {
[Symbol.iterator]() {
return primitive;
}
};
assertThrowsInstanceOf(() => {
let [] = obj;
}, TypeError);
assertThrowsInstanceOf(() => {
[] = obj;
}, TypeError);
assertThrowsInstanceOf(() => {
f(obj);
}, TypeError);
}
if (typeof reportCompare === "function")
reportCompare(0, 0);