'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(); });