HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/elite/node_modules/unbox-primitive/test/index.js
'use strict';

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