File: es.number.is-safe-integer.js

package info (click to toggle)
node-core-js 3.33.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 18,828 kB
  • sloc: javascript: 87,204; makefile: 13
file content (47 lines) | stat: -rw-r--r-- 1,162 bytes parent folder | download | duplicates (2)
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
41
42
43
44
45
46
47
QUnit.test('Number.isSafeInteger', assert => {
  const { isSafeInteger } = Number;
  const { create } = Object;
  assert.isFunction(isSafeInteger);
  assert.name(isSafeInteger, 'isSafeInteger');
  assert.arity(isSafeInteger, 1);
  assert.looksNative(isSafeInteger);
  assert.nonEnumerable(Number, 'isSafeInteger');
  const safeIntegers = [
    1,
    -1,
    2 ** 16,
    2 ** 16 - 1,
    2 ** 31,
    2 ** 31 - 1,
    2 ** 32,
    2 ** 32 - 1,
    -0,
    9007199254740991,
    -9007199254740991,
  ];
  for (const value of safeIntegers) {
    assert.true(isSafeInteger(value), `isSafeInteger ${ typeof value } ${ value }`);
  }
  const notSafeIntegers = [
    9007199254740992,
    -9007199254740992,
    NaN,
    0.1,
    Infinity,
    'NaN',
    '5',
    false,
    new Number(NaN),
    new Number(Infinity),
    new Number(5),
    new Number(0.1),
    undefined,
    null,
    {},
    function () { /* empty */ },
  ];
  for (const value of notSafeIntegers) {
    assert.false(isSafeInteger(value), `not isSafeInteger ${ typeof value } ${ value }`);
  }
  assert.false(isSafeInteger(create(null)), 'Number.isSafeInteger(Object.create(null)) -> false');
});