Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | // Normal checks: |
michael@0 | 2 | function mul(x, y) { |
michael@0 | 3 | return x*y; |
michael@0 | 4 | } |
michael@0 | 5 | assertEq(mul(1, 2), 2); |
michael@0 | 6 | assertEq(mul(0, 2), 0); |
michael@0 | 7 | assertEq(mul(0, -1), -0); |
michael@0 | 8 | assertEq(mul(100000000, 20000), 2000000000000); |
michael@0 | 9 | assertEq(mul(0, -2), -0); |
michael@0 | 10 | assertEq(mul(0, 0), 0); |
michael@0 | 11 | |
michael@0 | 12 | // Constant * value checks: |
michael@0 | 13 | assertEq(function(x){return x*1}(4), 4); |
michael@0 | 14 | assertEq(function(x){return x*1}(0), 0); |
michael@0 | 15 | assertEq(function(x){return x*1}(-4), -4); |
michael@0 | 16 | assertEq(function(x){return x*2}(4), 8); |
michael@0 | 17 | assertEq(function(x){return x*2}(0), 0); |
michael@0 | 18 | assertEq(function(x){return x*2}(-4), -8); |
michael@0 | 19 | assertEq(function(x){return x*2}(2000000000), 4000000000); |
michael@0 | 20 | assertEq(function(x){return x*5}(4), 20); |
michael@0 | 21 | assertEq(function(x){return x*5}(0), 0); |
michael@0 | 22 | assertEq(function(x){return x*5}(-4), -20); |
michael@0 | 23 | assertEq(function(x){return x*0}(0), 0); |
michael@0 | 24 | assertEq(function(x){return x*0}(5), 0); |
michael@0 | 25 | assertEq(function(x){return x*0}(-5), -0); |
michael@0 | 26 | assertEq(function(x){return x*-5}(4), -20); |
michael@0 | 27 | assertEq(function(x){return x*-5}(0), -0); |
michael@0 | 28 | assertEq(function(x){return x*-5}(-4), 20); |
michael@0 | 29 | assertEq(function(x){return x*20000}(100000000), 2000000000000); |
michael@0 | 30 | |
michael@0 | 31 | // Constant folding |
michael@0 | 32 | assertEq(function(){var x=5; return x*4}(), 20); |
michael@0 | 33 | assertEq(function(){var x=5; return x*-4}(), -20); |
michael@0 | 34 | assertEq(function(){var x=0; return x*4}(), 0); |
michael@0 | 35 | assertEq(function(){var x=0; return x*0}(), 0); |
michael@0 | 36 | assertEq(function(){var x=0; return x*-4}(), -0); |
michael@0 | 37 | assertEq(function(){var x=20000; return x*100000000}(), 2000000000000); |