summaryrefslogtreecommitdiffstats
path: root/js/src/tests/ecma_6/Number/isSafeInteger-01.js
blob: d1a11cfe373a44af1719e6419a553565705df32a (plain)
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!");