/* Handle recompilation of arithmetic operations, and on-stack int -> double conversion. */ function add(x, y) { var z = x + y; assertEq(z, 2147483732); assertEq(z - 10, 2147483722); } add(0x7ffffff0, 100); function mul(x, y) { var z = x * y; assertEq(z, 4294967264); } mul(0x7ffffff0, 2); function div1(x, y) { var z = x / y; assertEq(z + 10, 20); } div1(100, 10); function div2(x, y) { var z = x / y; assertEq(z + 10, 20.5); } div2(105, 10); function uncopy(x, y) { var q = x; x += y; q++; assertEq(q, 2147483633); assertEq(x, 2147483732); } uncopy(0x7ffffff0, 100); function addmore(x, y) { var q = (x + 10) + (x + y); assertEq(q, 4294967374); x = q; } addmore(0x7ffffff0, 100);