This commit is contained in:
2024-11-03 17:16:20 +01:00
commit fd6412d6f2
8090 changed files with 778406 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
'use strict';
var ToNumber = require('./ToNumber');
var ToPrimitive = require('./ToPrimitive');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-abstract-equality-comparison
module.exports = function AbstractEqualityComparison(x, y) {
var xType = Type(x);
var yType = Type(y);
if (xType === yType) {
return x === y; // ES6+ specified this shortcut anyways.
}
if (x == null && y == null) {
return true;
}
if (xType === 'Number' && yType === 'String') {
return AbstractEqualityComparison(x, ToNumber(y));
}
if (xType === 'String' && yType === 'Number') {
return AbstractEqualityComparison(ToNumber(x), y);
}
if (xType === 'Boolean') {
return AbstractEqualityComparison(ToNumber(x), y);
}
if (yType === 'Boolean') {
return AbstractEqualityComparison(x, ToNumber(y));
}
if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') {
return AbstractEqualityComparison(x, ToPrimitive(y));
}
if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) {
return AbstractEqualityComparison(ToPrimitive(x), y);
}
return false;
};

View File

@@ -0,0 +1,62 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $Number = GetIntrinsic('%Number%');
var $TypeError = require('es-errors/type');
var $isNaN = require('../helpers/isNaN');
var $isFinite = require('../helpers/isFinite');
var isPrefixOf = require('../helpers/isPrefixOf');
var ToNumber = require('./ToNumber');
var ToPrimitive = require('./ToPrimitive');
// https://262.ecma-international.org/5.1/#sec-11.8.5
// eslint-disable-next-line max-statements
module.exports = function AbstractRelationalComparison(x, y, LeftFirst) {
if (typeof LeftFirst !== 'boolean') {
throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean');
}
var px;
var py;
if (LeftFirst) {
px = ToPrimitive(x, $Number);
py = ToPrimitive(y, $Number);
} else {
py = ToPrimitive(y, $Number);
px = ToPrimitive(x, $Number);
}
var bothStrings = typeof px === 'string' && typeof py === 'string';
if (!bothStrings) {
var nx = ToNumber(px);
var ny = ToNumber(py);
if ($isNaN(nx) || $isNaN(ny)) {
return undefined;
}
if ($isFinite(nx) && $isFinite(ny) && nx === ny) {
return false;
}
if (nx === Infinity) {
return false;
}
if (ny === Infinity) {
return true;
}
if (ny === -Infinity) {
return false;
}
if (nx === -Infinity) {
return true;
}
return nx < ny; // by now, these are both nonzero, finite, and not equal
}
if (isPrefixOf(py, px)) {
return false;
}
if (isPrefixOf(px, py)) {
return true;
}
return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f
};

43
node_modules/es-abstract/2017/AdvanceStringIndex.js generated vendored Normal file
View File

@@ -0,0 +1,43 @@
'use strict';
var isInteger = require('../helpers/isInteger');
var isLeadingSurrogate = require('../helpers/isLeadingSurrogate');
var isTrailingSurrogate = require('../helpers/isTrailingSurrogate');
var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger');
var $TypeError = require('es-errors/type');
var $charCodeAt = require('call-bind/callBound')('String.prototype.charCodeAt');
// https://262.ecma-international.org/6.0/#sec-advancestringindex
module.exports = function AdvanceStringIndex(S, index, unicode) {
if (typeof S !== 'string') {
throw new $TypeError('Assertion failed: `S` must be a String');
}
if (!isInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) {
throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53');
}
if (typeof unicode !== 'boolean') {
throw new $TypeError('Assertion failed: `unicode` must be a Boolean');
}
if (!unicode) {
return index + 1;
}
var length = S.length;
if ((index + 1) >= length) {
return index + 1;
}
var first = $charCodeAt(S, index);
if (!isLeadingSurrogate(first)) {
return index + 1;
}
var second = $charCodeAt(S, index + 1);
if (!isTrailingSurrogate(second)) {
return index + 1;
}
return index + 2;
};

54
node_modules/es-abstract/2017/ArrayCreate.js generated vendored Normal file
View File

@@ -0,0 +1,54 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $ArrayPrototype = GetIntrinsic('%Array.prototype%');
var $RangeError = require('es-errors/range');
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var isInteger = require('../helpers/isInteger');
var hasProto = require('has-proto')();
var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1;
var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || (
hasProto
? function (O, proto) {
O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign
return O;
}
: null
);
// https://262.ecma-international.org/6.0/#sec-arraycreate
module.exports = function ArrayCreate(length) {
if (!isInteger(length) || length < 0) {
throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0');
}
if (length > MAX_ARRAY_LENGTH) {
throw new $RangeError('length is greater than (2**32 - 1)');
}
var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype;
var A = []; // steps 5 - 7, and 9
if (proto !== $ArrayPrototype) { // step 8
if (!$setProto) {
throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]');
}
$setProto(A, proto);
}
if (length !== 0) { // bypasses the need for step 2
A.length = length;
}
/* step 10, the above as a shortcut for the below
OrdinaryDefineOwnProperty(A, 'length', {
'[[Configurable]]': false,
'[[Enumerable]]': false,
'[[Value]]': length,
'[[Writable]]': true
});
*/
return A;
};

77
node_modules/es-abstract/2017/ArraySetLength.js generated vendored Normal file
View File

