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