blob: 266bbb1b5b5fb213890e8264760644636d18ea12 [file] [log] [blame]
let i = 10000;
let e;
let d = {
get done() {
let result = !(--i);
if (i % 5000 == 0)
OSRExit();
return result;
},
get value() {
if (i % 5000 == 0)
throw e = new Error();
return i;
}
};
let x = {
next: ()=>d
}
let iter = {};
iter[Symbol.iterator] = ()=>x;
function foo() {
for (let x of iter) {
if (x !== --oldI)
throw new Error();
}
}
let oldI = i;
try {
foo();
} catch (error) {
if (e !== error)
throw error
}
if (!e)
throw new Error();