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