@@ -0,0 +1,77 @@
'use strict';
var $RangeError = require('es-errors/range');
var $TypeError = require('es-errors/type');
var assign = require('object.assign');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
var IsArray = require('./IsArray');
var IsDataDescriptor = require('./IsDataDescriptor');
var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty');
var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty');
var ToNumber = require('./ToNumber');
var ToString = require('./ToString');
var ToUint32 = require('./ToUint32');
// https://262.ecma-international.org/6.0/#sec-arraysetlength
// eslint-disable-next-line max-statements, max-lines-per-function
module.exports = function ArraySetLength(A, Desc) {
if (!IsArray(A)) {
throw new $TypeError('Assertion failed: A must be an Array');
}
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: Desc must be a Property Descriptor');
}
if (!('[[Value]]' in Desc)) {
return OrdinaryDefineOwnProperty(A, 'length', Desc);
}
var newLenDesc = assign({}, Desc);
var newLen = ToUint32(Desc['[[Value]]']);
var numberLen = ToNumber(Desc['[[Value]]']);
if (newLen !== numberLen) {
throw new $RangeError('Invalid array length');
}
newLenDesc['[[Value]]'] = newLen;
var oldLenDesc = OrdinaryGetOwnProperty(A, 'length');
if (!IsDataDescriptor(oldLenDesc)) {
throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`');
}
var oldLen = oldLenDesc['[[Value]]'];
if (newLen >= oldLen) {
return OrdinaryDefineOwnProperty(A, 'length', newLenDesc);
}
if (!oldLenDesc['[[Writable]]']) {
return false;
}
var newWritable;
if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) {
newWritable = true;
} else {
newWritable = false;
newLenDesc['[[Writable]]'] = true;
}
var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc);
if (!succeeded) {
return false;
}
while (newLen < oldLen) {
oldLen -= 1;
// eslint-disable-next-line no-param-reassign
var deleteSucceeded = delete A[ToString(oldLen)];
if (!deleteSucceeded) {
newLenDesc['[[Value]]'] = oldLen + 1;
if (!newWritable) {
newLenDesc['[[Writable]]'] = false;
OrdinaryDefineOwnProperty(A, 'length', newLenDesc);
return false;
}
}
}
if (!newWritable) {
return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false });
}
return true;
};

47
node_modules/es-abstract/2017/ArraySpeciesCreate.js generated vendored Normal file
View File

@@ -0,0 +1,47 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $Array = GetIntrinsic('%Array%');
var $species = GetIntrinsic('%Symbol.species%', true);
var $TypeError = require('es-errors/type');
var Get = require('./Get');
var IsArray = require('./IsArray');
var IsConstructor = require('./IsConstructor');
var Type = require('./Type');
var isInteger = require('../helpers/isInteger');
// https://262.ecma-international.org/6.0/#sec-arrayspeciescreate
module.exports = function ArraySpeciesCreate(originalArray, length) {
if (!isInteger(length) || length < 0) {
throw new $TypeError('Assertion failed: length must be an integer >= 0');
}
var len = length === 0 ? 0 : length;
var C;
var isArray = IsArray(originalArray);
if (isArray) {
C = Get(originalArray, 'constructor');
// TODO: figure out how to make a cross-realm normal Array, a same-realm Array
// if (IsConstructor(C)) {
// if C is another realm's Array, C = undefined
// Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?
// }
if ($species && Type(C) === 'Object') {
C = Get(C, $species);
if (C === null) {
C = void 0;
}
}
}
if (typeof C === 'undefined') {
return $Array(len);
}
if (!IsConstructor(C)) {
throw new $TypeError('C must be a constructor');
}
return new C(len); // Construct(C, len);
};

20
node_modules/es-abstract/2017/Call.js generated vendored Normal file
View File

@@ -0,0 +1,20 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var callBound = require('call-bind/callBound');
var $TypeError = require('es-errors/type');
var IsArray = require('./IsArray');
var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('Function.prototype.apply');
// https://262.ecma-international.org/6.0/#sec-call
module.exports = function Call(F, V) {
var argumentsList = arguments.length > 2 ? arguments[2] : [];
if (!IsArray(argumentsList)) {
throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List');
}
return $apply(F, V, argumentsList);
};

View File

@@ -0,0 +1,19 @@
'use strict';
var $TypeError = require('es-errors/type');
var SameValue = require('./SameValue');
var ToNumber = require('./ToNumber');
var ToString = require('./ToString');
// https://262.ecma-international.org/6.0/#sec-canonicalnumericindexstring
module.exports = function CanonicalNumericIndexString(argument) {
if (typeof argument !== 'string') {
throw new $TypeError('Assertion failed: `argument` must be a String');
}
if (argument === '-0') { return -0; }
var n = ToNumber(argument);
if (SameValue(ToString(n), argument)) { return n; }
return void 0;
};

51
node_modules/es-abstract/2017/Canonicalize.js generated vendored Normal file
View File

@@ -0,0 +1,51 @@
'use strict';
var $TypeError = require('es-errors/type');
var callBound = require('call-bind/callBound');
var hasOwn = require('hasown');
var $charCodeAt = callBound('String.prototype.charCodeAt');
var $toUpperCase = callBound('String.prototype.toUpperCase');
var caseFolding = require('../helpers/caseFolding.json');
// https://262.ecma-international.org/6.0/#sec-runtime-semantics-canonicalize-ch
module.exports = function Canonicalize(ch, IgnoreCase, Unicode) {
if (typeof ch !== 'string') {
throw new $TypeError('Assertion failed: `ch` must be a character');
}
if (typeof IgnoreCase !== 'boolean' || typeof Unicode !== 'boolean') {
throw new $TypeError('Assertion failed: `IgnoreCase` and `Unicode` must be Booleans');
}
if (!IgnoreCase) {
return ch; // step 1
}
if (Unicode) { // step 2
if (hasOwn(caseFolding.C, ch)) {
return caseFolding.C[ch];
}
if (hasOwn(caseFolding.S, ch)) {
return caseFolding.S[ch];
}
return ch; // step 2.b
}
var u = $toUpperCase(ch); // step 2
if (u.length !== 1) {
return ch; // step 3
}
var cu = u; // step 4
if ($charCodeAt(ch, 0) >= 128 && $charCodeAt(cu, 0) < 128) {
return ch; // step 5
}
return cu;
};

31
node_modules/es-abstract/2017/CharacterRange.js generated vendored Normal file
View File

@@ -0,0 +1,31 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var callBound = require('call-bind/callBound');
var $fromCharCode = GetIntrinsic('%String.fromCharCode%');
var $TypeError = require('es-errors/type');
var $charCodeAt = callBound('String.prototype.charCodeAt');
var $push = callBound('Array.prototype.push');
module.exports = function CharacterRange(A, B) {
if (A.length !== 1 || B.length !== 1) {
throw new $TypeError('Assertion failed: CharSets A and B contain exactly one character');
}
var a = A[0];
var b = B[0];
var i = $charCodeAt(a, 0);
var j = $charCodeAt(b, 0);
if (!(i <= j)) {
throw new $TypeError('Assertion failed: i is not <= j');
}
var arr = [];
for (var k = i; k <= j; k += 1) {
$push(arr, $fromCharCode(k));
}
return arr;
};

View File

@@ -0,0 +1,43 @@
'use strict';
var $TypeError = require('es-errors/type');
var hasOwn = require('hasown');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsGenericDescriptor = require('./IsGenericDescriptor');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
// https://262.ecma-international.org/6.0/#sec-completepropertydescriptor
module.exports = function CompletePropertyDescriptor(Desc) {
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: `Desc` must be a Property Descriptor');
}
/* eslint no-param-reassign: 0 */
if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) {
if (!hasOwn(Desc, '[[Value]]')) {
Desc['[[Value]]'] = void 0;
}
if (!hasOwn(Desc, '[[Writable]]')) {
Desc['[[Writable]]'] = false;
}
} else {
if (!hasOwn(Desc, '[[Get]]')) {
Desc['[[Get]]'] = void 0;
}
if (!hasOwn(Desc, '[[Set]]')) {
Desc['[[Set]]'] = void 0;
}
}
if (!hasOwn(Desc, '[[Enumerable]]')) {
Desc['[[Enumerable]]'] = false;
}
if (!hasOwn(Desc, '[[Configurable]]')) {
Desc['[[Configurable]]'] = false;
}
return Desc;
};

51
node_modules/es-abstract/2017/CompletionRecord.js generated vendored Normal file
View File

@@ -0,0 +1,51 @@
'use strict';
var $SyntaxError = require('es-errors/syntax');
var SLOT = require('internal-slot');
// https://262.ecma-international.org/7.0/#sec-completion-record-specification-type
var CompletionRecord = function CompletionRecord(type, value) {
if (!(this instanceof CompletionRecord)) {
return new CompletionRecord(type, value);
}
if (type !== 'normal' && type !== 'break' && type !== 'continue' && type !== 'return' && type !== 'throw') {
throw new $SyntaxError('Assertion failed: `type` must be one of "normal", "break", "continue", "return", or "throw"');
}
SLOT.set(this, '[[Type]]', type);
SLOT.set(this, '[[Value]]', value);
// [[Target]] slot?
};
CompletionRecord.prototype.type = function Type() {
return SLOT.get(this, '[[Type]]');
};
CompletionRecord.prototype.value = function Value() {
return SLOT.get(this, '[[Value]]');
};
CompletionRecord.prototype['?'] = function ReturnIfAbrupt() {
var type = SLOT.get(this, '[[Type]]');
var value = SLOT.get(this, '[[Value]]');
if (type === 'normal') {
return value;
}
if (type === 'throw') {
throw value;
}
throw new $SyntaxError('Completion Record is not of type "normal" or "throw": other types not supported');
};
CompletionRecord.prototype['!'] = function assert() {
var type = SLOT.get(this, '[[Type]]');
if (type !== 'normal') {
throw new $SyntaxError('Assertion failed: Completion Record is not of type "normal"');
}
return SLOT.get(this, '[[Value]]');
};
module.exports = CompletionRecord;

25
node_modules/es-abstract/2017/CreateDataProperty.js generated vendored Normal file
View File

@@ -0,0 +1,25 @@
'use strict';
var $TypeError = require('es-errors/type');
var IsPropertyKey = require('./IsPropertyKey');
var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-createdataproperty
module.exports = function CreateDataProperty(O, P, V) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
var newDesc = {
'[[Configurable]]': true,
'[[Enumerable]]': true,
'[[Value]]': V,
'[[Writable]]': true
};
return OrdinaryDefineOwnProperty(O, P, newDesc);
};

View File

@@ -0,0 +1,23 @@
'use strict';
var $TypeError = require('es-errors/type');
var CreateDataProperty = require('./CreateDataProperty');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// // https://262.ecma-international.org/6.0/#sec-createdatapropertyorthrow
module.exports = function CreateDataPropertyOrThrow(O, P, V) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
var success = CreateDataProperty(O, P, V);
if (!success) {
throw new $TypeError('unable to create data property');
}
return success;
};

27
node_modules/es-abstract/2017/CreateHTML.js generated vendored Normal file
View File

@@ -0,0 +1,27 @@
'use strict';
var $TypeError = require('es-errors/type');
var callBound = require('call-bind/callBound');
var $replace = callBound('String.prototype.replace');
var RequireObjectCoercible = require('./RequireObjectCoercible');
var ToString = require('./ToString');
// https://262.ecma-international.org/6.0/#sec-createhtml
module.exports = function CreateHTML(string, tag, attribute, value) {
if (typeof tag !== 'string' || typeof attribute !== 'string') {
throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings');
}
var str = RequireObjectCoercible(string);
var S = ToString(str);
var p1 = '<' + tag;
if (attribute !== '') {
var V = ToString(value);
var escapedV = $replace(V, /\x22/g, '&quot;');
p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22';
}
return p1 + '>' + S + '</' + tag + '>';
};

View File

@@ -0,0 +1,15 @@
'use strict';
var $TypeError = require('es-errors/type');
// https://262.ecma-international.org/6.0/#sec-createiterresultobject
module.exports = function CreateIterResultObject(value, done) {
if (typeof done !== 'boolean') {
throw new $TypeError('Assertion failed: Type(done) is not Boolean');
}
return {
value: value,
done: done
};
};

View File

@@ -0,0 +1,43 @@
'use strict';
var callBound = require('call-bind/callBound');
var $TypeError = require('es-errors/type');
var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf');
var $push = callBound('Array.prototype.push');
var Get = require('./Get');
var IsArray = require('./IsArray');
var ToLength = require('./ToLength');
var ToString = require('./ToString');
var Type = require('./Type');
var defaultElementTypes = ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object'];
// https://262.ecma-international.org/6.0/#sec-createlistfromarraylike
module.exports = function CreateListFromArrayLike(obj) {
var elementTypes = arguments.length > 1
? arguments[1]
: defaultElementTypes;
if (Type(obj) !== 'Object') {
throw new $TypeError('Assertion failed: `obj` must be an Object');
}
if (!IsArray(elementTypes)) {
throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array');
}
var len = ToLength(Get(obj, 'length'));
var list = [];
var index = 0;
while (index < len) {
var indexName = ToString(index);
var next = Get(obj, indexName);
var nextType = Type(next);
if ($indexOf(elementTypes, nextType) < 0) {
throw new $TypeError('item type ' + nextType + ' is not a valid elementType');
}
$push(list, next);
index += 1;
}
return list;
};

38
node_modules/es-abstract/2017/CreateMethodProperty.js generated vendored Normal file
View File

@@ -0,0 +1,38 @@
'use strict';
var $TypeError = require('es-errors/type');
var DefineOwnProperty = require('../helpers/DefineOwnProperty');
var FromPropertyDescriptor = require('./FromPropertyDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsPropertyKey = require('./IsPropertyKey');
var SameValue = require('./SameValue');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-createmethodproperty
module.exports = function CreateMethodProperty(O, P, V) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
var newDesc = {
'[[Configurable]]': true,
'[[Enumerable]]': false,
'[[Value]]': V,
'[[Writable]]': true
};
return DefineOwnProperty(
IsDataDescriptor,
SameValue,
FromPropertyDescriptor,
O,
P,
newDesc
);
};

52
node_modules/es-abstract/2017/DateFromTime.js generated vendored Normal file
View File

@@ -0,0 +1,52 @@
'use strict';
var $EvalError = require('es-errors/eval');
var DayWithinYear = require('./DayWithinYear');
var InLeapYear = require('./InLeapYear');
var MonthFromTime = require('./MonthFromTime');
// https://262.ecma-international.org/5.1/#sec-15.9.1.5
module.exports = function DateFromTime(t) {
var m = MonthFromTime(t);
var d = DayWithinYear(t);
if (m === 0) {
return d + 1;
}
if (m === 1) {
return d - 30;
}
var leap = InLeapYear(t);
if (m === 2) {
return d - 58 - leap;
}
if (m === 3) {
return d - 89 - leap;
}
if (m === 4) {
return d - 119 - leap;
}
if (m === 5) {
return d - 150 - leap;
}
if (m === 6) {
return d - 180 - leap;
}
if (m === 7) {
return d - 211 - leap;
}
if (m === 8) {
return d - 242 - leap;
}
if (m === 9) {
return d - 272 - leap;
}
if (m === 10) {
return d - 303 - leap;
}
if (m === 11) {
return d - 333 - leap;
}
throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m);
};

11
node_modules/es-abstract/2017/Day.js generated vendored Normal file
View File

@@ -0,0 +1,11 @@
'use strict';
var floor = require('./floor');
var msPerDay = require('../helpers/timeConstants').msPerDay;
// https://262.ecma-international.org/5.1/#sec-15.9.1.2
module.exports = function Day(t) {
return floor(t / msPerDay);
};

10
node_modules/es-abstract/2017/DayFromYear.js generated vendored Normal file
View File

@@ -0,0 +1,10 @@
'use strict';
var floor = require('./floor');
// https://262.ecma-international.org/5.1/#sec-15.9.1.3
module.exports = function DayFromYear(y) {
return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400);
};

11
node_modules/es-abstract/2017/DayWithinYear.js generated vendored Normal file
View File

@@ -0,0 +1,11 @@
'use strict';
var Day = require('./Day');
var DayFromYear = require('./DayFromYear');
var YearFromTime = require('./YearFromTime');
// https://262.ecma-international.org/5.1/#sec-15.9.1.4
module.exports = function DayWithinYear(t) {
return Day(t) - DayFromYear(YearFromTime(t));
};

18
node_modules/es-abstract/2017/DaysInYear.js generated vendored Normal file
View File

@@ -0,0 +1,18 @@
'use strict';
var modulo = require('./modulo');
// https://262.ecma-international.org/5.1/#sec-15.9.1.3
module.exports = function DaysInYear(y) {
if (modulo(y, 4) !== 0) {
return 365;
}
if (modulo(y, 100) !== 0) {
return 366;
}
if (modulo(y, 400) !== 0) {
return 365;
}
return 366;
};

39
node_modules/es-abstract/2017/DefinePropertyOrThrow.js generated vendored Normal file
View File

@@ -0,0 +1,39 @@
'use strict';
var $TypeError = require('es-errors/type');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
var DefineOwnProperty = require('../helpers/DefineOwnProperty');
var FromPropertyDescriptor = require('./FromPropertyDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsPropertyKey = require('./IsPropertyKey');
var SameValue = require('./SameValue');
var ToPropertyDescriptor = require('./ToPropertyDescriptor');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-definepropertyorthrow
module.exports = function DefinePropertyOrThrow(O, P, desc) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
var Desc = isPropertyDescriptor(desc) ? desc : ToPropertyDescriptor(desc);
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor');
}
return DefineOwnProperty(
IsDataDescriptor,
SameValue,
FromPropertyDescriptor,
O,
P,
Desc
);
};

25
node_modules/es-abstract/2017/DeletePropertyOrThrow.js generated vendored Normal file
View File

@@ -0,0 +1,25 @@
'use strict';
var $TypeError = require('es-errors/type');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-deletepropertyorthrow
module.exports = function DeletePropertyOrThrow(O, P) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
// eslint-disable-next-line no-param-reassign
var success = delete O[P];
if (!success) {
throw new $TypeError('Attempt to delete property failed.');
}
return success;
};

39
node_modules/es-abstract/2017/DetachArrayBuffer.js generated vendored Normal file
View File

@@ -0,0 +1,39 @@
'use strict';
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var IsDetachedBuffer = require('./IsDetachedBuffer');
var isArrayBuffer = require('is-array-buffer');
var isSharedArrayBuffer = require('is-shared-array-buffer');
var MessageChannel;
try {
// eslint-disable-next-line global-require
MessageChannel = require('worker_threads').MessageChannel; // node 11.7+
} catch (e) { /**/ }
// https://262.ecma-international.org/8.0/#sec-detacharraybuffer
/* globals postMessage */
module.exports = function DetachArrayBuffer(arrayBuffer) {
if (!isArrayBuffer(arrayBuffer) || isSharedArrayBuffer(arrayBuffer)) {
throw new $TypeError('Assertion failed: `arrayBuffer` must be an Object with an [[ArrayBufferData]] internal slot, and not a Shared Array Buffer');
}
if (!IsDetachedBuffer(arrayBuffer)) { // node v21.0.0+ throws when you structuredClone a detached buffer
if (typeof structuredClone === 'function') {
structuredClone(arrayBuffer, { transfer: [arrayBuffer] });
} else if (typeof postMessage === 'function') {
postMessage('', '/', [arrayBuffer]); // TODO: see if this might trigger listeners
} else if (MessageChannel) {
(new MessageChannel()).port1.postMessage(null, [arrayBuffer]);
} else {
throw new $SyntaxError('DetachArrayBuffer is not supported in this environment');
}
}
return null;
};

View File

@@ -0,0 +1,43 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = require('es-errors/type');
var objectKeys = require('object-keys');
var callBound = require('call-bind/callBound');
var callBind = require('call-bind');
var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%'));
var forEach = require('../helpers/forEach');
var Type = require('./Type');
// https://262.ecma-international.org/8.0/#sec-enumerableownproperties
module.exports = function EnumerableOwnProperties(O, kind) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
var keys = objectKeys(O);
if (kind === 'key') {
return keys;
}
if (kind === 'value' || kind === 'key+value') {
var results = [];
forEach(keys, function (key) {
if ($isEnumerable(O, key)) {
$pushApply(results, [
kind === 'value' ? O[key] : [key, O[key]]
]);
}
});
return results;
}
throw new $TypeError('Assertion failed: "kind" is not "key", "value", or "key+value": ' + kind);
};

View File

@@ -0,0 +1,16 @@
'use strict';
var $TypeError = require('es-errors/type');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
var fromPropertyDescriptor = require('../helpers/fromPropertyDescriptor');
// https://262.ecma-international.org/6.0/#sec-frompropertydescriptor
module.exports = function FromPropertyDescriptor(Desc) {
if (typeof Desc !== 'undefined' && !isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: `Desc` must be a Property Descriptor');
}
return fromPropertyDescriptor(Desc);
};

23
node_modules/es-abstract/2017/Get.js generated vendored Normal file
View File

@@ -0,0 +1,23 @@
'use strict';
var $TypeError = require('es-errors/type');
var inspect = require('object-inspect');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-get-o-p
module.exports = function Get(O, P) {
// 7.3.1.1
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
// 7.3.1.2
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));
}
// 7.3.1.3
return O[P];
};

9
node_modules/es-abstract/2017/GetGlobalObject.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
'use strict';
var getGlobal = require('globalthis/polyfill');
// https://262.ecma-international.org/6.0/#sec-getglobalobject
module.exports = function GetGlobalObject() {
return getGlobal();
};

32
node_modules/es-abstract/2017/GetIterator.js generated vendored Normal file
View File

@@ -0,0 +1,32 @@
'use strict';
var $TypeError = require('es-errors/type');
var getIteratorMethod = require('../helpers/getIteratorMethod');
var AdvanceStringIndex = require('./AdvanceStringIndex');
var Call = require('./Call');
var GetMethod = require('./GetMethod');
var IsArray = require('./IsArray');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-getiterator
module.exports = function GetIterator(obj, method) {
var actualMethod = method;
if (arguments.length < 2) {
actualMethod = getIteratorMethod(
{
AdvanceStringIndex: AdvanceStringIndex,
GetMethod: GetMethod,
IsArray: IsArray
},
obj
);
}
var iterator = Call(actualMethod, obj);
if (Type(iterator) !== 'Object') {
throw new $TypeError('iterator must return an object');
}
return iterator;
};

34
node_modules/es-abstract/2017/GetMethod.js generated vendored Normal file
View File

@@ -0,0 +1,34 @@
'use strict';
var $TypeError = require('es-errors/type');
var GetV = require('./GetV');
var IsCallable = require('./IsCallable');
var IsPropertyKey = require('./IsPropertyKey');
var inspect = require('object-inspect');
// https://262.ecma-international.org/6.0/#sec-getmethod
module.exports = function GetMethod(O, P) {
// 7.3.9.1
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
// 7.3.9.2
var func = GetV(O, P);
// 7.3.9.4
if (func == null) {
return void 0;
}
// 7.3.9.5
if (!IsCallable(func)) {
throw new $TypeError(inspect(P) + ' is not a function: ' + inspect(func));
}
// 7.3.9.6
return func;
};

31
node_modules/es-abstract/2017/GetOwnPropertyKeys.js generated vendored Normal file
View File

@@ -0,0 +1,31 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var hasSymbols = require('has-symbols')();
var $TypeError = require('es-errors/type');
var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true);
var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%', true);
var keys = require('object-keys');
var esType = require('./Type');
// https://262.ecma-international.org/6.0/#sec-getownpropertykeys
module.exports = function GetOwnPropertyKeys(O, Type) {
if (esType(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (Type === 'Symbol') {
return $gOPS ? $gOPS(O) : [];
}
if (Type === 'String') {
if (!$gOPN) {
return keys(O);
}
return $gOPN(O);
}
throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`');
};

