truncate.js (1299B)
1 function f() { 2 var x = Math.pow(2, 31); // take it as argument if constant propagation comes in you way. 3 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 32 4 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 33 5 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 34 6 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 35 7 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 36 8 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 37 9 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 38 10 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 39 11 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 40 12 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 41 13 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 42 14 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 43 15 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 44 16 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 45 17 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 46 18 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 47 19 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 48 20 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 49 21 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 50 22 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 51 23 x = x + x; assertEq((x + 1) | 0, 1); // 2 ** 52 24 x = x + x; assertEq((x + 1) | 0, 0); // 2 ** 53 25 } 26 27 for (var i = 0; i <= 10_000; i++) 28 f();