function foo(a, b, c) { | |
return (a|0) + (b|0) + (c|0); | |
} | |
function bar(o) { | |
var a = o.f; | |
var b = o.g; | |
var c = o.h; | |
var d = o.i; | |
var e = o.j; | |
var f = o.k; | |
var g = o.l; | |
return foo(42, void 0, void 0) + a + b + c + d + e + f + g; | |
} | |
noInline(foo); | |
noInline(bar); | |
for (var i = 0; i < 100000; ++i) { | |
var result = bar({ | |
f:i * 3, g:i - 1, h:(i / 2)|0, i:-i, j:13 + ((i / 5)|0), k:14 - ((i / 6)|0), | |
l:1 - i}); | |
var expected = 42 + i * 3 + i - 1 + ((i / 2)|0) - i + 13 + ((i / 5)|0) + 14 - | |
((i / 6)|0) + 1 - i; | |
if (result != expected) | |
throw "Error: for iteration " + i + " expected " + expected + " but got " + result; | |
} |