Blame view

node_modules/es-abstract/test/helpers/values.js 3.03 KB
2a09d1a4   liuqimichale   添加宜春 天水 宣化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
  'use strict';
  
  var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';
  
  var coercibleObject = { valueOf: function () { return 3; }, toString: function () { return 42; } };
  var valueOfOnlyObject = { valueOf: function () { return 4; }, toString: function () { return {}; } };
  var toStringOnlyObject = { valueOf: function () { return {}; }, toString: function () { return 7; } };
  var uncoercibleObject = { valueOf: function () { return {}; }, toString: function () { return {}; } };
  var objects = [{}, coercibleObject, toStringOnlyObject, valueOfOnlyObject];
  var nullPrimitives = [undefined, null];
  var nonIntegerNumbers = [-1.3, 0.2, 1.8, 1 / 3];
  var numbers = [0, -0, Infinity, -Infinity, 42].concat(nonIntegerNumbers);
  var strings = ['', 'foo', 'a\uD83D\uDCA9c'];
  var booleans = [true, false];
  var symbols = hasSymbols ? [Symbol.iterator, Symbol('foo')] : [];
  var nonSymbolPrimitives = [].concat(nullPrimitives, booleans, strings, numbers);
  var nonNumberPrimitives = [].concat(nullPrimitives, booleans, strings, symbols);
  var nonNullPrimitives = [].concat(booleans, strings, numbers, symbols);
  var nonUndefinedPrimitives = [].concat(null, nonNullPrimitives);
  var nonStrings = [].concat(nullPrimitives, booleans, numbers, symbols, objects);
  var primitives = [].concat(nullPrimitives, nonNullPrimitives);
  var nonPropertyKeys = [].concat(nullPrimitives, booleans, numbers, objects);
  var propertyKeys = [].concat(strings, symbols);
  var nonBooleans = [].concat(nullPrimitives, strings, symbols, numbers, objects);
  var falsies = [].concat(nullPrimitives, false, '', 0, -0, NaN);
  var truthies = [].concat(true, 'foo', 42, symbols, objects);
  var timestamps = [].concat(0, 946713600000, 1546329600000);
  
  module.exports = {
  	coercibleObject: coercibleObject,
  	valueOfOnlyObject: valueOfOnlyObject,
  	toStringOnlyObject: toStringOnlyObject,
  	uncoercibleObject: uncoercibleObject,
  	objects: objects,
  	nullPrimitives: nullPrimitives,
  	numbers: numbers,
  	strings: strings,
  	booleans: booleans,
  	symbols: symbols,
  	hasSymbols: hasSymbols,
  	nonSymbolPrimitives: nonSymbolPrimitives,
  	nonNumberPrimitives: nonNumberPrimitives,
  	nonNullPrimitives: nonNullPrimitives,
  	nonUndefinedPrimitives: nonUndefinedPrimitives,
  	nonStrings: nonStrings,
  	nonNumbers: nonNumberPrimitives.concat(objects),
  	nonIntegerNumbers: nonIntegerNumbers,
  	primitives: primitives,
  	nonPropertyKeys: nonPropertyKeys,
  	propertyKeys: propertyKeys,
  	nonBooleans: nonBooleans,
  	falsies: falsies,
  	truthies: truthies,
  	timestamps: timestamps,
  	bothDescriptor: function () {
  		return { '[[Get]]': function () {}, '[[Value]]': true };
  	},
  	accessorDescriptor: function () {
  		return {
  			'[[Get]]': function () {},
  			'[[Enumerable]]': true,
  			'[[Configurable]]': true
  		};
  	},
  	mutatorDescriptor: function () {
  		return {
  			'[[Set]]': function () {},
  			'[[Enumerable]]': true,
  			'[[Configurable]]': true
  		};
  	},
  	dataDescriptor: function () {
  		return {
  			'[[Value]]': 42,
  			'[[Writable]]': false
  		};
  	},
  	genericDescriptor: function () {
  		return {
  			'[[Configurable]]': true,
  			'[[Enumerable]]': false
  		};
  	}
  };