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    for (;;) {
15        bar(function() { return x; });
16    }
17}
18
19noInline(foo);
20
21for (var i = 0; i < 10000; ++i) {
22    try {
23        foo(i);
24    } catch (f) {
25        var result = f();
26        if (result != i + 1)
27            throw "Error: bad result for i = " + i + ": " + result;
28    }
29}
30
31