View File

@@ -0,0 +1,32 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $Function = GetIntrinsic('%Function%');
var $TypeError = require('es-errors/type');
var $SyntaxError = require('es-errors/syntax');
var Get = require('./Get');
var IsConstructor = require('./IsConstructor');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-getprototypefromconstructor
module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) {
var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic
if (Type(intrinsic) !== 'Object') {
throw new $TypeError('intrinsicDefaultProto must be an object');
}
if (!IsConstructor(constructor)) {
throw new $TypeError('Assertion failed: `constructor` must be a constructor');
}
var proto = Get(constructor, 'prototype');
if (Type(proto) !== 'Object') {
if (!(constructor instanceof $Function)) {
// ignore other realms, for now
throw new $SyntaxError('cross-realm constructors not currently supported');
}
proto = intrinsic;
}
return proto;
};

99
node_modules/es-abstract/2017/GetSubstitution.js generated vendored Normal file
View File

@@ -0,0 +1,99 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = require('es-errors/type');
var $parseInt = GetIntrinsic('%parseInt%');
var inspect = require('object-inspect');
var regexTester = require('safe-regex-test');
var callBound = require('call-bind/callBound');
var every = require('../helpers/every');
var isDigit = regexTester(/^[0-9]$/);
var $charAt = callBound('String.prototype.charAt');
var $strSlice = callBound('String.prototype.slice');
var IsArray = require('./IsArray');
var isInteger = require('../helpers/isInteger');
var isStringOrUndefined = require('../helpers/isStringOrUndefined');
// https://262.ecma-international.org/6.0/#sec-getsubstitution
// eslint-disable-next-line max-statements, max-lines-per-function
module.exports = function GetSubstitution(matched, str, position, captures, replacement) {
if (typeof matched !== 'string') {
throw new $TypeError('Assertion failed: `matched` must be a String');
}
var matchLength = matched.length;
if (typeof str !== 'string') {
throw new $TypeError('Assertion failed: `str` must be a String');
}
var stringLength = str.length;
if (!isInteger(position) || position < 0 || position > stringLength) {
throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position));
}
if (!IsArray(captures) || !every(captures, isStringOrUndefined)) {
throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures));
}
if (typeof replacement !== 'string') {
throw new $TypeError('Assertion failed: `replacement` must be a String');
}
var tailPos = position + matchLength;
var m = captures.length;
var result = '';
for (var i = 0; i < replacement.length; i += 1) {
// if this is a $, and it's not the end of the replacement
var current = $charAt(replacement, i);
var isLast = (i + 1) >= replacement.length;
var nextIsLast = (i + 2) >= replacement.length;
if (current === '$' && !isLast) {
var next = $charAt(replacement, i + 1);
if (next === '$') {
result += '$';
i += 1;
} else if (next === '&') {
result += matched;
i += 1;
} else if (next === '`') {
result += position === 0 ? '' : $strSlice(str, 0, position - 1);
i += 1;
} else if (next === "'") {
result += tailPos >= stringLength ? '' : $strSlice(str, tailPos);
i += 1;
} else {
var nextNext = nextIsLast ? null : $charAt(replacement, i + 2);
if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) {
// $1 through $9, and not followed by a digit
var n = $parseInt(next, 10);
// if (n > m, impl-defined)
result += n <= m && typeof captures[n - 1] === 'undefined' ? '' : captures[n - 1];
i += 1;
} else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) {
// $00 through $99
var nn = next + nextNext;
var nnI = $parseInt(nn, 10) - 1;
// if nn === '00' or nn > m, impl-defined
result += nn <= m && typeof captures[nnI] === 'undefined' ? '' : captures[nnI];
i += 2;
} else {
result += '$';
}
}
} else {
// the final $, or else not a $
result += $charAt(replacement, i);
}
}
return result;
};

23
node_modules/es-abstract/2017/GetV.js generated vendored Normal file
View File

@@ -0,0 +1,23 @@
'use strict';
var $TypeError = require('es-errors/type');
var inspect = require('object-inspect');
var IsPropertyKey = require('./IsPropertyKey');
// var ToObject = require('./ToObject');
// https://262.ecma-international.org/6.0/#sec-getv
module.exports = function GetV(V, P) {
// 7.3.2.1
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));
}
// 7.3.2.2-3
// var O = ToObject(V);
// 7.3.2.4
return V[P];
};

97
node_modules/es-abstract/2017/GetValueFromBuffer.js generated vendored Normal file
View File

@@ -0,0 +1,97 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var $Uint8Array = GetIntrinsic('%Uint8Array%', true);
var callBound = require('call-bind/callBound');
var $slice = callBound('Array.prototype.slice');
var isInteger = require('../helpers/isInteger');
var IsDetachedBuffer = require('./IsDetachedBuffer');
var RawBytesToNumber = require('./RawBytesToNumber');
var isArrayBuffer = require('is-array-buffer');
var isSharedArrayBuffer = require('is-shared-array-buffer');
var safeConcat = require('safe-array-concat');
var tableTAO = require('./tables/typed-array-objects');
var defaultEndianness = require('../helpers/defaultEndianness');
// https://262.ecma-international.org/8.0/#sec-getvaluefrombuffer
module.exports = function GetValueFromBuffer(arrayBuffer, byteIndex, type, isTypedArray, order) {
var isSAB = isSharedArrayBuffer(arrayBuffer);
if (!isArrayBuffer(arrayBuffer) && !isSAB) {
throw new $TypeError('Assertion failed: `arrayBuffer` must be an ArrayBuffer or a SharedArrayBuffer');
}
if (!isInteger(byteIndex)) {
throw new $TypeError('Assertion failed: `byteIndex` must be an integer');
}
if (typeof type !== 'string') {
throw new $TypeError('Assertion failed: `type` must be a string');
}
if (typeof isTypedArray !== 'boolean') {
throw new $TypeError('Assertion failed: `isTypedArray` must be a boolean');
}
if (typeof order !== 'string') {
throw new $TypeError('Assertion failed: `order` must be a string');
}
if (arguments.length > 5 && typeof arguments[5] !== 'boolean') {
throw new $TypeError('Assertion failed: `isLittleEndian` must be a boolean, if present');
}
if (IsDetachedBuffer(arrayBuffer)) {
throw new $TypeError('Assertion failed: `arrayBuffer` is detached'); // step 1
}
// 2. Assert: There are sufficient bytes in arrayBuffer starting at byteIndex to represent a value of type.
if (byteIndex < 0) {
throw new $TypeError('Assertion failed: `byteIndex` must be non-negative'); // step 3
}
// 4. Let block be arrayBuffer.[[ArrayBufferData]].
var elementSize = tableTAO.size['$' + type]; // step 5
if (!elementSize) {
throw new $TypeError('Assertion failed: `type` must be one of "Int8", "Uint8", "Uint8C", "Int16", "Uint16", "Int32", "Uint32", "Float32", or "Float64"');
}
var rawValue;
if (isSAB) { // step 6
/*
a. Let execution be the [[CandidateExecution]] field of the surrounding agent's Agent Record.
b. Let eventList be the [[EventList]] field of the element in execution.[[EventLists]] whose [[AgentSignifier]] is AgentSignifier().
c. If isTypedArray is true and type is "Int8", "Uint8", "Int16", "Uint16", "Int32", or "Uint32", let noTear be true; otherwise let noTear be false.
d. Let rawValue be a List of length elementSize of nondeterministically chosen byte values.
e. NOTE: In implementations, rawValue is the result of a non-atomic or atomic read instruction on the underlying hardware. The nondeterminism is a semantic prescription of the memory model to describe observable behaviour of hardware with weak consistency.
f. Let readEvent be ReadSharedMemory{ [[Order]]: order, [[NoTear]]: noTear, [[Block]]: block, [[ByteIndex]]: byteIndex, [[ElementSize]]: elementSize }.
g. Append readEvent to eventList.
h. Append Chosen Value Record { [[Event]]: readEvent, [[ChosenValue]]: rawValue } to execution.[[ChosenValues]].
*/
throw new $SyntaxError('TODO: support SharedArrayBuffers');
} else {
// 7. Let rawValue be a List of elementSize containing, in order, the elementSize sequence of bytes starting with block[byteIndex].
rawValue = $slice(new $Uint8Array(arrayBuffer, byteIndex), 0, elementSize); // step 6
}
// 8. If isLittleEndian is not present, set isLittleEndian to either true or false. The choice is implementation dependent and should be the alternative that is most efficient for the implementation. An implementation must use the same value each time this step is executed and the same value must be used for the corresponding step in the SetValueInBuffer abstract operation.
var isLittleEndian = arguments.length > 5 ? arguments[5] : defaultEndianness === 'little'; // step 8
var bytes = isLittleEndian
? $slice(safeConcat([0, 0, 0, 0, 0, 0, 0, 0], rawValue), -elementSize)
: $slice(safeConcat(rawValue, [0, 0, 0, 0, 0, 0, 0, 0]), 0, elementSize);
return RawBytesToNumber(type, bytes, isLittleEndian);
};

20
node_modules/es-abstract/2017/HasOwnProperty.js generated vendored Normal file
View File

@@ -0,0 +1,20 @@
'use strict';
var $TypeError = require('es-errors/type');
var hasOwn = require('hasown');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-hasownproperty
module.exports = function HasOwnProperty(O, P) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: `O` must be an Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: `P` must be a Property Key');
}
return hasOwn(O, P);
};

18
node_modules/es-abstract/2017/HasProperty.js generated vendored Normal file
View File

@@ -0,0 +1,18 @@
'use strict';
var $TypeError = require('es-errors/type');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-hasproperty
module.exports = function HasProperty(O, P) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: `O` must be an Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: `P` must be a Property Key');
}
return P in O;
};

14
node_modules/es-abstract/2017/HourFromTime.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
'use strict';
var floor = require('./floor');
var modulo = require('./modulo');
var timeConstants = require('../helpers/timeConstants');
var msPerHour = timeConstants.msPerHour;
var HoursPerDay = timeConstants.HoursPerDay;
// https://262.ecma-international.org/5.1/#sec-15.9.1.10
module.exports = function HourFromTime(t) {
return modulo(floor(t / msPerHour), HoursPerDay);
};

19
node_modules/es-abstract/2017/InLeapYear.js generated vendored Normal file
View File

@@ -0,0 +1,19 @@
'use strict';
var $EvalError = require('es-errors/eval');
var DaysInYear = require('./DaysInYear');
var YearFromTime = require('./YearFromTime');
// https://262.ecma-international.org/5.1/#sec-15.9.1.3
module.exports = function InLeapYear(t) {
var days = DaysInYear(YearFromTime(t));
if (days === 365) {
return 0;
}
if (days === 366) {
return 1;
}
throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days);
};

30
node_modules/es-abstract/2017/InstanceofOperator.js generated vendored Normal file
View File

@@ -0,0 +1,30 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = require('es-errors/type');
var $hasInstance = GetIntrinsic('Symbol.hasInstance', true);
var Call = require('./Call');
var GetMethod = require('./GetMethod');
var IsCallable = require('./IsCallable');
var OrdinaryHasInstance = require('./OrdinaryHasInstance');
var ToBoolean = require('./ToBoolean');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-instanceofoperator
module.exports = function InstanceofOperator(O, C) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0;
if (typeof instOfHandler !== 'undefined') {
return ToBoolean(Call(instOfHandler, C, [O]));
}
if (!IsCallable(C)) {
throw new $TypeError('`C` is not Callable');
}
return OrdinaryHasInstance(C, O);
};

View File

@@ -0,0 +1,58 @@
'use strict';
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var GetValueFromBuffer = require('./GetValueFromBuffer');
var IsDetachedBuffer = require('./IsDetachedBuffer');
var IsInteger = require('./IsInteger');
var isNegativeZero = require('../helpers/isNegativeZero');
var typedArrayLength = require('typed-array-length');
var typedArrayBuffer = require('typed-array-buffer');
var typedArrayByteOffset = require('typed-array-byte-offset');
var whichTypedArray = require('which-typed-array');
var tableTAO = require('./tables/typed-array-objects');
// https://262.ecma-international.org/8.0/#sec-integerindexedelementget
module.exports = function IntegerIndexedElementGet(O, index) {
if (typeof index !== 'number') {
throw new $TypeError('`index` must be a Number'); // step 1
}
var arrayTypeName = whichTypedArray(O); // step 10
if (!arrayTypeName) {
throw new $TypeError('`O` must be a TypedArray'); // step 2
}
if (arrayTypeName === 'BigInt64Array' || arrayTypeName === 'BigUint64Array') {
throw new $SyntaxError('BigInt64Array and BigUint64Array do not exist until ES2020');
}
var buffer = typedArrayBuffer(O); // step 3
if (IsDetachedBuffer(buffer)) {
throw new $TypeError('`O` has a detached buffer'); // step 4
}
if (!IsInteger(index) || isNegativeZero(index)) {
return void undefined; // steps 5 - 6
}
var length = typedArrayLength(O); // step 7
if (index < 0 || index >= length) {
return void undefined; // step 8
}
var offset = typedArrayByteOffset(O); // step 9
var elementType = tableTAO.name['$' + arrayTypeName]; // step 13
var elementSize = tableTAO.size['$' + elementType]; // step 11
var indexedPosition = (index * elementSize) + offset; // step 12
return GetValueFromBuffer(buffer, indexedPosition, elementType, true, 'Unordered'); // step 14
};

View File

@@ -0,0 +1,58 @@
'use strict';
var $TypeError = require('es-errors/type');
var IsDetachedBuffer = require('./IsDetachedBuffer');
var IsInteger = require('./IsInteger');
var SetValueInBuffer = require('./SetValueInBuffer');
var ToNumber = require('./ToNumber');
var isNegativeZero = require('is-negative-zero');
var typedArrayBuffer = require('typed-array-buffer');
var typedArrayByteOffset = require('typed-array-byte-offset');
var typedArrayLength = require('typed-array-length');
var whichTypedArray = require('which-typed-array');
var tableTAO = require('./tables/typed-array-objects');
// https://262.ecma-international.org/8.0/#sec-integerindexedelementset
module.exports = function IntegerIndexedElementSet(O, index, value) {
if (typeof index !== 'number') {
throw new $TypeError('`index` must be a Number'); // step 1
}
var arrayTypeName = whichTypedArray(O); // step 12
if (!arrayTypeName) {
throw new $TypeError('`O` must be a TypedArray'); // step 2
}
var numValue = ToNumber(value); // step 3
var buffer = typedArrayBuffer(O); // step 5
if (IsDetachedBuffer(buffer)) {
throw new $TypeError('`O` has a detached buffer'); // step 6
}
if (!IsInteger(index) || isNegativeZero(index)) {
return false; // steps 7 - 8
}
var length = typedArrayLength(O); // step 9
if (index < 0 || index >= length) {
return false; // step 10
}
var offset = typedArrayByteOffset(O); // step 11
var elementType = tableTAO.name['$' + arrayTypeName]; // step 15
var elementSize = tableTAO.size['$' + elementType]; // step 13
var indexedPosition = (index * elementSize) + offset; // step 14
SetValueInBuffer(buffer, indexedPosition, elementType, numValue, true, 'Unordered'); // step 16
return true; // step 17
};

View File

@@ -0,0 +1,68 @@
'use strict';
var $TypeError = require('es-errors/type');
var Call = require('./Call');
var CreateDataProperty = require('./CreateDataProperty');
var EnumerableOwnProperties = require('./EnumerableOwnProperties');
var Get = require('./Get');
var IsArray = require('./IsArray');
var ToLength = require('./ToLength');
var ToString = require('./ToString');
var Type = require('./Type');
var forEach = require('../helpers/forEach');
// https://262.ecma-international.org/8.0/#sec-internalizejsonproperty
// note: `reviver` was implicitly closed-over until ES2020, where it becomes a third argument
module.exports = function InternalizeJSONProperty(holder, name, reviver) {
if (Type(holder) !== 'Object') {
throw new $TypeError('Assertion failed: `holder` is not an Object');
}
if (typeof name !== 'string') {
throw new $TypeError('Assertion failed: `name` is not a String');
}
if (typeof reviver !== 'function') {
throw new $TypeError('Assertion failed: `reviver` is not a Function');
}
var val = Get(holder, name); // step 1
if (Type(val) === 'Object') { // step 2
var isArray = IsArray(val); // step 2.a
if (isArray) { // step 2.b
var I = 0; // step 2.b.i
var len = ToLength(Get(val, 'length')); // step 2.b.ii
while (I < len) { // step 2.b.iii
var newElement = InternalizeJSONProperty(val, ToString(I), reviver); // step 2.b.iv.1
if (typeof newElement === 'undefined') { // step 2.b.iii.2
delete val[ToString(I)]; // step 2.b.iii.2.a
} else { // step 2.b.iii.3
CreateDataProperty(val, ToString(I), newElement); // step 2.b.iii.3.a
}
I += 1; // step 2.b.iii.4
}
} else { // step 2.c
var keys = EnumerableOwnProperties(val, 'key'); // step 2.c.i
forEach(keys, function (P) { // step 2.c.ii
// eslint-disable-next-line no-shadow
var newElement = InternalizeJSONProperty(val, P, reviver); // step 2.c.ii.1
if (typeof newElement === 'undefined') { // step 2.c.ii.2
delete val[P]; // step 2.c.ii.2.a
} else { // step 2.c.ii.3
CreateDataProperty(val, P, newElement); // step 2.c.ii.3.a
}
});
}
}
return Call(reviver, holder, [name, val]); // step 3
};

22
node_modules/es-abstract/2017/Invoke.js generated vendored Normal file
View File

@@ -0,0 +1,22 @@
'use strict';
var $TypeError = require('es-errors/type');
var Call = require('./Call');
var IsArray = require('./IsArray');
var GetV = require('./GetV');
var IsPropertyKey = require('./IsPropertyKey');
// https://262.ecma-international.org/6.0/#sec-invoke
module.exports = function Invoke(O, P) {
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: P must be a Property Key');
}
var argumentsList = arguments.length > 2 ? arguments[2] : [];
if (!IsArray(argumentsList)) {
throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List');
}
var func = GetV(O, P);
return Call(func, O, argumentsList);
};

25
node_modules/es-abstract/2017/IsAccessorDescriptor.js generated vendored Normal file
View File

@@ -0,0 +1,25 @@
'use strict';
var $TypeError = require('es-errors/type');
var hasOwn = require('hasown');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
// https://262.ecma-international.org/5.1/#sec-8.10.1
module.exports = function IsAccessorDescriptor(Desc) {
if (typeof Desc === 'undefined') {
return false;
}
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: `Desc` must be a Property Descriptor');
}
if (!hasOwn(Desc, '[[Get]]') && !hasOwn(Desc, '[[Set]]')) {
return false;
}
return true;
};

4
node_modules/es-abstract/2017/IsArray.js generated vendored Normal file
View File

@@ -0,0 +1,4 @@
'use strict';
// https://262.ecma-international.org/6.0/#sec-isarray
module.exports = require('../helpers/IsArray');

5
node_modules/es-abstract/2017/IsCallable.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
'use strict';
// http://262.ecma-international.org/5.1/#sec-9.11
module.exports = require('is-callable');

View File

@@ -0,0 +1,9 @@
'use strict';
var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor');
// https://262.ecma-international.org/6.0/#sec-iscompatiblepropertydescriptor
module.exports = function IsCompatiblePropertyDescriptor(Extensible, Desc, Current) {
return ValidateAndApplyPropertyDescriptor(undefined, undefined, Extensible, Desc, Current);
};

25
node_modules/es-abstract/2017/IsConcatSpreadable.js generated vendored Normal file
View File

@@ -0,0 +1,25 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true);
var Get = require('./Get');
var IsArray = require('./IsArray');
var ToBoolean = require('./ToBoolean');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-isconcatspreadable
module.exports = function IsConcatSpreadable(O) {
if (Type(O) !== 'Object') {
return false;
}
if ($isConcatSpreadable) {
var spreadable = Get(O, $isConcatSpreadable);
if (typeof spreadable !== 'undefined') {
return ToBoolean(spreadable);
}
}
return IsArray(O);
};

40
node_modules/es-abstract/2017/IsConstructor.js generated vendored Normal file
View File

@@ -0,0 +1,40 @@
'use strict';
var GetIntrinsic = require('../GetIntrinsic.js');
var $construct = GetIntrinsic('%Reflect.construct%', true);
var DefinePropertyOrThrow = require('./DefinePropertyOrThrow');
try {
DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} });
} catch (e) {
// Accessor properties aren't supported
DefinePropertyOrThrow = null;
}
// https://262.ecma-international.org/6.0/#sec-isconstructor
if (DefinePropertyOrThrow && $construct) {
var isConstructorMarker = {};
var badArrayLike = {};
DefinePropertyOrThrow(badArrayLike, 'length', {
'[[Get]]': function () {
throw isConstructorMarker;
},
'[[Enumerable]]': true
});
module.exports = function IsConstructor(argument) {
try {
// `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`:
$construct(argument, badArrayLike);
} catch (err) {
return err === isConstructorMarker;
}
};
} else {
module.exports = function IsConstructor(argument) {
// unfortunately there's no way to truly check this without try/catch `new argument` in old environments
return typeof argument === 'function' && !!argument.prototype;
};
}

25
node_modules/es-abstract/2017/IsDataDescriptor.js generated vendored Normal file
View File

@@ -0,0 +1,25 @@
'use strict';
var $TypeError = require('es-errors/type');
var hasOwn = require('hasown');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
// https://262.ecma-international.org/5.1/#sec-8.10.2
module.exports = function IsDataDescriptor(Desc) {
if (typeof Desc === 'undefined') {
return false;
}
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: `Desc` must be a Property Descriptor');
}
if (!hasOwn(Desc, '[[Value]]') && !hasOwn(Desc, '[[Writable]]')) {
return false;
}
return true;
};

28
node_modules/es-abstract/2017/IsDetachedBuffer.js generated vendored Normal file
View File

@@ -0,0 +1,28 @@
'use strict';
var $TypeError = require('es-errors/type');
var $byteLength = require('array-buffer-byte-length');
var availableTypedArrays = require('available-typed-arrays')();
var callBound = require('call-bind/callBound');
var isArrayBuffer = require('is-array-buffer');
var isSharedArrayBuffer = require('is-shared-array-buffer');
var $sabByteLength = callBound('SharedArrayBuffer.prototype.byteLength', true);
// https://262.ecma-international.org/8.0/#sec-isdetachedbuffer
module.exports = function IsDetachedBuffer(arrayBuffer) {
var isSAB = isSharedArrayBuffer(arrayBuffer);
if (!isArrayBuffer(arrayBuffer) && !isSAB) {
throw new $TypeError('Assertion failed: `arrayBuffer` must be an Object with an [[ArrayBufferData]] internal slot');
}
if ((isSAB ? $sabByteLength : $byteLength)(arrayBuffer) === 0) {
try {
new global[availableTypedArrays[0]](arrayBuffer); // eslint-disable-line no-new
} catch (error) {
return !!error && error.name === 'TypeError';
}
}
return false;
};

18
node_modules/es-abstract/2017/IsExtensible.js generated vendored Normal file
View File

@@ -0,0 +1,18 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $preventExtensions = GetIntrinsic('%Object.preventExtensions%', true);
var $isExtensible = GetIntrinsic('%Object.isExtensible%', true);
var isPrimitive = require('../helpers/isPrimitive');
// https://262.ecma-international.org/6.0/#sec-isextensible-o
module.exports = $preventExtensions
? function IsExtensible(obj) {
return !isPrimitive(obj) && $isExtensible(obj);
}
: function IsExtensible(obj) {
return !isPrimitive(obj);
};

26
node_modules/es-abstract/2017/IsGenericDescriptor.js generated vendored Normal file
View File

@@ -0,0 +1,26 @@
'use strict';
var $TypeError = require('es-errors/type');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
// https://262.ecma-international.org/6.0/#sec-isgenericdescriptor
module.exports = function IsGenericDescriptor(Desc) {
if (typeof Desc === 'undefined') {
return false;
}
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: `Desc` must be a Property Descriptor');
}
if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) {
return true;
}
return false;
};

9
node_modules/es-abstract/2017/IsInteger.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
'use strict';
var isInteger = require('../helpers/isInteger');
// https://262.ecma-international.org/6.0/#sec-isinteger
module.exports = function IsInteger(argument) {
return isInteger(argument);
};

24
node_modules/es-abstract/2017/IsPromise.js generated vendored Normal file
View File

@@ -0,0 +1,24 @@
'use strict';
var callBound = require('call-bind/callBound');
var $PromiseThen = callBound('Promise.prototype.then', true);
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-ispromise
module.exports = function IsPromise(x) {
if (Type(x) !== 'Object') {
return false;
}
if (!$PromiseThen) { // Promises are not supported
return false;
}
try {
$PromiseThen(x); // throws if not a promise
} catch (e) {
return false;
}
return true;
};

11
node_modules/es-abstract/2017/IsPropertyDescriptor.js generated vendored Normal file
View File

@@ -0,0 +1,11 @@
'use strict';
// TODO, semver-major: delete this
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
// https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type
module.exports = function IsPropertyDescriptor(Desc) {
return isPropertyDescriptor(Desc);
};

7
node_modules/es-abstract/2017/IsPropertyKey.js generated vendored Normal file
View File

@@ -0,0 +1,7 @@
'use strict';
// https://262.ecma-international.org/6.0/#sec-ispropertykey
module.exports = function IsPropertyKey(argument) {
return typeof argument === 'string' || typeof argument === 'symbol';
};

24
node_modules/es-abstract/2017/IsRegExp.js generated vendored Normal file
View File

@@ -0,0 +1,24 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $match = GetIntrinsic('%Symbol.match%', true);
var hasRegExpMatcher = require('is-regex');
var ToBoolean = require('./ToBoolean');
// https://262.ecma-international.org/6.0/#sec-isregexp
module.exports = function IsRegExp(argument) {
if (!argument || typeof argument !== 'object') {
return false;
}
if ($match) {
var isRegExp = argument[$match];
if (typeof isRegExp !== 'undefined') {
return ToBoolean(isRegExp);
}
}
return hasRegExpMatcher(argument);
};

17
node_modules/es-abstract/2017/IsSharedArrayBuffer.js generated vendored Normal file
View File

@@ -0,0 +1,17 @@
'use strict';
var $TypeError = require('es-errors/type');
var Type = require('./Type');
var isSharedArrayBuffer = require('is-shared-array-buffer');
// https://262.ecma-international.org/8.0/#sec-issharedarraybuffer
module.exports = function IsSharedArrayBuffer(obj) {
if (Type(obj) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
return isSharedArrayBuffer(obj);
};

45
node_modules/es-abstract/2017/IsWordChar.js generated vendored Normal file
View File

@@ -0,0 +1,45 @@
'use strict';
var $TypeError = require('es-errors/type');
var callBound = require('call-bind/callBound');
var $indexOf = callBound('String.prototype.indexOf');
var IsArray = require('./IsArray');
var IsInteger = require('./IsInteger');
var WordCharacters = require('./WordCharacters');
var every = require('../helpers/every');
var isChar = function isChar(c) {
return typeof c === 'string';
};
// https://262.ecma-international.org/8.0/#sec-runtime-semantics-iswordchar-abstract-operation
// note: prior to ES2023, this AO erroneously omitted the latter of its arguments.
module.exports = function IsWordChar(e, InputLength, Input, IgnoreCase, Unicode) {
if (!IsInteger(e)) {
throw new $TypeError('Assertion failed: `e` must be an integer');
}
if (!IsInteger(InputLength)) {
throw new $TypeError('Assertion failed: `InputLength` must be an integer');
}
if (!IsArray(Input) || !every(Input, isChar)) {
throw new $TypeError('Assertion failed: `Input` must be a List of characters');
}
if (typeof IgnoreCase !== 'boolean' || typeof Unicode !== 'boolean') {
throw new $TypeError('Assertion failed: `IgnoreCase` and `Unicode` must be booleans');
}
if (e === -1 || e === InputLength) {
return false; // step 1
}
var c = Input[e]; // step 2
var wordChars = WordCharacters(IgnoreCase, Unicode);
return $indexOf(wordChars, c) > -1; // steps 3-4
};

24
node_modules/es-abstract/2017/IterableToList.js generated vendored Normal file
View File

@@ -0,0 +1,24 @@
'use strict';
var callBound = require('call-bind/callBound');
var $arrayPush = callBound('Array.prototype.push');
var GetIterator = require('./GetIterator');
var IteratorStep = require('./IteratorStep');
var IteratorValue = require('./IteratorValue');
// https://262.ecma-international.org/8.0/#sec-iterabletolist
module.exports = function IterableToList(items, method) {
var iterator = GetIterator(items, method);
var values = [];
var next = true;
while (next) {
next = IteratorStep(iterator);
if (next) {
var nextValue = IteratorValue(next);
$arrayPush(values, nextValue);
}
}
return values;
};

49
node_modules/es-abstract/2017/IteratorClose.js generated vendored Normal file
View File

@@ -0,0 +1,49 @@
'use strict';
var $TypeError = require('es-errors/type');
var Call = require('./Call');
var CompletionRecord = require('./CompletionRecord');
var GetMethod = require('./GetMethod');
var IsCallable = require('./IsCallable');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-iteratorclose
module.exports = function IteratorClose(iterator, completion) {
if (Type(iterator) !== 'Object') {
throw new $TypeError('Assertion failed: Type(iterator) is not Object');
}
if (!IsCallable(completion) && !(completion instanceof CompletionRecord)) {
throw new $TypeError('Assertion failed: completion is not a thunk representing a Completion Record, nor a Completion Record instance');
}
var completionThunk = completion instanceof CompletionRecord ? function () { return completion['?'](); } : completion;
var iteratorReturn = GetMethod(iterator, 'return');
if (typeof iteratorReturn === 'undefined') {
return completionThunk();
}
var completionRecord;
try {
var innerResult = Call(iteratorReturn, iterator, []);
} catch (e) {
// if we hit here, then "e" is the innerResult completion that needs re-throwing
// if the completion is of type "throw", this will throw.
completionThunk();
completionThunk = null; // ensure it's not called twice.
// if not, then return the innerResult completion
throw e;
}
completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does
completionThunk = null; // ensure it's not called twice.
if (Type(innerResult) !== 'Object') {
throw new $TypeError('iterator .return must return an object');
}
return completionRecord;
};

16
node_modules/es-abstract/2017/IteratorComplete.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
'use strict';
var $TypeError = require('es-errors/type');
var Get = require('./Get');
var ToBoolean = require('./ToBoolean');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-iteratorcomplete
module.exports = function IteratorComplete(iterResult) {
if (Type(iterResult) !== 'Object') {
throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
}
return ToBoolean(Get(iterResult, 'done'));
};

16
node_modules/es-abstract/2017/IteratorNext.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
'use strict';
var $TypeError = require('es-errors/type');
var Invoke = require('./Invoke');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-iteratornext
module.exports = function IteratorNext(iterator, value) {
var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);
if (Type(result) !== 'Object') {
throw new $TypeError('iterator next must return an object');
}
return result;
};

