michael@0: michael@0: assertEq(Math.round(3.14), 3); michael@0: assertEq(Math.round(0.5), 1); michael@0: assertEq(Math.round(-0), -0); michael@0: assertEq(Math.round(0), 0); michael@0: assertEq(Math.round(-1.03), -1); michael@0: assertEq(Math.round(2147483649), 2147483649); michael@0: assertEq(Math.round(2147483647.5), 2147483648); michael@0: assertEq(Math.floor(2147483647.1), 2147483647); michael@0: michael@0: /* Inferred as round(double). */ michael@0: function round1(x) { michael@0: return Math.round(x); michael@0: } michael@0: assertEq(round1(10.3), 10); michael@0: assertEq(round1(-3.14), -3); michael@0: assertEq(round1(-3.5), -3); michael@0: assertEq(round1(-3.6), -4); michael@0: assertEq(round1(3.5), 4); michael@0: assertEq(round1(3.6), 4); michael@0: assertEq(round1(0), 0); michael@0: assertEq(round1(-0), -0); // recompile to return double michael@0: assertEq(round1(12345), 12345); michael@0: assertEq(round1(654.6), 655); michael@0: michael@0: /* Inferred as round(double). */ michael@0: function round2(x) { michael@0: return Math.round(x); michael@0: } michael@0: assertEq(round2(1234.5), 1235); michael@0: assertEq(round2(NaN), NaN); // recompile to return double michael@0: assertEq(round2(4.6), 5); michael@0: michael@0: /* Inferred as round(int). */ michael@0: function round3(x) { michael@0: return Math.round(x); michael@0: } michael@0: assertEq(round3(4), 4); michael@0: assertEq(round3(-5), -5); michael@0: assertEq(round3(0), 0); michael@0: