You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1002 B
44 lines
1002 B
'use strict'; |
|
|
|
var test = require('tape'); |
|
var hasBigInts = require('..'); |
|
|
|
test('interface', function (t) { |
|
t.equal(typeof hasBigInts, 'function', 'is a function'); |
|
t.equal(typeof hasBigInts(), 'boolean', 'returns a boolean'); |
|
t.end(); |
|
}); |
|
|
|
test('BigInts are supported', { skip: !hasBigInts() }, function (t) { |
|
t.equal(typeof BigInt, 'function', 'global BigInt is a function'); |
|
if (typeof BigInt !== 'function') { |
|
return; |
|
} |
|
|
|
t.equal(BigInt(42), BigInt(42), '42n === 42n'); |
|
t['throws']( |
|
function () { BigInt(NaN); }, |
|
RangeError, |
|
'NaN is not an integer; BigInt(NaN) throws' |
|
); |
|
|
|
t['throws']( |
|
function () { BigInt(Infinity); }, |
|
RangeError, |
|
'Infinity is not an integer; BigInt(Infinity) throws' |
|
); |
|
|
|
t['throws']( |
|
function () { BigInt(1.1); }, |
|
RangeError, |
|
'1.1 is not an integer; BigInt(1.1) throws' |
|
); |
|
|
|
t.end(); |
|
}); |
|
|
|
test('BigInts are not supported', { skip: hasBigInts() }, function (t) { |
|
t.equal(typeof BigInt, 'undefined', 'global BigInt is undefined'); |
|
|
|
t.end(); |
|
});
|
|
|