13
node_modules/es-abstract/2017/IteratorStep.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
'use strict';
var IteratorComplete = require('./IteratorComplete');
var IteratorNext = require('./IteratorNext');
// https://262.ecma-international.org/6.0/#sec-iteratorstep
module.exports = function IteratorStep(iterator) {
var result = IteratorNext(iterator);
var done = IteratorComplete(result);
return done === true ? false : result;
};

16
node_modules/es-abstract/2017/IteratorValue.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
'use strict';
var $TypeError = require('es-errors/type');
var Get = require('./Get');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-iteratorvalue
module.exports = function IteratorValue(iterResult) {
if (Type(iterResult) !== 'Object') {
throw new $TypeError('Assertion failed: Type(iterResult) is not Object');
}
return Get(iterResult, 'value');
};

13
node_modules/es-abstract/2017/MakeDate.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
'use strict';
var $isFinite = require('../helpers/isFinite');
var msPerDay = require('../helpers/timeConstants').msPerDay;
// https://262.ecma-international.org/5.1/#sec-15.9.1.13
module.exports = function MakeDate(day, time) {
if (!$isFinite(day) || !$isFinite(time)) {
return NaN;
}
return (day * msPerDay) + time;
};

33
node_modules/es-abstract/2017/MakeDay.js generated vendored Normal file
View File

@@ -0,0 +1,33 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $DateUTC = GetIntrinsic('%Date.UTC%');
var $isFinite = require('../helpers/isFinite');
var DateFromTime = require('./DateFromTime');
var Day = require('./Day');
var floor = require('./floor');
var modulo = require('./modulo');
var MonthFromTime = require('./MonthFromTime');
var ToInteger = require('./ToInteger');
var YearFromTime = require('./YearFromTime');
// https://262.ecma-international.org/5.1/#sec-15.9.1.12
module.exports = function MakeDay(year, month, date) {
if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) {
return NaN;
}
var y = ToInteger(year);
var m = ToInteger(month);
var dt = ToInteger(date);
var ym = y + floor(m / 12);
var mn = modulo(m, 12);
var t = $DateUTC(ym, mn, 1);
if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) {
return NaN;
}
return Day(t) + dt - 1;
};

23
node_modules/es-abstract/2017/MakeTime.js generated vendored Normal file
View File

@@ -0,0 +1,23 @@
'use strict';
var $isFinite = require('../helpers/isFinite');
var timeConstants = require('../helpers/timeConstants');
var msPerSecond = timeConstants.msPerSecond;
var msPerMinute = timeConstants.msPerMinute;
var msPerHour = timeConstants.msPerHour;
var ToInteger = require('./ToInteger');
// https://262.ecma-international.org/5.1/#sec-15.9.1.11
module.exports = function MakeTime(hour, min, sec, ms) {
if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) {
return NaN;
}
var h = ToInteger(hour);
var m = ToInteger(min);
var s = ToInteger(sec);
var milli = ToInteger(ms);
var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli;
return t;
};

14
node_modules/es-abstract/2017/MinFromTime.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
'use strict';
var floor = require('./floor');
var modulo = require('./modulo');
var timeConstants = require('../helpers/timeConstants');
var msPerMinute = timeConstants.msPerMinute;
var MinutesPerHour = timeConstants.MinutesPerHour;
// https://262.ecma-international.org/5.1/#sec-15.9.1.10
module.exports = function MinFromTime(t) {
return modulo(floor(t / msPerMinute), MinutesPerHour);
};

47
node_modules/es-abstract/2017/MonthFromTime.js generated vendored Normal file
View File

@@ -0,0 +1,47 @@
'use strict';
var DayWithinYear = require('./DayWithinYear');
var InLeapYear = require('./InLeapYear');
// https://262.ecma-international.org/5.1/#sec-15.9.1.4
module.exports = function MonthFromTime(t) {
var day = DayWithinYear(t);
if (0 <= day && day < 31) {
return 0;
}
var leap = InLeapYear(t);
if (31 <= day && day < (59 + leap)) {
return 1;
}
if ((59 + leap) <= day && day < (90 + leap)) {
return 2;
}
if ((90 + leap) <= day && day < (120 + leap)) {
return 3;
}
if ((120 + leap) <= day && day < (151 + leap)) {
return 4;
}
if ((151 + leap) <= day && day < (181 + leap)) {
return 5;
}
if ((181 + leap) <= day && day < (212 + leap)) {
return 6;
}
if ((212 + leap) <= day && day < (243 + leap)) {
return 7;
}
if ((243 + leap) <= day && day < (273 + leap)) {
return 8;
}
if ((273 + leap) <= day && day < (304 + leap)) {
return 9;
}
if ((304 + leap) <= day && day < (334 + leap)) {
return 10;
}
if ((334 + leap) <= day && day < (365 + leap)) {
return 11;
}
};

34
node_modules/es-abstract/2017/NewPromiseCapability.js generated vendored Normal file
View File

@@ -0,0 +1,34 @@
'use strict';
var $TypeError = require('es-errors/type');
var IsCallable = require('./IsCallable');
var IsConstructor = require('./IsConstructor');
// https://262.ecma-international.org/6.0/#sec-newpromisecapability
module.exports = function NewPromiseCapability(C) {
if (!IsConstructor(C)) {
throw new $TypeError('C must be a constructor'); // step 1
}
var resolvingFunctions = { '[[Resolve]]': void undefined, '[[Reject]]': void undefined }; // step 3
var promise = new C(function (resolve, reject) { // steps 4-5
if (typeof resolvingFunctions['[[Resolve]]'] !== 'undefined' || typeof resolvingFunctions['[[Reject]]'] !== 'undefined') {
throw new $TypeError('executor has already been called'); // step 4.a, 4.b
}
resolvingFunctions['[[Resolve]]'] = resolve; // step 4.c
resolvingFunctions['[[Reject]]'] = reject; // step 4.d
}); // step 4-6
if (!IsCallable(resolvingFunctions['[[Resolve]]']) || !IsCallable(resolvingFunctions['[[Reject]]'])) {
throw new $TypeError('executor must provide valid resolve and reject functions'); // steps 7-8
}
return {
'[[Promise]]': promise,
'[[Resolve]]': resolvingFunctions['[[Resolve]]'],
'[[Reject]]': resolvingFunctions['[[Reject]]']
}; // step 9
};

9
node_modules/es-abstract/2017/NormalCompletion.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
'use strict';
var CompletionRecord = require('./CompletionRecord');
// https://262.ecma-international.org/6.0/#sec-normalcompletion
module.exports = function NormalCompletion(value) {
return new CompletionRecord('normal', value);
};

71
node_modules/es-abstract/2017/NumberToRawBytes.js generated vendored Normal file
View File

@@ -0,0 +1,71 @@
'use strict';
var $TypeError = require('es-errors/type');
var hasOwnProperty = require('./HasOwnProperty');
var ToInt16 = require('./ToInt16');
var ToInt32 = require('./ToInt32');
var ToInt8 = require('./ToInt8');
var ToUint16 = require('./ToUint16');
var ToUint32 = require('./ToUint32');
var ToUint8 = require('./ToUint8');
var ToUint8Clamp = require('./ToUint8Clamp');
var valueToFloat32Bytes = require('../helpers/valueToFloat32Bytes');
var valueToFloat64Bytes = require('../helpers/valueToFloat64Bytes');
var integerToNBytes = require('../helpers/integerToNBytes');
var keys = require('object-keys');
// https://262.ecma-international.org/8.0/#table-50
var TypeToSizes = {
__proto__: null,
Int8: 1,
Uint8: 1,
Uint8C: 1,
Int16: 2,
Uint16: 2,
Int32: 4,
Uint32: 4,
Float32: 4,
Float64: 8
};
var TypeToAO = {
__proto__: null,
Int8: ToInt8,
Uint8: ToUint8,
Uint8C: ToUint8Clamp,
Int16: ToInt16,
Uint16: ToUint16,
Int32: ToInt32,
Uint32: ToUint32
};
// https://262.ecma-international.org/8.0/#sec-numbertorawbytes
module.exports = function NumberToRawBytes(type, value, isLittleEndian) {
if (typeof type !== 'string' || !hasOwnProperty(TypeToSizes, type)) {
throw new $TypeError('Assertion failed: `type` must be a TypedArray element type: ' + keys(TypeToSizes));
}
if (typeof value !== 'number') {
throw new $TypeError('Assertion failed: `value` must be a Number');
}
if (typeof isLittleEndian !== 'boolean') {
throw new $TypeError('Assertion failed: `isLittleEndian` must be a Boolean');
}
if (type === 'Float32') { // step 1
return valueToFloat32Bytes(value, isLittleEndian);
} else if (type === 'Float64') { // step 2
return valueToFloat64Bytes(value, isLittleEndian);
} // step 3
var n = TypeToSizes[type]; // step 3.a
var convOp = TypeToAO[type]; // step 3.b
var intValue = convOp(value); // step 3.c
return integerToNBytes(intValue, n, isLittleEndian); // step 3.d, 3.e, 4
};

50
node_modules/es-abstract/2017/ObjectCreate.js generated vendored Normal file
View File

@@ -0,0 +1,50 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $ObjectCreate = GetIntrinsic('%Object.create%', true);
var $TypeError = require('es-errors/type');
var $SyntaxError = require('es-errors/syntax');
var IsArray = require('./IsArray');
var Type = require('./Type');
var forEach = require('../helpers/forEach');
var SLOT = require('internal-slot');
var hasProto = require('has-proto')();
// https://262.ecma-international.org/6.0/#sec-objectcreate
module.exports = function ObjectCreate(proto, internalSlotsList) {
if (proto !== null && Type(proto) !== 'Object') {
throw new $TypeError('Assertion failed: `proto` must be null or an object');
}
var slots = arguments.length < 2 ? [] : internalSlotsList; // step 1
if (arguments.length >= 2 && !IsArray(slots)) {
throw new $TypeError('Assertion failed: `internalSlotsList` must be an Array');
}
var O;
if ($ObjectCreate) {
O = $ObjectCreate(proto);
} else if (hasProto) {
O = { __proto__: proto };
} else {
if (proto === null) {
throw new $SyntaxError('native Object.create support is required to create null objects');
}
var T = function T() {};
T.prototype = proto;
O = new T();
}
if (slots.length > 0) {
forEach(slots, function (slot) {
SLOT.set(O, slot, void undefined);
});
}
return O; // step 6
};

