string-int32-arith.js (1231B)
1 function test(zero, one) { 2 assertEq(10 - zero, 10); 3 assertEq(10 - one, 9); 4 assertEq(zero - 0, 0); 5 assertEq(one - 1, 0); 6 7 assertEq(10 * zero, 0); 8 assertEq(zero * 10, 0); 9 assertEq(10 * one, 10); 10 assertEq(one * 10, 10); 11 12 assertEq(10 / one, 10); 13 assertEq(one / 1, 1); 14 assertEq(10 % one, 0); 15 assertEq(one % 1, 0); 16 17 assertEq(10 ** one, 10); 18 assertEq(one ** 4, 1); 19 20 assertEq(10 & zero, 0); 21 assertEq(zero & 10, 0); 22 assertEq(10 & one, 0); 23 assertEq(one & 10, 0); 24 25 assertEq(10 | zero, 10); 26 assertEq(zero | 10, 10); 27 assertEq(10 | one, 11); 28 assertEq(one | 10, 11); 29 30 assertEq(10 ^ zero, 10); 31 assertEq(zero ^ 10, 10); 32 assertEq(10 ^ one, 11); 33 assertEq(one ^ 10, 11); 34 35 assertEq(10 << zero, 10); 36 assertEq(zero << 10, 0); 37 assertEq(10 << one, 20); 38 assertEq(one << 10, 1024); 39 40 assertEq(10 >> zero, 10); 41 assertEq(zero >> 10, 0); 42 assertEq(10 >> one, 5); 43 assertEq(one >> 10, 0); 44 45 assertEq(10 >>> zero, 10); 46 assertEq(zero >>> 10, 0); 47 assertEq(10 >>> one, 5); 48 assertEq(one >>> 10, 0); 49 } 50 51 for (var i = 0; i < 10; i++) { 52 test(0, 1); 53 test('0', '1'); 54 test('0x0', '0x1'); 55 test('0.0', '1.0'); 56 }