1var count = 0;
2
3function bar(f) {
4    if (++count < 10) {
5        var result = f();
6        if (result != i + 1)
7            throw "Error: bad result insie closure for i = " + i + ": " + result;
8        return;
9    }
10    count = 0;
11    throw "done";
12}
13
14noInline(bar);
15
16function foo(a) {
17    var x = a + 1;
18    for (;;) {
19        bar(function() { return x; });
20    }
21}
22
23noInline(foo);
24
25for (var i = 0; i < 10000; ++i) {
26    try {
27        foo(i);
28    } catch (done) {
29        if (done != "done")
30            throw "Error: bad exception: " + done;
31    }
32}
33
34