View File

@@ -0,0 +1,38 @@
'use strict';
var callBound = require('call-bind/callBound');
var DefinePropertyOrThrow = require('./DefinePropertyOrThrow');
var Get = require('./Get');
var ToObject = require('./ToObject');
var ToPropertyDescriptor = require('./ToPropertyDescriptor');
var forEach = require('../helpers/forEach');
var getOwnPropertyDescriptor = require('gopd');
var OwnPropertyKeys = require('../helpers/OwnPropertyKeys');
var $push = callBound('Array.prototype.push');
// https://262.ecma-international.org/6.0/#sec-objectdefineproperties
module.exports = function ObjectDefineProperties(O, Properties) {
var props = ToObject(Properties); // step 1
var keys = OwnPropertyKeys(props); // step 2
var descriptors = []; // step 3
forEach(keys, function (nextKey) { // step 4
var propDesc = ToPropertyDescriptor(getOwnPropertyDescriptor(props, nextKey)); // step 4.a
if (typeof propDesc !== 'undefined' && propDesc['[[Enumerable]]']) { // step 4.b
var descObj = Get(props, nextKey); // step 4.b.i
var desc = ToPropertyDescriptor(descObj); // step 4.b.ii
$push(descriptors, [nextKey, desc]); // step 4.b.iii
}
});
forEach(descriptors, function (pair) { // step 5
var P = pair[0]; // step 5.a
var desc = pair[1]; // step 5.b
DefinePropertyOrThrow(O, P, desc); // step 5.c
});
return O; // step 6
};

View File

@@ -0,0 +1,20 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = require('es-errors/type');
var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor');
var IsArray = require('./IsArray');
var ObjectCreate = require('./ObjectCreate');
// https://262.ecma-international.org/6.0/#sec-ordinarycreatefromconstructor
module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) {
GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic
var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto);
var slots = arguments.length < 3 ? [] : arguments[2];
if (!IsArray(slots)) {
throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List');
}
return ObjectCreate(proto, slots);
};

View File

@@ -0,0 +1,54 @@
'use strict';
var $gOPD = require('gopd');
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var IsExtensible = require('./IsExtensible');
var IsPropertyKey = require('./IsPropertyKey');
var ToPropertyDescriptor = require('./ToPropertyDescriptor');
var SameValue = require('./SameValue');
var Type = require('./Type');
var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor');
// https://262.ecma-international.org/6.0/#sec-ordinarydefineownproperty
module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: O must be an Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: P must be a Property Key');
}
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: Desc must be a Property Descriptor');
}
if (!$gOPD) {
// ES3/IE 8 fallback
if (IsAccessorDescriptor(Desc)) {
throw new $SyntaxError('This environment does not support accessor property descriptors.');
}
var creatingNormalDataProperty = !(P in O)
&& Desc['[[Writable]]']
&& Desc['[[Enumerable]]']
&& Desc['[[Configurable]]']
&& '[[Value]]' in Desc;
var settingExistingDataProperty = (P in O)
&& (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]'])
&& (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]'])
&& (!('[[Writable]]' in Desc) || Desc['[[Writable]]'])
&& '[[Value]]' in Desc;
if (creatingNormalDataProperty || settingExistingDataProperty) {
O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign
return SameValue(O[P], Desc['[[Value]]']);
}
throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties');
}
var desc = $gOPD(O, P);
var current = desc && ToPropertyDescriptor(desc);
var extensible = IsExtensible(O);
return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current);
};

View File

@@ -0,0 +1,42 @@
'use strict';
var $gOPD = require('gopd');
var $TypeError = require('es-errors/type');
var callBound = require('call-bind/callBound');
var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
var hasOwn = require('hasown');
var IsArray = require('./IsArray');
var IsPropertyKey = require('./IsPropertyKey');
var IsRegExp = require('./IsRegExp');
var ToPropertyDescriptor = require('./ToPropertyDescriptor');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-ordinarygetownproperty
module.exports = function OrdinaryGetOwnProperty(O, P) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: O must be an Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: P must be a Property Key');
}
if (!hasOwn(O, P)) {
return void 0;
}
if (!$gOPD) {
// ES3 / IE 8 fallback
var arrayLength = IsArray(O) && P === 'length';
var regexLastIndex = IsRegExp(O) && P === 'lastIndex';
return {
'[[Configurable]]': !(arrayLength || regexLastIndex),
'[[Enumerable]]': $isEnumerable(O, P),
'[[Value]]': O[P],
'[[Writable]]': true
};
}
return ToPropertyDescriptor($gOPD(O, P));
};

View File

@@ -0,0 +1,19 @@
'use strict';
var $TypeError = require('es-errors/type');
var $getProto = require('../helpers/getProto');
var Type = require('./Type');
// https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof
module.exports = function OrdinaryGetPrototypeOf(O) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: O must be an Object');
}
if (!$getProto) {
throw new $TypeError('This environment does not support fetching prototypes.');
}
return $getProto(O);
};

23
node_modules/es-abstract/2017/OrdinaryHasInstance.js generated vendored Normal file
View File

@@ -0,0 +1,23 @@
'use strict';
var $TypeError = require('es-errors/type');
var Get = require('./Get');
var IsCallable = require('./IsCallable');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-ordinaryhasinstance
module.exports = function OrdinaryHasInstance(C, O) {
if (!IsCallable(C)) {
return false;
}
if (Type(O) !== 'Object') {
return false;
}
var P = Get(C, 'prototype');
if (Type(P) !== 'Object') {
throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.');
}
return O instanceof C;
};

18
node_modules/es-abstract/2017/OrdinaryHasProperty.js generated vendored Normal file
View File

@@ -0,0 +1,18 @@
'use strict';
var $TypeError = require('es-errors/type');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-ordinaryhasproperty
module.exports = function OrdinaryHasProperty(O, P) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: P must be a Property Key');
}
return P in O;
};

View File

@@ -0,0 +1,50 @@
'use strict';
var $TypeError = require('es-errors/type');
var $setProto = require('../helpers/setProto');
var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf');
// https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof
module.exports = function OrdinarySetPrototypeOf(O, V) {
if (typeof V !== 'object') {
throw new $TypeError('Assertion failed: V must be Object or Null');
}
/*
var extensible = IsExtensible(O);
var current = OrdinaryGetPrototypeOf(O);
if (SameValue(V, current)) {
return true;
}
if (!extensible) {
return false;
}
*/
try {
$setProto(O, V);
} catch (e) {
return false;
}
return OrdinaryGetPrototypeOf(O) === V;
/*
var p = V;
var done = false;
while (!done) {
if (p === null) {
done = true;
} else if (SameValue(p, O)) {
return false;
} else {
if (wat) {
done = true;
} else {
p = p.[[Prototype]];
}
}
}
O.[[Prototype]] = V;
return true;
*/
};

36
node_modules/es-abstract/2017/OrdinaryToPrimitive.js generated vendored Normal file
View File

@@ -0,0 +1,36 @@
'use strict';
var $TypeError = require('es-errors/type');
var Call = require('./Call');
var Get = require('./Get');
var IsCallable = require('./IsCallable');
var Type = require('./Type');
var inspect = require('object-inspect');
// https://262.ecma-international.org/8.0/#sec-ordinarytoprimitive
module.exports = function OrdinaryToPrimitive(O, hint) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (/* typeof hint !== 'string' || */ hint !== 'string' && hint !== 'number') {
throw new $TypeError('Assertion failed: `hint` must be "string" or "number"');
}
var methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];
for (var i = 0; i < methodNames.length; i += 1) {
var name = methodNames[i];
var method = Get(O, name);
if (IsCallable(method)) {
var result = Call(method, O);
if (Type(result) !== 'Object') {
return result;
}
}
}
throw new $TypeError('No primitive value for ' + inspect(O));
};

48
node_modules/es-abstract/2017/QuoteJSONString.js generated vendored Normal file
View File

@@ -0,0 +1,48 @@
'use strict';
var $TypeError = require('es-errors/type');
var callBound = require('call-bind/callBound');
var forEach = require('../helpers/forEach');
var $charCodeAt = callBound('String.prototype.charCodeAt');
var $numberToString = callBound('Number.prototype.toString');
var $toLowerCase = callBound('String.prototype.toLowerCase');
var $strSlice = callBound('String.prototype.slice');
var $strSplit = callBound('String.prototype.split');
// https://262.ecma-international.org/6.0/#sec-quotejsonstring
var escapes = {
'\u0008': 'b',
'\u000C': 'f',
'\u000A': 'n',
'\u000D': 'r',
'\u0009': 't'
};
module.exports = function QuoteJSONString(value) {
if (typeof value !== 'string') {
throw new $TypeError('Assertion failed: `value` must be a String');
}
var product = '"';
if (value) {
forEach($strSplit(value), function (C) {
if (C === '"' || C === '\\') {
product += '\u005C' + C;
} else if (C === '\u0008' || C === '\u000C' || C === '\u000A' || C === '\u000D' || C === '\u0009') {
var abbrev = escapes[C];
product += '\u005C' + abbrev;
} else {
var cCharCode = $charCodeAt(C, 0);
if (cCharCode < 0x20) {
product += '\u005Cu' + $toLowerCase($strSlice('0000' + $numberToString(cCharCode, 16), -4));
} else {
product += C;
}
}
});
}
product += '"';
return product;
};

72
node_modules/es-abstract/2017/RawBytesToNumber.js generated vendored Normal file
View File

@@ -0,0 +1,72 @@
'use strict';
var callBound = require('call-bind/callBound');
var $RangeError = require('es-errors/range');
var $TypeError = require('es-errors/type');
var $charAt = callBound('String.prototype.charAt');
var $reverse = callBound('Array.prototype.reverse');
var $slice = callBound('Array.prototype.slice');
var hasOwnProperty = require('./HasOwnProperty');
var IsArray = require('./IsArray');
var bytesAsFloat32 = require('../helpers/bytesAsFloat32');
var bytesAsFloat64 = require('../helpers/bytesAsFloat64');
var bytesAsInteger = require('../helpers/bytesAsInteger');
var every = require('../helpers/every');
var isByteValue = require('../helpers/isByteValue');
var keys = require('object-keys');
// https://262.ecma-international.org/8.0/#table-50
var TypeToSizes = {
__proto__: null,
Int8: 1,
Uint8: 1,
Uint8C: 1,
Int16: 2,
Uint16: 2,
Int32: 4,
Uint32: 4,
Float32: 4,
Float64: 8
};
// https://262.ecma-international.org/8.0/#sec-rawbytestonumber
module.exports = function RawBytesToNumber(type, rawBytes, isLittleEndian) {
if (typeof type !== 'string' || !hasOwnProperty(TypeToSizes, type)) {
throw new $TypeError('Assertion failed: `type` must be a TypedArray element type: ' + keys(TypeToSizes));
}
if (!IsArray(rawBytes) || !every(rawBytes, isByteValue)) {
throw new $TypeError('Assertion failed: `rawBytes` must be an Array of bytes');
}
if (typeof isLittleEndian !== 'boolean') {
throw new $TypeError('Assertion failed: `isLittleEndian` must be a Boolean');
}
var elementSize = TypeToSizes[type]; // step 1
if (rawBytes.length !== elementSize) {
// this assertion is not in the spec, but it'd be an editorial error if it were ever violated
throw new $RangeError('Assertion failed: `rawBytes` must have a length of ' + elementSize + ' for type ' + type);
}
// eslint-disable-next-line no-param-reassign
rawBytes = $slice(rawBytes, 0, elementSize);
if (!isLittleEndian) {
$reverse(rawBytes); // step 2
}
if (type === 'Float32') { // step 3
return bytesAsFloat32(rawBytes);
}
if (type === 'Float64') { // step 4
return bytesAsFloat64(rawBytes);
}
return bytesAsInteger(rawBytes, elementSize, $charAt(type, 0) === 'U', false);
};

