-
Notifications
You must be signed in to change notification settings - Fork 54
/
isSafeInteger-01.js
40 lines (29 loc) · 1.44 KB
/
isSafeInteger-01.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Any copyright is dedicated to the Public Domain.
// http://creativecommons.org/licenses/publicdomain/
//-----------------------------------------------------------------------------
var BUGNUMBER = 1003764;
var summary = "ES6 (draft Draft May 22, 2014) ES6 20.1.2.5 Number.isSafeInteger(number)";
print(BUGNUMBER + ": " + summary);
assertEq(Number.isSafeInteger.length, 1);
assertEq(Number.isSafeInteger({}), false);
assertEq(Number.isSafeInteger(NaN), false);
assertEq(Number.isSafeInteger(+Infinity), false);
assertEq(Number.isSafeInteger(-Infinity), false);
assertEq(Number.isSafeInteger(-1), true);
assertEq(Number.isSafeInteger(+0), true);
assertEq(Number.isSafeInteger(-0), true);
assertEq(Number.isSafeInteger(1), true);
assertEq(Number.isSafeInteger(3.2), false);
assertEq(Number.isSafeInteger(Math.pow(2, 53) - 2), true);
assertEq(Number.isSafeInteger(Math.pow(2, 53) - 1), true);
assertEq(Number.isSafeInteger(Math.pow(2, 53)), false);
assertEq(Number.isSafeInteger(Math.pow(2, 53) + 1), false);
assertEq(Number.isSafeInteger(Math.pow(2, 53) + 2), false);
assertEq(Number.isSafeInteger(-Math.pow(2, 53) - 2), false);
assertEq(Number.isSafeInteger(-Math.pow(2, 53) - 1), false);
assertEq(Number.isSafeInteger(-Math.pow(2, 53)), false);
assertEq(Number.isSafeInteger(-Math.pow(2, 53) + 1), true);
assertEq(Number.isSafeInteger(-Math.pow(2, 53) + 2), true);
if (typeof reportCompare === "function")
reportCompare(true, true);
print("All tests passed!");