| // 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"; | |
| } | |