21
node_modules/es-abstract/2017/RegExpCreate.js generated vendored Normal file
View File

@@ -0,0 +1,21 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $RegExp = GetIntrinsic('%RegExp%');
// var RegExpAlloc = require('./RegExpAlloc');
// var RegExpInitialize = require('./RegExpInitialize');
var ToString = require('./ToString');
// https://262.ecma-international.org/6.0/#sec-regexpcreate
module.exports = function RegExpCreate(P, F) {
// var obj = RegExpAlloc($RegExp);
// return RegExpInitialize(obj, P, F);
// covers spec mechanics; bypass regex brand checking
var pattern = typeof P === 'undefined' ? '' : ToString(P);
var flags = typeof F === 'undefined' ? '' : ToString(F);
return new $RegExp(pattern, flags);
};

30
node_modules/es-abstract/2017/RegExpExec.js generated vendored Normal file
View File

@@ -0,0 +1,30 @@
'use strict';
var $TypeError = require('es-errors/type');
var regexExec = require('call-bind/callBound')('RegExp.prototype.exec');
var Call = require('./Call');
var Get = require('./Get');
var IsCallable = require('./IsCallable');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-regexpexec
module.exports = function RegExpExec(R, S) {
if (Type(R) !== 'Object') {
throw new $TypeError('Assertion failed: `R` must be an Object');
}
if (typeof S !== 'string') {
throw new $TypeError('Assertion failed: `S` must be a String');
}
var exec = Get(R, 'exec');
if (IsCallable(exec)) {
var result = Call(exec, R, [S]);
if (typeof result === 'object') {
return result;
}
throw new $TypeError('"exec" method must return `null` or an Object');
}
return regexExec(R, S);
};

View File

@@ -0,0 +1,3 @@
'use strict';
module.exports = require('es-object-atoms/RequireObjectCoercible');

13
node_modules/es-abstract/2017/SameValue.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
'use strict';
var $isNaN = require('../helpers/isNaN');
// http://262.ecma-international.org/5.1/#sec-9.12
module.exports = function SameValue(x, y) {
if (x === y) { // 0 === -0, but they are not identical.
if (x === 0) { return 1 / x === 1 / y; }
return true;
}
return $isNaN(x) && $isNaN(y);
};

14
node_modules/es-abstract/2017/SameValueNonNumber.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
'use strict';
var $TypeError = require('es-errors/type');
var SameValue = require('./SameValue');
// https://262.ecma-international.org/7.0/#sec-samevaluenonnumber
module.exports = function SameValueNonNumber(x, y) {
if (typeof x === 'number' || typeof x !== typeof y) {
throw new $TypeError('SameValueNonNumber requires two non-number values of the same type.');
}
return SameValue(x, y);
};

9
node_modules/es-abstract/2017/SameValueZero.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
'use strict';
var $isNaN = require('../helpers/isNaN');
// https://262.ecma-international.org/6.0/#sec-samevaluezero
module.exports = function SameValueZero(x, y) {
return (x === y) || ($isNaN(x) && $isNaN(y));
};

14
node_modules/es-abstract/2017/SecFromTime.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
'use strict';
var floor = require('./floor');
var modulo = require('./modulo');
var timeConstants = require('../helpers/timeConstants');
var msPerSecond = timeConstants.msPerSecond;
var SecondsPerMinute = timeConstants.SecondsPerMinute;
// https://262.ecma-international.org/5.1/#sec-15.9.1.10
module.exports = function SecFromTime(t) {
return modulo(floor(t / msPerSecond), SecondsPerMinute);
};

45
node_modules/es-abstract/2017/Set.js generated vendored Normal file
View File

@@ -0,0 +1,45 @@
'use strict';
var $TypeError = require('es-errors/type');
var IsPropertyKey = require('./IsPropertyKey');
var SameValue = require('./SameValue');
var Type = require('./Type');
// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated
var noThrowOnStrictViolation = (function () {
try {
delete [].length;
return true;
} catch (e) {
return false;
}
}());
// https://262.ecma-international.org/6.0/#sec-set-o-p-v-throw
module.exports = function Set(O, P, V, Throw) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: `O` must be an Object');
}
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: `P` must be a Property Key');
}
if (typeof Throw !== 'boolean') {
throw new $TypeError('Assertion failed: `Throw` must be a Boolean');
}
if (Throw) {
O[P] = V; // eslint-disable-line no-param-reassign
if (noThrowOnStrictViolation && !SameValue(O[P], V)) {
throw new $TypeError('Attempted to assign to readonly property.');
}
return true;
}
try {
O[P] = V; // eslint-disable-line no-param-reassign
return noThrowOnStrictViolation ? SameValue(O[P], V) : true;
} catch (e) {
return false;
}
};

40
node_modules/es-abstract/2017/SetFunctionName.js generated vendored Normal file
View File

@@ -0,0 +1,40 @@
'use strict';
var hasOwn = require('hasown');
var $TypeError = require('es-errors/type');
var getSymbolDescription = require('get-symbol-description');
var DefinePropertyOrThrow = require('./DefinePropertyOrThrow');
var IsExtensible = require('./IsExtensible');
// https://262.ecma-international.org/6.0/#sec-setfunctionname
module.exports = function SetFunctionName(F, name) {
if (typeof F !== 'function') {
throw new $TypeError('Assertion failed: `F` must be a function');
}
if (!IsExtensible(F) || hasOwn(F, 'name')) {
throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property');
}
if (typeof name !== 'symbol' && typeof name !== 'string') {
throw new $TypeError('Assertion failed: `name` must be a Symbol or a String');
}
if (typeof name === 'symbol') {
var description = getSymbolDescription(name);
// eslint-disable-next-line no-param-reassign
name = typeof description === 'undefined' ? '' : '[' + description + ']';
}
if (arguments.length > 2) {
var prefix = arguments[2];
// eslint-disable-next-line no-param-reassign
name = prefix + ' ' + name;
}
return DefinePropertyOrThrow(F, 'name', {
'[[Value]]': name,
'[[Writable]]': false,
'[[Enumerable]]': false,
'[[Configurable]]': true
});
};

57
node_modules/es-abstract/2017/SetIntegrityLevel.js generated vendored Normal file
View File

@@ -0,0 +1,57 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var $preventExtensions = GetIntrinsic('%Object.preventExtensions%', true);
var $gOPD = require('gopd');
var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true);
var forEach = require('../helpers/forEach');
var DefinePropertyOrThrow = require('./DefinePropertyOrThrow');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var ToPropertyDescriptor = require('./ToPropertyDescriptor');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-setintegritylevel
module.exports = function SetIntegrityLevel(O, level) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (level !== 'sealed' && level !== 'frozen') {
throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`');
}
if (!$preventExtensions) {
throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support');
}
var status = $preventExtensions(O);
if (!status) {
return false;
}
if (!$gOPN) {
throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support');
}
var theKeys = $gOPN(O);
if (level === 'sealed') {
forEach(theKeys, function (k) {
DefinePropertyOrThrow(O, k, { configurable: false });
});
} else if (level === 'frozen') {
forEach(theKeys, function (k) {
var currentDesc = $gOPD(O, k);
if (typeof currentDesc !== 'undefined') {
var desc;
if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) {
desc = { configurable: false };
} else {
desc = { configurable: false, writable: false };
}
DefinePropertyOrThrow(O, k, desc);
}
});
}
return true;
};

110
node_modules/es-abstract/2017/SetValueInBuffer.js generated vendored Normal file
View File

@@ -0,0 +1,110 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = require('es-errors/type');
var $Uint8Array = GetIntrinsic('%Uint8Array%', true);
var isInteger = require('../helpers/isInteger');
var IsDetachedBuffer = require('./IsDetachedBuffer');
var ToInt16 = require('./ToInt16');
var ToInt32 = require('./ToInt32');
var ToInt8 = require('./ToInt8');
var ToUint16 = require('./ToUint16');
var ToUint32 = require('./ToUint32');
var ToUint8 = require('./ToUint8');
var ToUint8Clamp = require('./ToUint8Clamp');
var isArrayBuffer = require('is-array-buffer');
var hasOwn = require('hasown');
var tableTAO = require('./tables/typed-array-objects');
var TypeToAO = {
__proto__: null,
Int8: ToInt8,
Uint8: ToUint8,
Uint8C: ToUint8Clamp,
Int16: ToInt16,
Uint16: ToUint16,
Int32: ToInt32,
Uint32: ToUint32
};
var defaultEndianness = require('../helpers/defaultEndianness');
var forEach = require('../helpers/forEach');
var integerToNBytes = require('../helpers/integerToNBytes');
var valueToFloat32Bytes = require('../helpers/valueToFloat32Bytes');
var valueToFloat64Bytes = require('../helpers/valueToFloat64Bytes');
// https://262.ecma-international.org/6.0/#sec-setvalueinbuffer
module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value) {
if (!isArrayBuffer(arrayBuffer)) {
throw new $TypeError('Assertion failed: `arrayBuffer` must be an ArrayBuffer');
}
if (!isInteger(byteIndex)) {
throw new $TypeError('Assertion failed: `byteIndex` must be an integer');
}
if (typeof type !== 'string' || !hasOwn(tableTAO.size, '$' + type)) {
throw new $TypeError('Assertion failed: `type` must be a Typed Array Element Type');
}
if (typeof value !== 'number') {
throw new $TypeError('Assertion failed: `value` must be a number');
}
if (arguments.length > 4 && typeof arguments[4] !== 'boolean') {
throw new $TypeError('Assertion failed: `isLittleEndian` must be a boolean, if present');
}
if (IsDetachedBuffer(arrayBuffer)) {
throw new $TypeError('Assertion failed: ArrayBuffer is detached'); // step 1
}
// 2. Assert: There are sufficient bytes in arrayBuffer starting at byteIndex to represent a value of type.
if (byteIndex < 0) {
throw new $TypeError('Assertion failed: `byteIndex` must be non-negative'); // step 3
}
// 4. Assert: Type(value) is Number.
// 5. Let block be arrayBuffers [[ArrayBufferData]] internal slot.
// 6. Assert: block is not undefined.
var elementSize = tableTAO.size['$' + type]; // step 7
if (!elementSize) {
throw new $TypeError('Assertion failed: `type` must be one of "Int8", "Uint8", "Uint8C", "Int16", "Uint16", "Int32", "Uint32", "Float32", or "Float64"');
}
// 8. If isLittleEndian is not present, set isLittleEndian to either true or false. The choice is implementation dependent and should be the alternative that is most efficient for the implementation. An implementation must use the same value each time this step is executed and the same value must be used for the corresponding step in the GetValueFromBuffer abstract operation.
var isLittleEndian = arguments.length > 4 ? arguments[4] : defaultEndianness === 'little'; // step 8
var rawBytes;
if (type === 'Float32') { // step 1
rawBytes = valueToFloat32Bytes(value, isLittleEndian);
} else if (type === 'Float64') { // step 2
rawBytes = valueToFloat64Bytes(value, isLittleEndian);
} else {
var n = elementSize; // step 3.a
var convOp = TypeToAO[type]; // step 3.b
var intValue = convOp(value); // step 3.c
rawBytes = integerToNBytes(intValue, n, isLittleEndian); // step 3.d, 3.e, 4
}
// 12. Store the individual bytes of rawBytes into block, in order, starting at block[byteIndex].
var arr = new $Uint8Array(arrayBuffer, byteIndex, elementSize);
forEach(rawBytes, function (rawByte, i) {
arr[i] = rawByte;
});
// 13. Return NormalCompletion(undefined).
};

Some files were not shown because too many files have changed in this diff Show More