(f)
| 5 | // Flags: --allow-natives-syntax |
| 6 | |
| 7 | function test(f) { |
| 8 | assertTrue(f(0)); |
| 9 | assertTrue(f(Number.MIN_SAFE_INTEGER)); |
| 10 | assertFalse(f(Number.MIN_SAFE_INTEGER - 13)); |
| 11 | assertTrue(f(Number.MIN_SAFE_INTEGER + 13)); |
| 12 | assertTrue(f(Number.MAX_SAFE_INTEGER)); |
| 13 | assertFalse(f(Number.MAX_SAFE_INTEGER + 23)); |
| 14 | assertTrue(f(Number.MAX_SAFE_INTEGER - 23)); |
| 15 | assertFalse(f(Number.MIN_VALUE)); |
| 16 | assertFalse(f(Number.MAX_VALUE)); |
| 17 | assertFalse(f(Number.NaN)); |
| 18 | assertFalse(f(Number.POSITIVE_INFINITY)); |
| 19 | assertFalse(f(Number.NEGATIVE_INFINITY)); |
| 20 | assertFalse(f(1 / 0)); |
| 21 | assertFalse(f(-1 / 0)); |
| 22 | assertFalse(f(Number.EPSILON)); |
| 23 | |
| 24 | var near_upper = Math.pow(2, 52); |
| 25 | assertTrue(f(near_upper)); |
| 26 | assertFalse(f(2 * near_upper)); |
| 27 | assertTrue(f(2 * near_upper - 1)); |
| 28 | assertTrue(f(2 * near_upper - 2)); |
| 29 | assertFalse(f(2 * near_upper + 1)); |
| 30 | assertFalse(f(2 * near_upper + 2)); |
| 31 | assertFalse(f(2 * near_upper + 7)); |
| 32 | |
| 33 | var near_lower = -near_upper; |
| 34 | assertTrue(f(near_lower)); |
| 35 | assertFalse(f(2 * near_lower)); |
| 36 | assertTrue(f(2 * near_lower + 1)); |
| 37 | assertTrue(f(2 * near_lower + 2)); |
| 38 | assertFalse(f(2 * near_lower - 1)); |
| 39 | assertFalse(f(2 * near_lower - 2)); |
| 40 | assertFalse(f(2 * near_lower - 7)); |
| 41 | } |
| 42 | |
| 43 | // Check that the NumberIsSafeInteger simplified operator in |
| 44 | // TurboFan does the right thing. |
no test coverage detected
searching dependent graphs…