setJitCompilerOption("baseline.warmup.trigger", 0); setJitCompilerOption("ion.warmup.trigger", 0); function ceil(a, b) { return Math.ceil((a | 0) / (b | 0)) | 0; } function floor(a, b) { return Math.floor((a | 0) / (b | 0)) | 0; } function round(a, b) { return Math.round((a | 0) / (b | 0)) | 0; } function intdiv(a, b) { return ((a | 0) / (b | 0)) | 0; } // Always rounds up. assertEq(ceil(5, 5), 1); assertEq(ceil(4, 3), 2); assertEq(ceil(5, 3), 2); assertEq(ceil(-4, 3), -1); assertEq(ceil(-5, 3), -1); // Always rounds down. assertEq(floor(5, 5), 1); assertEq(floor(4, 3), 1); assertEq(floor(5, 3), 1); assertEq(floor(-4, 3), -2); assertEq(floor(-5, 3), -2); // Always rounds towards the nearest. assertEq(round(5, 5), 1); assertEq(round(4, 3), 1); assertEq(round(5, 3), 2); assertEq(round(-4, 3), -1); assertEq(round(-5, 3), -2); // Always rounds towards zero. assertEq(intdiv(5, 5), 1); assertEq(intdiv(4, 3), 1); assertEq(intdiv(5, 3), 1); assertEq(intdiv(-4, 3), -1); assertEq(intdiv(-5, 3), -1);