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