michael@0: // IM: Test generated code michael@0: function neg(x) { michael@0: return -x; michael@0: } michael@0: assertEq(neg(0), -0); michael@0: assertEq(neg(1), -1); michael@0: assertEq(neg(-1), 1); michael@0: assertEq(neg(-2147483648), 2147483648); michael@0: assertEq(neg(-1.3), 1.3); michael@0: assertEq(neg(1.45), -1.45); michael@0: michael@0: // IM: Test constant folding michael@0: function neg2(){ michael@0: var x = 1; michael@0: var y = -x; michael@0: return y; michael@0: } michael@0: assertEq(neg2(), -1); michael@0: function neg3(){ michael@0: var x = 0; michael@0: var y = -x; michael@0: return y; michael@0: } michael@0: assertEq(neg3(), -0); michael@0: function neg4(){ michael@0: var x = -2147483648; michael@0: var y = -x; michael@0: return y; michael@0: } michael@0: assertEq(neg4(), 2147483648);