michael@0: function test1(x) { michael@0: return (x*((2<<23)-1))|0 michael@0: } michael@0: function test2(x) { michael@0: return (x*((2<<22)-1))|0 michael@0: } michael@0: function test3(x) { michael@0: return (x*((2<<21)-1))|0 michael@0: } michael@0: function test4(x) { michael@0: var b = x + x + 3 michael@0: return (b*b) | 0 michael@0: } michael@0: //MAX_INT michael@0: var x = 0x7ffffffe; michael@0: assertEq(test1(x), 2113929216); michael@0: assertEq(test2(x), 2130706434); michael@0: assertEq(test3(x), 2139095042); michael@0: assertEq(test4(x), 0);