summaryrefslogtreecommitdiffstats
path: root/node_modules/es-abstract/test/helpers/values.js
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/es-abstract/test/helpers/values.js
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/es-abstract/test/helpers/values.js')
-rw-r--r--node_modules/es-abstract/test/helpers/values.js121
1 files changed, 121 insertions, 0 deletions
diff --git a/node_modules/es-abstract/test/helpers/values.js b/node_modules/es-abstract/test/helpers/values.js
new file mode 100644
index 0000000..ccef743
--- /dev/null
+++ b/node_modules/es-abstract/test/helpers/values.js
@@ -0,0 +1,121 @@
+'use strict';
+
+var assign = require('../../helpers/assign');
+
+var hasSymbols = require('has-symbols')();
+
+var coercibleObject = { valueOf: function () { return 3; }, toString: function () { return 42; } };
+var coercibleFnObject = {
+ valueOf: function () { return function valueOfFn() {}; },
+ 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 uncoercibleFnObject = {
+ valueOf: function () { return function valueOfFn() {}; },
+ toString: function () { return function toStrFn() {}; }
+};
+var objects = [{}, coercibleObject, coercibleFnObject, toStringOnlyObject, valueOfOnlyObject];
+var nullPrimitives = [undefined, null];
+var nonIntegerNumbers = [-1.3, 0.2, 1.8, 1 / 3];
+var zeroes = [0, -0];
+var infinities = [Infinity, -Infinity];
+var numbers = zeroes.concat([42], infinities, 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);
+var nonFunctions = [].concat(primitives, objects, [42]);
+var nonArrays = [].concat(nonFunctions);
+
+var descriptors = {
+ configurable: function (descriptor) {
+ return assign(assign({}, descriptor), { '[[Configurable]]': true });
+ },
+ nonConfigurable: function (descriptor) {
+ return assign(assign({}, descriptor), { '[[Configurable]]': false });
+ },
+ enumerable: function (descriptor) {
+ return assign(assign({}, descriptor), { '[[Enumerable]]': true });
+ },
+ nonEnumerable: function (descriptor) {
+ return assign(assign({}, descriptor), { '[[Enumerable]]': false });
+ },
+ writable: function (descriptor) {
+ return assign(assign({}, descriptor), { '[[Writable]]': true });
+ },
+ nonWritable: function (descriptor) {
+ return assign(assign({}, descriptor), { '[[Writable]]': false });
+ }
+};
+
+module.exports = {
+ coercibleObject: coercibleObject,
+ coercibleFnObject: coercibleFnObject,
+ valueOfOnlyObject: valueOfOnlyObject,
+ toStringOnlyObject: toStringOnlyObject,
+ uncoercibleObject: uncoercibleObject,
+ uncoercibleFnObject: uncoercibleFnObject,
+ objects: objects,
+ nonFunctions: nonFunctions,
+ nonArrays: nonArrays,
+ nullPrimitives: nullPrimitives,
+ numbers: numbers,
+ zeroes: zeroes,
+ infinities: infinities,
+ 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 };
+ },
+ bothDescriptorWritable: function () {
+ return descriptors.writable({ '[[Get]]': function () {} });
+ },
+ accessorDescriptor: function (value) {
+ return descriptors.enumerable(descriptors.configurable({
+ '[[Get]]': function get() { return value; }
+ }));
+ },
+ mutatorDescriptor: function () {
+ return descriptors.enumerable(descriptors.configurable({
+ '[[Set]]': function () {}
+ }));
+ },
+ dataDescriptor: function (value) {
+ return descriptors.nonWritable({
+ '[[Value]]': arguments.length > 0 ? value : 42
+ });
+ },
+ genericDescriptor: function () {
+ return descriptors.configurable(descriptors.nonEnumerable());
+ },
+ descriptors: descriptors
+};