function thingy(f) { f(); } noInline(thingy); function foo(a) { var x; if (a) x = a; thingy(function() { return x; }); var result = 0; for (var i = 0; i < 100000; ++i) result += x; return result; } noInline(foo); for (var i = 0; i < 10; ++i) { var result = foo(42); if (result != 4200000) throw "Error: bad first result: " + result; } var result = foo(0); if ("" + result != "NaN") throw "Error: bad result at end: " + result;