function shouldBe(actual, expected) { if (actual !== expected) throw new Error('bad value: ' + actual); } function test2() { return (-2147483648).toString(2); } noInline(test2); function test4() { return (-2147483648).toString(4); } noInline(test4); function test8() { return (-2147483648).toString(8); } noInline(test8); function test16() { return (-2147483648).toString(16); } noInline(test16); function test32() { return (-2147483648).toString(32); } noInline(test32); for (var i = 0; i < 1e5; ++i) { shouldBe(test2(), '-10000000000000000000000000000000'); shouldBe(test4(), '-2000000000000000'); shouldBe(test8(), '-20000000000'); shouldBe(test16(), '-80000000'); shouldBe(test32(), '-2000000'); }