1
0
mirror of https://github.com/actions/labeler synced 2026-05-11 06:21:12 +02:00
This commit is contained in:
David Kale
2020-09-08 13:25:36 -04:00
parent e4246d2b5b
commit 91fcbb0108
4227 changed files with 416837 additions and 457884 deletions

View File

@@ -6,6 +6,7 @@ var is = require('object-is');
var forEach = require('foreach');
var functionName = require('function.prototype.name');
var debug = require('object-inspect');
var hasSymbols = require('has-symbols')();
test('function properties', function (t) {
t.equal(toPrimitive.length, 1, 'length is 1');
@@ -25,6 +26,29 @@ test('primitives', function (t) {
t.end();
});
test('Symbols', { skip: !hasSymbols }, function (t) {
var symbols = [
Symbol('foo'),
Symbol.iterator,
Symbol['for']('foo') // eslint-disable-line no-restricted-properties
];
forEach(symbols, function (sym) {
t.equal(toPrimitive(sym), sym, 'toPrimitive(' + debug(sym) + ') returns the same value');
t.equal(toPrimitive(sym, String), sym, 'toPrimitive(' + debug(sym) + ', String) returns the same value');
t.equal(toPrimitive(sym, Number), sym, 'toPrimitive(' + debug(sym) + ', Number) returns the same value');
});
var primitiveSym = Symbol('primitiveSym');
var stringSym = Symbol.prototype.toString.call(primitiveSym);
var objectSym = Object(primitiveSym);
t.equal(toPrimitive(objectSym), primitiveSym, 'toPrimitive(' + debug(objectSym) + ') returns ' + debug(primitiveSym));
// This is different from ES2015, as the ES5 algorithm doesn't account for the existence of Symbols:
t.equal(toPrimitive(objectSym, String), stringSym, 'toPrimitive(' + debug(objectSym) + ', String) returns ' + debug(stringSym));
t.equal(toPrimitive(objectSym, Number), primitiveSym, 'toPrimitive(' + debug(objectSym) + ', Number) returns ' + debug(primitiveSym));
t.end();
});
test('Arrays', function (t) {
var arrays = [[], ['a', 'b'], [1, 2]];
forEach(arrays, function (arr) {