• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
4
5var coercibleObject = { valueOf: function () { return 3; }, toString: function () { return 42; } };
6var valueOfOnlyObject = { valueOf: function () { return 4; }, toString: function () { return {}; } };
7var toStringOnlyObject = { valueOf: function () { return {}; }, toString: function () { return 7; } };
8var uncoercibleObject = { valueOf: function () { return {}; }, toString: function () { return {}; } };
9var objects = [{}, coercibleObject, toStringOnlyObject, valueOfOnlyObject];
10var nullPrimitives = [undefined, null];
11var nonIntegerNumbers = [-1.3, 0.2, 1.8, 1 / 3];
12var numbers = [0, -0, Infinity, -Infinity, 42];
13var strings = ['', 'foo'];
14var booleans = [true, false];
15var symbols = hasSymbols ? [Symbol.iterator, Symbol('foo')] : [];
16var nonSymbolPrimitives = [].concat(nullPrimitives, booleans, strings, numbers);
17var nonNumberPrimitives = [].concat(nullPrimitives, booleans, strings, symbols);
18var nonNullPrimitives = [].concat(booleans, strings, numbers, symbols);
19var nonUndefinedPrimitives = [].concat(null, nonNullPrimitives);
20var nonStrings = [].concat(nullPrimitives, booleans, numbers, symbols, objects);
21var primitives = [].concat(nullPrimitives, nonNullPrimitives);
22var nonPropertyKeys = [].concat(nullPrimitives, booleans, numbers, objects);
23var propertyKeys = [].concat(strings, symbols);
24var nonBooleans = [].concat(nullPrimitives, strings, symbols, numbers, objects);
25var falsies = [].concat(nullPrimitives, false, '', 0, -0, NaN);
26var truthies = [].concat(true, 'foo', 42, symbols, objects);
27
28module.exports = {
29	coercibleObject: coercibleObject,
30	valueOfOnlyObject: valueOfOnlyObject,
31	toStringOnlyObject: toStringOnlyObject,
32	uncoercibleObject: uncoercibleObject,
33	objects: objects,
34	nullPrimitives: nullPrimitives,
35	numbers: numbers,
36	strings: strings,
37	booleans: booleans,
38	symbols: symbols,
39	hasSymbols: hasSymbols,
40	nonSymbolPrimitives: nonSymbolPrimitives,
41	nonNumberPrimitives: nonNumberPrimitives,
42	nonNullPrimitives: nonNullPrimitives,
43	nonUndefinedPrimitives: nonUndefinedPrimitives,
44	nonStrings: nonStrings,
45	nonNumbers: nonNumberPrimitives.concat(objects),
46	nonIntegerNumbers: nonIntegerNumbers,
47	primitives: primitives,
48	nonPropertyKeys: nonPropertyKeys,
49	propertyKeys: propertyKeys,
50	nonBooleans: nonBooleans,
51	falsies: falsies,
52	truthies: truthies
53};
54