michael@0: michael@0: assertEq(Math.floor(3.14), 3); michael@0: assertEq(Math.floor(-0), -0); michael@0: assertEq(Math.floor(0), 0); michael@0: assertEq(Math.floor(-1.23), -2); michael@0: assertEq(Math.floor(2147483649), 2147483649); michael@0: assertEq(Math.floor(2147483648.5), 2147483648); michael@0: assertEq(Math.floor(2147483647.1), 2147483647); michael@0: michael@0: /* Inferred as floor(double). */ michael@0: function floor1(x) { michael@0: return Math.floor(x); michael@0: } michael@0: assertEq(floor1(10.3), 10); michael@0: assertEq(floor1(-3.14), -4); michael@0: assertEq(floor1(-0), -0); // recompile to return double michael@0: assertEq(floor1(678.3), 678); michael@0: michael@0: /* Inferred as floor(double). */ michael@0: function floor2(x) { michael@0: return Math.floor(x); michael@0: } michael@0: assertEq(floor2(3.4), 3); michael@0: assertEq(floor2(NaN), NaN); // recompile to return double michael@0: assertEq(floor2(-4.4), -5); michael@0: michael@0: /* Inferred as floor(int). */ michael@0: function floor3(x) { michael@0: return Math.floor(x); michael@0: } michael@0: assertEq(floor3(4), 4); michael@0: assertEq(floor3(-5), -5); michael@0: assertEq(floor3(0), 0); michael@0: