| 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'); |
| } |