infinite-loop-that-uses-captured-variables-but-they-do-not-escape.js [plain text]
var count = 0;
function bar(f) {
if (++count < 10) {
var result = f();
if (result != i + 1)
throw "Error: bad result insie closure for i = " + i + ": " + result;
return;
}
count = 0;
throw "done";
}
noInline(bar);
function foo(a) {
var x = a + 1;
for (;;) {
bar(function() { return x; });
}
}
noInline(foo);
for (var i = 0; i < 10000; ++i) {
try {
foo(i);
} catch (done) {
if (done != "done")
throw "Error: bad exception: " + done;
}
}