bug679493.js (1354B)
1 // Normal checks: 2 function mul(x, y) { 3 return x*y; 4 } 5 assertEq(mul(1, 2), 2); 6 assertEq(mul(0, 2), 0); 7 assertEq(mul(0, -1), -0); 8 assertEq(mul(100000000, 20000), 2000000000000); 9 assertEq(mul(0, -2), -0); 10 assertEq(mul(0, 0), 0); 11 12 // Constant * value checks: 13 assertEq(function(x){return x*1}(4), 4); 14 assertEq(function(x){return x*1}(0), 0); 15 assertEq(function(x){return x*1}(-4), -4); 16 assertEq(function(x){return x*2}(4), 8); 17 assertEq(function(x){return x*2}(0), 0); 18 assertEq(function(x){return x*2}(-4), -8); 19 assertEq(function(x){return x*2}(2000000000), 4000000000); 20 assertEq(function(x){return x*5}(4), 20); 21 assertEq(function(x){return x*5}(0), 0); 22 assertEq(function(x){return x*5}(-4), -20); 23 assertEq(function(x){return x*0}(0), 0); 24 assertEq(function(x){return x*0}(5), 0); 25 assertEq(function(x){return x*0}(-5), -0); 26 assertEq(function(x){return x*-5}(4), -20); 27 assertEq(function(x){return x*-5}(0), -0); 28 assertEq(function(x){return x*-5}(-4), 20); 29 assertEq(function(x){return x*20000}(100000000), 2000000000000); 30 31 // Constant folding 32 assertEq(function(){var x=5; return x*4}(), 20); 33 assertEq(function(){var x=5; return x*-4}(), -20); 34 assertEq(function(){var x=0; return x*4}(), 0); 35 assertEq(function(){var x=0; return x*0}(), 0); 36 assertEq(function(){var x=0; return x*-4}(), -0); 37 assertEq(function(){var x=20000; return x*100000000}(), 2000000000000);