Spaces:
Configuration error
Configuration error
; | |
var test = require('tape'); | |
var inspect = require('object-inspect'); | |
var is = require('object-is'); | |
var forEach = require('for-each'); | |
var hasSymbols = require('has-symbols')(); | |
var hasBigInts = require('has-bigints')(); | |
var unboxPrimitive = require('..'); | |
var debug = function (v, m) { return inspect(v) + ' ' + m; }; | |
test('primitives', function (t) { | |
var primitives = [ | |
true, | |
false, | |
'', | |
'foo', | |
42, | |
NaN, | |
Infinity, | |
0 | |
]; | |
if (hasSymbols) { | |
primitives.push(Symbol(), Symbol.iterator, Symbol('f')); | |
} | |
if (hasBigInts) { | |
primitives.push(BigInt(42), BigInt(0)); | |
} | |
forEach(primitives, function (primitive) { | |
var obj = Object(primitive); | |
t.ok( | |
is(unboxPrimitive(obj), primitive), | |
debug(obj, 'unboxes to ' + inspect(primitive)) | |
); | |
}); | |
t.end(); | |
}); | |
test('objects', function (t) { | |
var objects = [ | |
{}, | |
[], | |
function () {}, | |
/a/g, | |
new Date() | |
]; | |
forEach(objects, function (object) { | |
t['throws']( | |
function () { unboxPrimitive(object); }, | |
TypeError, | |
debug(object, 'is not a primitive') | |
); | |
}); | |
t.end(); | |
}); | |