// This tests that integer divisions are appropriately optimized, while double | |
// divisions are still kept the same as before. | |
function foo(a, b) { | |
return a / b; | |
} | |
function bar(a, b) { | |
return (a / b) | 0; | |
} | |
var result = 0; | |
for (var i = 0; i < 1000000; ++i) { | |
var a; | |
var b; | |
if (i < 500) { | |
a = i * 2; | |
b = 2; | |
} else { | |
a = i * 3; | |
b = 4; | |
} | |
result += foo(a, b) * 3 + bar(a, b); | |
} | |
if (result != 1499998249937.5) { | |
print("Bad result: " + result); | |
throw "Error"; | |
} | |