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 fuzz(a) { 13 return a != true; 14} 15 16function foo(a) { 17 var x = a + 1; 18 var y = a + 2; 19 var f = (function() { return x; }); 20 while (fuzz(y)) { 21 bar(f); 22 } 23} 24 25noInline(foo); 26 27for (var i = 0; i < 10000; ++i) { 28 try { 29 foo(i); 30 } catch (f) { 31 var result = f(); 32 if (result != i + 1) 33 throw "Error: bad result for i = " + i + ": " + result; 34 } 35} 36 37