function foo(a, b) { return a >> b; } noInline(foo); var things = [{valueOf: function() { return -4; }}]; var results = [-2]; for (var i = 0; i < 100000; ++i) { var result = foo(things[i % things.length], 1); var expected = results[i % results.length]; if (result != expected) throw "Error: bad result for i = " + i + ": " + result; }