diff --git a/node_modules/es-abstract/2023/MinFromTime.js b/node_modules/es-abstract/2023/MinFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..a0c631d4cc56cb21e15712def6008d5623edd0f9 --- /dev/null +++ b/node_modules/es-abstract/2023/MinFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/2023/MonthFromTime.js b/node_modules/es-abstract/2023/MonthFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..e551ee2be6da5cc49c7da94be78095c0803c53d9 --- /dev/null +++ b/node_modules/es-abstract/2023/MonthFromTime.js @@ -0,0 +1,51 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); + +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; + } + + throw new $RangeError('Assertion failed: `day` is out of range'); +}; diff --git a/node_modules/es-abstract/2023/NewPromiseCapability.js b/node_modules/es-abstract/2023/NewPromiseCapability.js new file mode 100644 index 0000000000000000000000000000000000000000..893266fe9f8da7b032d6fc835750a07c30086179 --- /dev/null +++ b/node_modules/es-abstract/2023/NewPromiseCapability.js @@ -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 +}; diff --git a/node_modules/es-abstract/2023/NormalCompletion.js b/node_modules/es-abstract/2023/NormalCompletion.js new file mode 100644 index 0000000000000000000000000000000000000000..1e429dd65cfaded0bd09155819605198a45c628d --- /dev/null +++ b/node_modules/es-abstract/2023/NormalCompletion.js @@ -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); +}; diff --git a/node_modules/es-abstract/2023/Number/add.js b/node_modules/es-abstract/2023/Number/add.js new file mode 100644 index 0000000000000000000000000000000000000000..eead1f19fec68bed3c141340b4318116f7e9ec06 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/add.js @@ -0,0 +1,31 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isFinite = require('math-intrinsics/isFinite'); +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-add + +module.exports = function NumberAdd(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + if (isNaN(x) || isNaN(y) || (x === Infinity && y === -Infinity) || (x === -Infinity && y === Infinity)) { + return NaN; + } + + if (!isFinite(x)) { + return x; + } + if (!isFinite(y)) { + return y; + } + + if (x === y && x === 0) { // both zeroes + return Infinity / x === -Infinity && Infinity / y === -Infinity ? -0 : +0; + } + + // shortcut for the actual spec mechanics + return x + y; +}; diff --git a/node_modules/es-abstract/2023/Number/bitwiseAND.js b/node_modules/es-abstract/2023/Number/bitwiseAND.js new file mode 100644 index 0000000000000000000000000000000000000000..d85d0f6f6a657b4afcbb3abd8c655d9e5a247400 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/bitwiseAND.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var NumberBitwiseOp = require('../NumberBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseAND + +module.exports = function NumberBitwiseAND(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + return NumberBitwiseOp('&', x, y); +}; diff --git a/node_modules/es-abstract/2023/Number/bitwiseNOT.js b/node_modules/es-abstract/2023/Number/bitwiseNOT.js new file mode 100644 index 0000000000000000000000000000000000000000..7e3035e879df0d334dab28b00d3f07c1583c0429 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/bitwiseNOT.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('../ToInt32'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseNOT + +module.exports = function NumberBitwiseNOT(x) { + if (typeof x !== 'number') { + throw new $TypeError('Assertion failed: `x` argument must be a Number'); + } + var oldValue = ToInt32(x); + // Return the result of applying the bitwise operator op to lnum and rnum. The result is a signed 32-bit integer. + return ~oldValue; +}; diff --git a/node_modules/es-abstract/2023/Number/bitwiseOR.js b/node_modules/es-abstract/2023/Number/bitwiseOR.js new file mode 100644 index 0000000000000000000000000000000000000000..2930a61222f9cc53559ffceac2865b5fdabfeea4 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/bitwiseOR.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var NumberBitwiseOp = require('../NumberBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseOR + +module.exports = function NumberBitwiseOR(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + return NumberBitwiseOp('|', x, y); +}; diff --git a/node_modules/es-abstract/2023/Number/bitwiseXOR.js b/node_modules/es-abstract/2023/Number/bitwiseXOR.js new file mode 100644 index 0000000000000000000000000000000000000000..fab4baae216a9c35ef1eb20fc941aca98028cb21 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/bitwiseXOR.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var NumberBitwiseOp = require('../NumberBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseXOR + +module.exports = function NumberBitwiseXOR(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + return NumberBitwiseOp('^', x, y); +}; diff --git a/node_modules/es-abstract/2023/Number/divide.js b/node_modules/es-abstract/2023/Number/divide.js new file mode 100644 index 0000000000000000000000000000000000000000..12ec011c993217453e4633d626e47d3baf134beb --- /dev/null +++ b/node_modules/es-abstract/2023/Number/divide.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isFinite = require('math-intrinsics/isFinite'); +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-divide + +module.exports = function NumberDivide(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + if (isNaN(x) || isNaN(y) || (!isFinite(x) && !isFinite(y))) { + return NaN; + } + // shortcut for the actual spec mechanics + return x / y; +}; diff --git a/node_modules/es-abstract/2023/Number/equal.js b/node_modules/es-abstract/2023/Number/equal.js new file mode 100644 index 0000000000000000000000000000000000000000..ebd9f7463a062a0b95d80a80e4ef2cbd8efc648e --- /dev/null +++ b/node_modules/es-abstract/2023/Number/equal.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-equal + +module.exports = function NumberEqual(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + if (isNaN(x) || isNaN(y)) { + return false; + } + // shortcut for the actual spec mechanics + return x === y; +}; diff --git a/node_modules/es-abstract/2023/Number/exponentiate.js b/node_modules/es-abstract/2023/Number/exponentiate.js new file mode 100644 index 0000000000000000000000000000000000000000..37812d85bccd0b0438c66595e1e6d5aef4c94bc7 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/exponentiate.js @@ -0,0 +1,74 @@ +'use strict'; + +// var isNegativeZero = require('math-intrinsics/isNegativeZero'); +var $pow = require('math-intrinsics/pow'); + +var $TypeError = require('es-errors/type'); + +/* +var abs = require('math-intrinsics/abs'); +var isFinite = require('math-intrinsics/isFinite'); +var isNaN = require('math-intrinsics/isNaN'); + +var IsInteger = require('math-intrinsics/isInteger'); +*/ + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-exponentiate + +/* eslint max-lines-per-function: 0, max-statements: 0 */ + +module.exports = function NumberExponentiate(base, exponent) { + if (typeof base !== 'number' || typeof exponent !== 'number') { + throw new $TypeError('Assertion failed: `base` and `exponent` arguments must be Numbers'); + } + return $pow(base, exponent); + /* + if (isNaN(exponent)) { + return NaN; + } + if (exponent === 0) { + return 1; + } + if (isNaN(base)) { + return NaN; + } + var aB = abs(base); + if (aB > 1 && exponent === Infinity) { + return Infinity; + } + if (aB > 1 && exponent === -Infinity) { + return 0; + } + if (aB === 1 && (exponent === Infinity || exponent === -Infinity)) { + return NaN; + } + if (aB < 1 && exponent === Infinity) { + return +0; + } + if (aB < 1 && exponent === -Infinity) { + return Infinity; + } + if (base === Infinity) { + return exponent > 0 ? Infinity : 0; + } + if (base === -Infinity) { + var isOdd = true; + if (exponent > 0) { + return isOdd ? -Infinity : Infinity; + } + return isOdd ? -0 : 0; + } + if (exponent > 0) { + return isNegativeZero(base) ? Infinity : 0; + } + if (isNegativeZero(base)) { + if (exponent > 0) { + return isOdd ? -0 : 0; + } + return isOdd ? -Infinity : Infinity; + } + if (base < 0 && isFinite(base) && isFinite(exponent) && !IsInteger(exponent)) { + return NaN; + } + */ +}; diff --git a/node_modules/es-abstract/2023/Number/index.js b/node_modules/es-abstract/2023/Number/index.js new file mode 100644 index 0000000000000000000000000000000000000000..63ec52da69e285d605f9f5db2ffe69ed4af591f2 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/index.js @@ -0,0 +1,43 @@ +'use strict'; + +var add = require('./add'); +var bitwiseAND = require('./bitwiseAND'); +var bitwiseNOT = require('./bitwiseNOT'); +var bitwiseOR = require('./bitwiseOR'); +var bitwiseXOR = require('./bitwiseXOR'); +var divide = require('./divide'); +var equal = require('./equal'); +var exponentiate = require('./exponentiate'); +var leftShift = require('./leftShift'); +var lessThan = require('./lessThan'); +var multiply = require('./multiply'); +var remainder = require('./remainder'); +var sameValue = require('./sameValue'); +var sameValueZero = require('./sameValueZero'); +var signedRightShift = require('./signedRightShift'); +var subtract = require('./subtract'); +var toString = require('./toString'); +var unaryMinus = require('./unaryMinus'); +var unsignedRightShift = require('./unsignedRightShift'); + +module.exports = { + add: add, + bitwiseAND: bitwiseAND, + bitwiseNOT: bitwiseNOT, + bitwiseOR: bitwiseOR, + bitwiseXOR: bitwiseXOR, + divide: divide, + equal: equal, + exponentiate: exponentiate, + leftShift: leftShift, + lessThan: lessThan, + multiply: multiply, + remainder: remainder, + sameValue: sameValue, + sameValueZero: sameValueZero, + signedRightShift: signedRightShift, + subtract: subtract, + toString: toString, + unaryMinus: unaryMinus, + unsignedRightShift: unsignedRightShift +}; diff --git a/node_modules/es-abstract/2023/Number/leftShift.js b/node_modules/es-abstract/2023/Number/leftShift.js new file mode 100644 index 0000000000000000000000000000000000000000..bbaffae5d3e3bca167fbf5e501f43beece5b2e7f --- /dev/null +++ b/node_modules/es-abstract/2023/Number/leftShift.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('../ToInt32'); +var ToUint32 = require('../ToUint32'); +var modulo = require('../modulo'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-leftShift + +module.exports = function NumberLeftShift(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + var lnum = ToInt32(x); + var rnum = ToUint32(y); + + var shiftCount = modulo(rnum, 32); + + return lnum << shiftCount; +}; diff --git a/node_modules/es-abstract/2023/Number/lessThan.js b/node_modules/es-abstract/2023/Number/lessThan.js new file mode 100644 index 0000000000000000000000000000000000000000..538174306dd342a14dc82f25f2b8e5a56c9e6a32 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/lessThan.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-lessThan + +module.exports = function NumberLessThan(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + // If x is NaN, return undefined. + // If y is NaN, return undefined. + if (isNaN(x) || isNaN(y)) { + return void undefined; + } + + // shortcut for the actual spec mechanics + return x < y; +}; diff --git a/node_modules/es-abstract/2023/Number/multiply.js b/node_modules/es-abstract/2023/Number/multiply.js new file mode 100644 index 0000000000000000000000000000000000000000..318787cbab9b472dca1f47e18c0faec44c4da1c3 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/multiply.js @@ -0,0 +1,29 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-multiply + +module.exports = function NumberMultiply(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + if (isNaN(x) || isNaN(y) || (x === 0 && !isFinite(y)) || (!isFinite(x) && y === 0)) { + return NaN; + } + if (!isFinite(x) && !isFinite(y)) { + return x === y ? Infinity : -Infinity; + } + if (!isFinite(x) && y !== 0) { + return x > 0 ? Infinity : -Infinity; + } + if (!isFinite(y) && x !== 0) { + return y > 0 ? Infinity : -Infinity; + } + + // shortcut for the actual spec mechanics + return x * y; +}; diff --git a/node_modules/es-abstract/2023/Number/remainder.js b/node_modules/es-abstract/2023/Number/remainder.js new file mode 100644 index 0000000000000000000000000000000000000000..9390586ae1b15382f226bd8c2b18bacd8a8898b4 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/remainder.js @@ -0,0 +1,38 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isNaN = require('math-intrinsics/isNaN'); +var isFinite = require('math-intrinsics/isFinite'); + +var truncate = require('../truncate'); + +// https://262.ecma-international.org/14.0/#sec-numeric-types-number-remainder + +module.exports = function NumberRemainder(n, d) { + if (typeof n !== 'number' || typeof d !== 'number') { + throw new $TypeError('Assertion failed: `n` and `d` arguments must be Numbers'); + } + + // If either operand is NaN, the result is NaN. + // If the dividend is an infinity, or the divisor is a zero, or both, the result is NaN. + if (isNaN(n) || isNaN(d) || !isFinite(n) || d === 0) { + return NaN; + } + + // If the dividend is finite and the divisor is an infinity, the result equals the dividend. + // If the dividend is a zero and the divisor is nonzero and finite, the result is the same as the dividend. + if (!isFinite(d) || n === 0) { + return n; + } + + if (!isFinite(n) || !isFinite(d) || n === 0 || d === 0) { + throw new $TypeError('Assertion failed: `n` and `d` arguments must be finite and nonzero'); + } + var quotient = n / d; + var q = truncate(quotient); + var r = n - (d * q); + if (r === 0 && n < 0) { + return -0; + } + return r; +}; diff --git a/node_modules/es-abstract/2023/Number/sameValue.js b/node_modules/es-abstract/2023/Number/sameValue.js new file mode 100644 index 0000000000000000000000000000000000000000..f7c6f78a4afc352f3ead59cd4ffc866dadc74130 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/sameValue.js @@ -0,0 +1,18 @@ +'use strict'; + +var isNegativeZero = require('math-intrinsics/isNegativeZero'); +var $TypeError = require('es-errors/type'); + +var NumberSameValueZero = require('./sameValueZero'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-sameValue + +module.exports = function NumberSameValue(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + if (x === 0 && y === 0) { + return !(isNegativeZero(x) ^ isNegativeZero(y)); + } + return NumberSameValueZero(x, y); +}; diff --git a/node_modules/es-abstract/2023/Number/sameValueZero.js b/node_modules/es-abstract/2023/Number/sameValueZero.js new file mode 100644 index 0000000000000000000000000000000000000000..383ab82f70c8612fed5287ec4b0b0b5814f48750 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/sameValueZero.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-sameValueZero + +module.exports = function NumberSameValueZero(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + var xNaN = isNaN(x); + var yNaN = isNaN(y); + if (xNaN || yNaN) { + return xNaN === yNaN; + } + return x === y; +}; diff --git a/node_modules/es-abstract/2023/Number/signedRightShift.js b/node_modules/es-abstract/2023/Number/signedRightShift.js new file mode 100644 index 0000000000000000000000000000000000000000..b22775b14f06bec9ec6e4e1b53096d9e69740327 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/signedRightShift.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('../ToInt32'); +var ToUint32 = require('../ToUint32'); +var modulo = require('../modulo'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-signedRightShift + +module.exports = function NumberSignedRightShift(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + var lnum = ToInt32(x); + var rnum = ToUint32(y); + + var shiftCount = modulo(rnum, 32); + + return lnum >> shiftCount; +}; diff --git a/node_modules/es-abstract/2023/Number/subtract.js b/node_modules/es-abstract/2023/Number/subtract.js new file mode 100644 index 0000000000000000000000000000000000000000..9f66df451ff8029461369d79f81debc17766379a --- /dev/null +++ b/node_modules/es-abstract/2023/Number/subtract.js @@ -0,0 +1,15 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var NumberAdd = require('./add'); +var NumberUnaryMinus = require('./unaryMinus'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-subtract + +module.exports = function NumberSubtract(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + return NumberAdd(x, NumberUnaryMinus(y)); +}; diff --git a/node_modules/es-abstract/2023/Number/toString.js b/node_modules/es-abstract/2023/Number/toString.js new file mode 100644 index 0000000000000000000000000000000000000000..4864dc4d6d04742a32680b559826d424cafd4362 --- /dev/null +++ b/node_modules/es-abstract/2023/Number/toString.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $numberToString = callBound('Number.prototype.toString'); + +// https://262.ecma-international.org/14.0/#sec-numeric-types-number-tostring + +module.exports = function NumberToString(x, radix) { + if (typeof x !== 'number') { + throw new $TypeError('Assertion failed: `x` must be a Number'); + } + if (!isInteger(radix) || radix < 2 || radix > 36) { + throw new $TypeError('Assertion failed: `radix` must be an integer >= 2 and <= 36'); + } + + return $numberToString(x, radix); // steps 1 - 12 +}; diff --git a/node_modules/es-abstract/2023/Number/unaryMinus.js b/node_modules/es-abstract/2023/Number/unaryMinus.js new file mode 100644 index 0000000000000000000000000000000000000000..ab4ed98b2db294cfcd12edd31d9a7fd06649b9dd --- /dev/null +++ b/node_modules/es-abstract/2023/Number/unaryMinus.js @@ -0,0 +1,17 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-unaryMinus + +module.exports = function NumberUnaryMinus(x) { + if (typeof x !== 'number') { + throw new $TypeError('Assertion failed: `x` argument must be a Number'); + } + if (isNaN(x)) { + return NaN; + } + return -x; +}; diff --git a/node_modules/es-abstract/2023/Number/unsignedRightShift.js b/node_modules/es-abstract/2023/Number/unsignedRightShift.js new file mode 100644 index 0000000000000000000000000000000000000000..70334bd60c5a4417c07b2a5f51ba942fc8731d8f --- /dev/null +++ b/node_modules/es-abstract/2023/Number/unsignedRightShift.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('../ToInt32'); +var ToUint32 = require('../ToUint32'); +var modulo = require('../modulo'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-unsignedRightShift + +module.exports = function NumberUnsignedRightShift(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + var lnum = ToInt32(x); + var rnum = ToUint32(y); + + var shiftCount = modulo(rnum, 32); + + return lnum >>> shiftCount; +}; diff --git a/node_modules/es-abstract/2023/NumberBitwiseOp.js b/node_modules/es-abstract/2023/NumberBitwiseOp.js new file mode 100644 index 0000000000000000000000000000000000000000..769d1fa15aee1ba5ee58abd4f96579f9ba38138f --- /dev/null +++ b/node_modules/es-abstract/2023/NumberBitwiseOp.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('./ToInt32'); +var ToUint32 = require('./ToUint32'); + +// https://262.ecma-international.org/11.0/#sec-numberbitwiseop + +module.exports = function NumberBitwiseOp(op, x, y) { + if (op !== '&' && op !== '|' && op !== '^') { + throw new $TypeError('Assertion failed: `op` must be `&`, `|`, or `^`'); + } + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + var lnum = ToInt32(x); + var rnum = ToUint32(y); + if (op === '&') { + return lnum & rnum; + } + if (op === '|') { + return lnum | rnum; + } + return lnum ^ rnum; +}; diff --git a/node_modules/es-abstract/2023/NumberToBigInt.js b/node_modules/es-abstract/2023/NumberToBigInt.js new file mode 100644 index 0000000000000000000000000000000000000000..27fb6682301aaeb4a93dfad4ed9bcbdbaa24f6c2 --- /dev/null +++ b/node_modules/es-abstract/2023/NumberToBigInt.js @@ -0,0 +1,25 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $RangeError = require('es-errors/range'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var isInteger = require('math-intrinsics/isInteger'); + +// https://262.ecma-international.org/12.0/#sec-numbertobigint + +module.exports = function NumberToBigInt(number) { + if (typeof number !== 'number') { + throw new $TypeError('Assertion failed: `number` must be a String'); + } + if (!isInteger(number)) { + throw new $RangeError('The number ' + number + ' cannot be converted to a BigInt because it is not an integer'); + } + if (!$BigInt) { + throw new $SyntaxError('BigInts are not supported in this environment'); + } + return $BigInt(number); +}; diff --git a/node_modules/es-abstract/2023/NumericToRawBytes.js b/node_modules/es-abstract/2023/NumericToRawBytes.js new file mode 100644 index 0000000000000000000000000000000000000000..db42a4fbb0951c865b5c3d85a9cbb874b825a3c6 --- /dev/null +++ b/node_modules/es-abstract/2023/NumericToRawBytes.js @@ -0,0 +1,62 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var hasOwnProperty = require('./HasOwnProperty'); +var ToBigInt64 = require('./ToBigInt64'); +var ToBigUint64 = require('./ToBigUint64'); +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 tableTAO = require('./tables/typed-array-objects'); + +// https://262.ecma-international.org/11.0/#table-the-typedarray-constructors +var TypeToAO = { + __proto__: null, + $Int8: ToInt8, + $Uint8: ToUint8, + $Uint8C: ToUint8Clamp, + $Int16: ToInt16, + $Uint16: ToUint16, + $Int32: ToInt32, + $Uint32: ToUint32, + $BigInt64: ToBigInt64, + $BigUint64: ToBigUint64 +}; + +// https://262.ecma-international.org/11.0/#sec-numerictorawbytes + +module.exports = function NumericToRawBytes(type, value, isLittleEndian) { + if (typeof type !== 'string' || !hasOwnProperty(tableTAO.size, '$' + type)) { + throw new $TypeError('Assertion failed: `type` must be a TypedArray element type'); + } + if (typeof value !== 'number' && typeof value !== 'bigint') { + throw new $TypeError('Assertion failed: `value` must be a Number or a BigInt'); + } + 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 = tableTAO.size['$' + 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 +}; diff --git a/node_modules/es-abstract/2023/ObjectDefineProperties.js b/node_modules/es-abstract/2023/ObjectDefineProperties.js new file mode 100644 index 0000000000000000000000000000000000000000..0d41322bcc146b95dea2f81dbb533ed69495414a --- /dev/null +++ b/node_modules/es-abstract/2023/ObjectDefineProperties.js @@ -0,0 +1,37 @@ +'use strict'; + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); +var Get = require('./Get'); +var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); +var ToObject = require('./ToObject'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +var forEach = require('../helpers/forEach'); +var OwnPropertyKeys = require('own-keys'); + +// https://262.ecma-international.org/6.0/#sec-objectdefineproperties + +/** @type { = {}>(O: T, Properties: object) => T} */ +module.exports = function ObjectDefineProperties(O, Properties) { + var props = ToObject(Properties); // step 1 + var keys = OwnPropertyKeys(props); // step 2 + /** @type {[string | symbol, import('../types').Descriptor][]} */ + var descriptors = []; // step 3 + + forEach(keys, function (nextKey) { // step 4 + var propDesc = OrdinaryGetOwnProperty(props, nextKey); // 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 + descriptors[descriptors.length] = [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 +}; diff --git a/node_modules/es-abstract/2023/OrdinaryCreateFromConstructor.js b/node_modules/es-abstract/2023/OrdinaryCreateFromConstructor.js new file mode 100644 index 0000000000000000000000000000000000000000..ac997c828209e0a91a21801f62f206d4dd642c29 --- /dev/null +++ b/node_modules/es-abstract/2023/OrdinaryCreateFromConstructor.js @@ -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 OrdinaryObjectCreate = require('./OrdinaryObjectCreate'); + +// 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 OrdinaryObjectCreate(proto, slots); +}; diff --git a/node_modules/es-abstract/2023/OrdinaryDefineOwnProperty.js b/node_modules/es-abstract/2023/OrdinaryDefineOwnProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..1a61488c6311f778620cdccb377e0b377040b055 --- /dev/null +++ b/node_modules/es-abstract/2023/OrdinaryDefineOwnProperty.js @@ -0,0 +1,54 @@ +'use strict'; + +var $gOPD = require('gopd'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyDescriptor = require('../helpers/records/property-descriptor'); + +var IsAccessorDescriptor = require('./IsAccessorDescriptor'); +var IsExtensible = require('./IsExtensible'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); +var SameValue = require('./SameValue'); +var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-ordinarydefineownproperty + +module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { + if (!isObject(O)) { + 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); +}; diff --git a/node_modules/es-abstract/2023/OrdinaryGetOwnProperty.js b/node_modules/es-abstract/2023/OrdinaryGetOwnProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..e0c9cb1a595d9273e0bbea4f0b6a99918320b7fd --- /dev/null +++ b/node_modules/es-abstract/2023/OrdinaryGetOwnProperty.js @@ -0,0 +1,41 @@ +'use strict'; + +var $gOPD = require('gopd'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var callBound = require('call-bound'); + +var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); + +var hasOwn = require('hasown'); + +var IsArray = require('./IsArray'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var IsRegExp = require('./IsRegExp'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-ordinarygetownproperty + +module.exports = function OrdinaryGetOwnProperty(O, P) { + if (!isObject(O)) { + 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)); +}; diff --git a/node_modules/es-abstract/2023/OrdinaryGetPrototypeOf.js b/node_modules/es-abstract/2023/OrdinaryGetPrototypeOf.js new file mode 100644 index 0000000000000000000000000000000000000000..7ef8bee34617c4ecaa2bd4b55cf1eb6a6665fe50 --- /dev/null +++ b/node_modules/es-abstract/2023/OrdinaryGetPrototypeOf.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var $getProto = require('get-proto'); + +// https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof + +module.exports = function OrdinaryGetPrototypeOf(O) { + if (!isObject(O)) { + 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); +}; diff --git a/node_modules/es-abstract/2023/OrdinaryHasInstance.js b/node_modules/es-abstract/2023/OrdinaryHasInstance.js new file mode 100644 index 0000000000000000000000000000000000000000..a0a83e6733a49e898d0f9db5df20a54028ad69e3 --- /dev/null +++ b/node_modules/es-abstract/2023/OrdinaryHasInstance.js @@ -0,0 +1,23 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); + +// https://262.ecma-international.org/6.0/#sec-ordinaryhasinstance + +module.exports = function OrdinaryHasInstance(C, O) { + if (!IsCallable(C)) { + return false; + } + if (!isObject(O)) { + return false; + } + var P = Get(C, 'prototype'); + if (!isObject(P)) { + throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); + } + return O instanceof C; +}; diff --git a/node_modules/es-abstract/2023/OrdinaryHasProperty.js b/node_modules/es-abstract/2023/OrdinaryHasProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..c6c5c11961374a2c3c4beb751aca52a9973093d6 --- /dev/null +++ b/node_modules/es-abstract/2023/OrdinaryHasProperty.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/6.0/#sec-ordinaryhasproperty + +module.exports = function OrdinaryHasProperty(O, P) { + if (!isObject(O)) { + 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; +}; diff --git a/node_modules/es-abstract/2023/OrdinaryObjectCreate.js b/node_modules/es-abstract/2023/OrdinaryObjectCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..aca0ac014fead59cc298b13659179c082a4ae82a --- /dev/null +++ b/node_modules/es-abstract/2023/OrdinaryObjectCreate.js @@ -0,0 +1,56 @@ +'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 isObject = require('es-object-atoms/isObject'); + +var IsArray = require('./IsArray'); + +var forEach = require('../helpers/forEach'); + +var SLOT = require('internal-slot'); + +var hasProto = require('has-proto')(); + +// https://262.ecma-international.org/11.0/#sec-objectcreate + +module.exports = function OrdinaryObjectCreate(proto) { + if (proto !== null && !isObject(proto)) { + throw new $TypeError('Assertion failed: `proto` must be null or an object'); + } + var additionalInternalSlotsList = arguments.length < 2 ? [] : arguments[1]; + if (!IsArray(additionalInternalSlotsList)) { + throw new $TypeError('Assertion failed: `additionalInternalSlotsList` must be an Array'); + } + + // var internalSlotsList = ['[[Prototype]]', '[[Extensible]]']; // step 1 + // internalSlotsList.push(...additionalInternalSlotsList); // step 2 + // var O = MakeBasicObject(internalSlotsList); // step 3 + // setProto(O, proto); // step 4 + // return O; // step 5 + + var O; + if (hasProto) { + O = { __proto__: proto }; + } else if ($ObjectCreate) { + O = $ObjectCreate(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 (additionalInternalSlotsList.length > 0) { + forEach(additionalInternalSlotsList, function (slot) { + SLOT.set(O, slot, void undefined); + }); + } + + return O; +}; diff --git a/node_modules/es-abstract/2023/OrdinarySetPrototypeOf.js b/node_modules/es-abstract/2023/OrdinarySetPrototypeOf.js new file mode 100644 index 0000000000000000000000000000000000000000..b493a442ddd22b125fde2ed40eeebddf2d080a2d --- /dev/null +++ b/node_modules/es-abstract/2023/OrdinarySetPrototypeOf.js @@ -0,0 +1,50 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var $setProto = require('set-proto'); +var isObject = require('es-object-atoms/isObject'); + +var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); + +// https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof + +module.exports = function OrdinarySetPrototypeOf(O, V) { + if (V !== null && !isObject(V)) { + 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; + */ +}; diff --git a/node_modules/es-abstract/2023/OrdinaryToPrimitive.js b/node_modules/es-abstract/2023/OrdinaryToPrimitive.js new file mode 100644 index 0000000000000000000000000000000000000000..5feb5694e8aba94591eac365aa6bd8a6b985f305 --- /dev/null +++ b/node_modules/es-abstract/2023/OrdinaryToPrimitive.js @@ -0,0 +1,36 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); + +var inspect = require('object-inspect'); + +// https://262.ecma-international.org/8.0/#sec-ordinarytoprimitive + +module.exports = function OrdinaryToPrimitive(O, hint) { + if (!isObject(O)) { + 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 (!isObject(result)) { + return result; + } + } + } + + throw new $TypeError('No primitive value for ' + inspect(O)); +}; diff --git a/node_modules/es-abstract/2023/ParseHexOctet.js b/node_modules/es-abstract/2023/ParseHexOctet.js new file mode 100644 index 0000000000000000000000000000000000000000..0c55b32dc9dc4d81fdacaf100e6db71957afd79f --- /dev/null +++ b/node_modules/es-abstract/2023/ParseHexOctet.js @@ -0,0 +1,40 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var substring = require('./substring'); + +var isInteger = require('math-intrinsics/isInteger'); +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/14.0/#sec-parsehexoctet + +module.exports = function ParseHexOctet(string, position) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + if (!isInteger(position) || position < 0) { + throw new $TypeError('Assertion failed: `position` must be a nonnegative integer'); + } + + var len = string.length; // step 1 + if ((position + 2) > len) { // step 2 + var error = new $SyntaxError('requested a position on a string that does not contain 2 characters at that position'); // step 2.a + return [error]; // step 2.b + } + var hexDigits = substring(string, position, position + 2); // step 3 + + var n = +('0x' + hexDigits); + if (isNaN(n)) { + return [new $SyntaxError('Invalid hexadecimal characters')]; + } + return n; + + /* + 4. Let _parseResult_ be ParseText(StringToCodePoints(_hexDigits_), |HexDigits[~Sep]|). + 5. If _parseResult_ is not a Parse Node, return _parseResult_. + 6. Let _n_ be the unsigned 8-bit value corresponding with the MV of _parseResult_. + 7. Return _n_. + */ +}; diff --git a/node_modules/es-abstract/2023/PromiseResolve.js b/node_modules/es-abstract/2023/PromiseResolve.js new file mode 100644 index 0000000000000000000000000000000000000000..dfb7d82fd2e9a378da3188a73ff006a06ce14463 --- /dev/null +++ b/node_modules/es-abstract/2023/PromiseResolve.js @@ -0,0 +1,18 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBind = require('call-bind'); +var $SyntaxError = require('es-errors/syntax'); + +var $resolve = GetIntrinsic('%Promise.resolve%', true); +var $PromiseResolve = $resolve && callBind($resolve); + +// https://262.ecma-international.org/9.0/#sec-promise-resolve + +module.exports = function PromiseResolve(C, x) { + if (!$PromiseResolve) { + throw new $SyntaxError('This environment does not support Promises.'); + } + return $PromiseResolve(C, x); +}; + diff --git a/node_modules/es-abstract/2023/QuoteJSONString.js b/node_modules/es-abstract/2023/QuoteJSONString.js new file mode 100644 index 0000000000000000000000000000000000000000..2e0c15b64451c199fdd125d63946025921d9a329 --- /dev/null +++ b/node_modules/es-abstract/2023/QuoteJSONString.js @@ -0,0 +1,52 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); +var forEach = require('../helpers/forEach'); +var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); +var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); + +var $charCodeAt = callBound('String.prototype.charCodeAt'); +var $strSplit = callBound('String.prototype.split'); + +var StringToCodePoints = require('./StringToCodePoints'); +var UnicodeEscape = require('./UnicodeEscape'); +var UTF16EncodeCodePoint = require('./UTF16EncodeCodePoint'); + +var hasOwn = require('hasown'); + +// https://262.ecma-international.org/12.0/#sec-quotejsonstring + +var escapes = { + '\u0008': '\\b', + '\u0009': '\\t', + '\u000A': '\\n', + '\u000C': '\\f', + '\u000D': '\\r', + '\u0022': '\\"', + '\u005c': '\\\\' +}; + +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(StringToCodePoints(value), ''), function (C) { + if (hasOwn(escapes, C)) { + product += escapes[C]; + } else { + var cCharCode = $charCodeAt(C, 0); + if (cCharCode < 0x20 || isLeadingSurrogate(cCharCode) || isTrailingSurrogate(cCharCode)) { + product += UnicodeEscape(C); + } else { + product += UTF16EncodeCodePoint(cCharCode); + } + } + }); + } + product += '"'; + return product; +}; diff --git a/node_modules/es-abstract/2023/RawBytesToNumeric.js b/node_modules/es-abstract/2023/RawBytesToNumeric.js new file mode 100644 index 0000000000000000000000000000000000000000..70c24064ca2c7208f10baec57d50b6a31d4038a2 --- /dev/null +++ b/node_modules/es-abstract/2023/RawBytesToNumeric.js @@ -0,0 +1,67 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); + +var $RangeError = require('es-errors/range'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var $BigInt = GetIntrinsic('%BigInt%', true); + +var hasOwnProperty = require('./HasOwnProperty'); +var IsArray = require('./IsArray'); +var IsBigIntElementType = require('./IsBigIntElementType'); +var IsUnsignedElementType = require('./IsUnsignedElementType'); + +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 $reverse = callBound('Array.prototype.reverse'); +var $slice = callBound('Array.prototype.slice'); + +var tableTAO = require('./tables/typed-array-objects'); + +// https://262.ecma-international.org/11.0/#sec-rawbytestonumeric + +module.exports = function RawBytesToNumeric(type, rawBytes, isLittleEndian) { + if (typeof type !== 'string' || !hasOwnProperty(tableTAO.size, '$' + type)) { + throw new $TypeError('Assertion failed: `type` must be a TypedArray element type'); + } + 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 = tableTAO.size['$' + 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); + } + + var isBigInt = IsBigIntElementType(type); + if (isBigInt && !$BigInt) { + throw new $SyntaxError('this environment does not support BigInts'); + } + + // 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, IsUnsignedElementType(type), isBigInt); +}; diff --git a/node_modules/es-abstract/2023/RegExpCreate.js b/node_modules/es-abstract/2023/RegExpCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..68e31605ed1764b9e1addddc5b910e9c9d73fba2 --- /dev/null +++ b/node_modules/es-abstract/2023/RegExpCreate.js @@ -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); +}; diff --git a/node_modules/es-abstract/2023/RegExpExec.js b/node_modules/es-abstract/2023/RegExpExec.js new file mode 100644 index 0000000000000000000000000000000000000000..15762b8343aa380c2c90257eef552a87c56745ae --- /dev/null +++ b/node_modules/es-abstract/2023/RegExpExec.js @@ -0,0 +1,29 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var regexExec = require('call-bound')('RegExp.prototype.exec'); + +var Call = require('./Call'); +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); + +// https://262.ecma-international.org/6.0/#sec-regexpexec + +module.exports = function RegExpExec(R, S) { + if (!isObject(R)) { + 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 (result === null || isObject(result)) { + return result; + } + throw new $TypeError('"exec" method must return `null` or an Object'); + } + return regexExec(R, S); +}; diff --git a/node_modules/es-abstract/2023/RegExpHasFlag.js b/node_modules/es-abstract/2023/RegExpHasFlag.js new file mode 100644 index 0000000000000000000000000000000000000000..a1f06ce29172dfbdb155c0307a422851141db649 --- /dev/null +++ b/node_modules/es-abstract/2023/RegExpHasFlag.js @@ -0,0 +1,38 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $RegExpPrototype = GetIntrinsic('%RegExp.prototype%'); + +var SameValue = require('./SameValue'); + +var $indexOf = callBound('String.prototype.indexOf'); + +var hasRegExpMatcher = require('is-regex'); +var getFlags = require('regexp.prototype.flags'); + +// https://262.ecma-international.org/13.0/#sec-regexphasflag + +module.exports = function RegExpHasFlag(R, codeUnit) { + if (typeof codeUnit !== 'string' || codeUnit.length !== 1) { + throw new $TypeError('Assertion failed: `string` must be a code unit - a String of length 1'); + } + + if (!isObject(R)) { + throw new $TypeError('Assertion failed: Type(R) is not Object'); + } + + if (!hasRegExpMatcher(R)) { // step 2 + if (SameValue(R, $RegExpPrototype)) { + return void undefined; // step 2.a + } + throw new $TypeError('`R` must be a RegExp object'); // step 2.b + } + + var flags = getFlags(R); // step 3 + + return $indexOf(flags, codeUnit) > -1; // steps 4-5 +}; diff --git a/node_modules/es-abstract/2023/RequireObjectCoercible.js b/node_modules/es-abstract/2023/RequireObjectCoercible.js new file mode 100644 index 0000000000000000000000000000000000000000..b816d1f34b01a80352e783672836a17c49cc06f0 --- /dev/null +++ b/node_modules/es-abstract/2023/RequireObjectCoercible.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('es-object-atoms/RequireObjectCoercible'); diff --git a/node_modules/es-abstract/2023/SameValue.js b/node_modules/es-abstract/2023/SameValue.js new file mode 100644 index 0000000000000000000000000000000000000000..d07bbb8a8f3fec5ad22ffdfb617245331fcff412 --- /dev/null +++ b/node_modules/es-abstract/2023/SameValue.js @@ -0,0 +1,13 @@ +'use strict'; + +var $isNaN = require('math-intrinsics/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); +}; diff --git a/node_modules/es-abstract/2023/SameValueNonNumber.js b/node_modules/es-abstract/2023/SameValueNonNumber.js new file mode 100644 index 0000000000000000000000000000000000000000..4097ad4ecdcdadef3e903b726e88292827894da7 --- /dev/null +++ b/node_modules/es-abstract/2023/SameValueNonNumber.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var SameValue = require('./SameValue'); +var Type = require('./Type'); + +// https://262.ecma-international.org/14.0/#sec-samevaluenonnumeric + +module.exports = function SameValueNonNumber(x, y) { + if (typeof x === 'number') { + throw new $TypeError('Assertion failed: SameValueNonNumber does not accept Number values'); + } + if (Type(x) !== Type(y)) { + throw new $TypeError('SameValueNonNumber requires two non-Number values of the same type.'); + } + return SameValue(x, y); +}; diff --git a/node_modules/es-abstract/2023/SameValueZero.js b/node_modules/es-abstract/2023/SameValueZero.js new file mode 100644 index 0000000000000000000000000000000000000000..8880e915941eeae2d890f2bdeb1bd057516e3d50 --- /dev/null +++ b/node_modules/es-abstract/2023/SameValueZero.js @@ -0,0 +1,9 @@ +'use strict'; + +var $isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/6.0/#sec-samevaluezero + +module.exports = function SameValueZero(x, y) { + return (x === y) || ($isNaN(x) && $isNaN(y)); +}; diff --git a/node_modules/es-abstract/2023/SecFromTime.js b/node_modules/es-abstract/2023/SecFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..fc2e44560240f134cf345e63ab69d5f8a2d8cec1 --- /dev/null +++ b/node_modules/es-abstract/2023/SecFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/2023/Set.js b/node_modules/es-abstract/2023/Set.js new file mode 100644 index 0000000000000000000000000000000000000000..f814076a8fb813648eb16093fe86a46182c0fccf --- /dev/null +++ b/node_modules/es-abstract/2023/Set.js @@ -0,0 +1,45 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); +var SameValue = require('./SameValue'); + +// 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 (!isObject(O)) { + 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; + } + +}; diff --git a/node_modules/es-abstract/2023/SetFunctionLength.js b/node_modules/es-abstract/2023/SetFunctionLength.js new file mode 100644 index 0000000000000000000000000000000000000000..193be1c6a6d343f59353756163216d4fae5a57ff --- /dev/null +++ b/node_modules/es-abstract/2023/SetFunctionLength.js @@ -0,0 +1,28 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); +var HasOwnProperty = require('./HasOwnProperty'); +var IsExtensible = require('./IsExtensible'); + +// https://262.ecma-international.org/12.0/#sec-setfunctionlength + +module.exports = function SetFunctionLength(F, length) { + if (typeof F !== 'function' || !IsExtensible(F) || HasOwnProperty(F, 'length')) { + throw new $TypeError('Assertion failed: `F` must be an extensible function and lack an own `length` property'); + } + if (typeof length !== 'number') { + throw new $TypeError('Assertion failed: `length` must be a Number'); + } + if (length !== Infinity && (!isInteger(length) || length < 0)) { + throw new $TypeError('Assertion failed: `length` must be ∞, or an integer >= 0'); + } + return DefinePropertyOrThrow(F, 'length', { + '[[Configurable]]': true, + '[[Enumerable]]': false, + '[[Value]]': length, + '[[Writable]]': false + }); +}; diff --git a/node_modules/es-abstract/2023/SetFunctionName.js b/node_modules/es-abstract/2023/SetFunctionName.js new file mode 100644 index 0000000000000000000000000000000000000000..9e8511fd46bc115d0459cc66f44bb6560ba2bc3a --- /dev/null +++ b/node_modules/es-abstract/2023/SetFunctionName.js @@ -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 + }); +}; diff --git a/node_modules/es-abstract/2023/SetIntegrityLevel.js b/node_modules/es-abstract/2023/SetIntegrityLevel.js new file mode 100644 index 0000000000000000000000000000000000000000..ad92fb99b004f2b05e23fa0b2ef45dfc3775025e --- /dev/null +++ b/node_modules/es-abstract/2023/SetIntegrityLevel.js @@ -0,0 +1,57 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $gOPD = require('gopd'); +var $preventExtensions = GetIntrinsic('%Object.preventExtensions%', true); +var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true); + +var forEach = require('../helpers/forEach'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); +var IsAccessorDescriptor = require('./IsAccessorDescriptor'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-setintegritylevel + +module.exports = function SetIntegrityLevel(O, level) { + if (!isObject(O)) { + 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; +}; diff --git a/node_modules/es-abstract/2023/SetTypedArrayFromArrayLike.js b/node_modules/es-abstract/2023/SetTypedArrayFromArrayLike.js new file mode 100644 index 0000000000000000000000000000000000000000..ad02c3c66e2c22ed00dd093e6f577023fe860b73 --- /dev/null +++ b/node_modules/es-abstract/2023/SetTypedArrayFromArrayLike.js @@ -0,0 +1,68 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); + +var isTypedArray = require('is-typed-array'); +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayLength = require('typed-array-length'); +var whichTypedArray = require('which-typed-array'); + +var Get = require('./Get'); +var IntegerIndexedElementSet = require('./IntegerIndexedElementSet'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var LengthOfArrayLike = require('./LengthOfArrayLike'); +var ToObject = require('./ToObject'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/14.0/#sec-settypedarrayfromarraylike + +module.exports = function SetTypedArrayFromArrayLike(target, targetOffset, source) { + var whichTarget = whichTypedArray(target); + if (!whichTarget) { + throw new $TypeError('Assertion failed: target must be a TypedArray instance'); + } + + if (targetOffset !== Infinity && (!isInteger(targetOffset) || targetOffset < 0)) { + throw new $TypeError('Assertion failed: targetOffset must be a non-negative integer or +Infinity'); + } + + if (isTypedArray(source)) { + throw new $TypeError('Assertion failed: source must not be a TypedArray instance'); + } + + var targetBuffer = typedArrayBuffer(target); // step 1 + + if (IsDetachedBuffer(targetBuffer)) { + throw new $TypeError('target’s buffer is detached'); // step 2 + } + + var targetLength = typedArrayLength(target); // step 3 + + var src = ToObject(source); // step 4 + + var srcLength = LengthOfArrayLike(src); // step 5 + + if (targetOffset === Infinity) { + throw new $RangeError('targetOffset must be a finite integer'); // step 6 + } + + if (srcLength + targetOffset > targetLength) { + throw new $RangeError('targetOffset + srcLength must be <= target.length'); // step 7 + } + + var k = 0; // step 8 + + while (k < srcLength) { // step 9 + var Pk = ToString(k); // step 9.a + + var value = Get(src, Pk); // step 9.b + + var targetIndex = targetOffset + k; // step 9.c + + IntegerIndexedElementSet(target, targetIndex, value); // step 9.d + + k += 1; // step 9.e + } +}; diff --git a/node_modules/es-abstract/2023/SetTypedArrayFromTypedArray.js b/node_modules/es-abstract/2023/SetTypedArrayFromTypedArray.js new file mode 100644 index 0000000000000000000000000000000000000000..6a0daccc9713f518a13f62851ffbc3105424f028 --- /dev/null +++ b/node_modules/es-abstract/2023/SetTypedArrayFromTypedArray.js @@ -0,0 +1,129 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var GetIntrinsic = require('get-intrinsic'); +var isInteger = require('math-intrinsics/isInteger'); +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayByteLength = require('typed-array-byte-length'); +var typedArrayByteOffset = require('typed-array-byte-offset'); +var typedArrayLength = require('typed-array-length'); +var whichTypedArray = require('which-typed-array'); + +var CloneArrayBuffer = require('./CloneArrayBuffer'); +var GetValueFromBuffer = require('./GetValueFromBuffer'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var IsSharedArrayBuffer = require('./IsSharedArrayBuffer'); +var SameValue = require('./SameValue'); +var SetValueInBuffer = require('./SetValueInBuffer'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); +var TypedArrayElementType = require('./TypedArrayElementType'); + +var $ArrayBuffer = GetIntrinsic('%ArrayBuffer%', true); + +// https://262.ecma-international.org/14.0/#sec-settypedarrayfromtypedarray + +module.exports = function SetTypedArrayFromTypedArray(target, targetOffset, source) { + var whichTarget = whichTypedArray(target); + if (!whichTarget) { + throw new $TypeError('Assertion failed: target must be a TypedArray instance'); + } + + if (targetOffset !== Infinity && (!isInteger(targetOffset) || targetOffset < 0)) { + throw new $TypeError('Assertion failed: targetOffset must be a non-negative integer or +Infinity'); + } + + var whichSource = whichTypedArray(source); + if (!whichSource) { + throw new $TypeError('Assertion failed: source must be a TypedArray instance'); + } + + var targetBuffer = typedArrayBuffer(target); // step 1 + + if (IsDetachedBuffer(targetBuffer)) { + throw new $TypeError('target’s buffer is detached'); // step 2 + } + + var targetLength = typedArrayLength(target); // step 3 + + var srcBuffer = typedArrayBuffer(source); // step 4 + + if (IsDetachedBuffer(srcBuffer)) { + throw new $TypeError('source’s buffer is detached'); // step 5 + } + + var targetType = TypedArrayElementType(target); // step 6 + + var targetElementSize = TypedArrayElementSize(target); // step 7 + + var targetByteOffset = typedArrayByteOffset(target); // step 8 + + var srcType = TypedArrayElementType(source); // step 9 + + var srcElementSize = TypedArrayElementSize(source); // step 10 + + var srcLength = typedArrayLength(source); // step 11 + + var srcByteOffset = typedArrayByteOffset(source); // step 12 + + if (targetOffset === Infinity) { + throw new $RangeError('targetOffset must be a non-negative integer or +Infinity'); // step 13 + } + + if (srcLength + targetOffset > targetLength) { + throw new $RangeError('targetOffset + source.length must not be greater than target.length'); // step 14 + } + + var targetContentType = whichTarget === 'BigInt64Array' || whichTarget === 'BigUint64Array' ? 'BigInt' : 'Number'; + var sourceContentType = whichSource === 'BigInt64Array' || whichSource === 'BigUint64Array' ? 'BigInt' : 'Number'; + if (targetContentType !== sourceContentType) { + throw new $TypeError('source and target must have the same content type'); // step 15 + } + + var sameSharedArrayBuffer = false; + if (IsSharedArrayBuffer(srcBuffer) && IsSharedArrayBuffer(targetBuffer)) { // step 16 + // a. If srcBuffer.[[ArrayBufferData]] and targetBuffer.[[ArrayBufferData]] are the same Shared Data Block values, let same be true; else let same be false. + throw new $SyntaxError('SharedArrayBuffer is not supported by this implementation'); + } + + var srcByteIndex; + if (SameValue(srcBuffer, targetBuffer) || sameSharedArrayBuffer) { // step 17 + var srcByteLength = typedArrayByteLength(source); // step 17.a + + srcBuffer = CloneArrayBuffer(srcBuffer, srcByteOffset, srcByteLength, $ArrayBuffer); // step 17.b + + srcByteIndex = 0; // step 17.c + } else { + srcByteIndex = srcByteOffset; // step 18 + } + + var targetByteIndex = (targetOffset * targetElementSize) + targetByteOffset; // step 19 + + var limit = targetByteIndex + (targetElementSize * srcLength); // step 20 + + var value; + if (srcType === targetType) { // step 21 + // a. NOTE: The transfer must be performed in a manner that preserves the bit-level encoding of the source data. + + while (targetByteIndex < limit) { // step 21.b + value = GetValueFromBuffer(srcBuffer, srcByteIndex, 'Uint8', true, 'Unordered'); // step 21.b.i + + SetValueInBuffer(targetBuffer, targetByteIndex, 'Uint8', value, true, 'Unordered'); // step 21.b.ii + + srcByteIndex += 1; // step 21.b.iii + + targetByteIndex += 1; // step 21.b.iv + } + } else { // step 22 + while (targetByteIndex < limit) { // step 22.a + value = GetValueFromBuffer(srcBuffer, srcByteIndex, srcType, true, 'Unordered'); // step 22.a.i + + SetValueInBuffer(targetBuffer, targetByteIndex, targetType, value, true, 'Unordered'); // step 22.a.ii + + srcByteIndex += srcElementSize; // step 22.a.iii + + targetByteIndex += targetElementSize; // step 22.a.iv + } + } +}; diff --git a/node_modules/es-abstract/2023/SetValueInBuffer.js b/node_modules/es-abstract/2023/SetValueInBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..c0e65e04ef0e1db888cbd7932faa84073c339754 --- /dev/null +++ b/node_modules/es-abstract/2023/SetValueInBuffer.js @@ -0,0 +1,92 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var $Uint8Array = GetIntrinsic('%Uint8Array%', true); + +var IsBigIntElementType = require('./IsBigIntElementType'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var NumericToRawBytes = require('./NumericToRawBytes'); + +var isArrayBuffer = require('is-array-buffer'); +var isSharedArrayBuffer = require('is-shared-array-buffer'); +var hasOwn = require('hasown'); + +var tableTAO = require('./tables/typed-array-objects'); + +var defaultEndianness = require('../helpers/defaultEndianness'); +var forEach = require('../helpers/forEach'); + +// https://262.ecma-international.org/12.0/#sec-setvalueinbuffer + +/* eslint max-params: 0 */ + +module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value, 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) || byteIndex < 0) { + throw new $TypeError('Assertion failed: `byteIndex` must be a non-negative integer'); + } + + if (typeof type !== 'string' || !hasOwn(tableTAO.size, '$' + type)) { + throw new $TypeError('Assertion failed: `type` must be one of ' + tableTAO.choices); + } + + if (typeof value !== 'number' && typeof value !== 'bigint') { + throw new $TypeError('Assertion failed: `value` must be a Number or a BigInt'); + } + + if (typeof isTypedArray !== 'boolean') { + throw new $TypeError('Assertion failed: `isTypedArray` must be a boolean'); + } + if (order !== 'SeqCst' && order !== 'Unordered' && order !== 'Init') { + throw new $TypeError('Assertion failed: `order` must be `"SeqCst"`, `"Unordered"`, or `"Init"`'); + } + + if (arguments.length > 6 && typeof arguments[6] !== '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 (IsBigIntElementType(type) ? typeof value !== 'bigint' : typeof value !== 'number') { // step 3 + throw new $TypeError('Assertion failed: `value` must be a BigInt if type is BigInt64 or BigUint64, otherwise a Number'); + } + + // 4. Let block be arrayBuffer’s [[ArrayBufferData]] internal slot. + + var elementSize = tableTAO.size['$' + type]; // step 5 + + // 6. 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 > 6 ? arguments[6] : defaultEndianness === 'little'; // step 6 + + var rawBytes = NumericToRawBytes(type, value, isLittleEndian); // step 7 + + if (isSAB) { // step 8 + /* + Let execution be the [[CandidateExecution]] field of the surrounding agent's Agent Record. + Let eventList be the [[EventList]] field of the element in execution.[[EventsRecords]] whose [[AgentSignifier]] is AgentSignifier(). + If isTypedArray is true and IsNoTearConfiguration(type, order) is true, let noTear be true; otherwise let noTear be false. + Append WriteSharedMemory { [[Order]]: order, [[NoTear]]: noTear, [[Block]]: block, [[ByteIndex]]: byteIndex, [[ElementSize]]: elementSize, [[Payload]]: rawBytes } to eventList. + */ + throw new $SyntaxError('SharedArrayBuffer is not supported by this implementation'); + } else { + // 9. 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; + }); + } + + // 10. Return NormalCompletion(undefined). +}; diff --git a/node_modules/es-abstract/2023/SortIndexedProperties.js b/node_modules/es-abstract/2023/SortIndexedProperties.js new file mode 100644 index 0000000000000000000000000000000000000000..7d80fee7aaa4f7b17c9cf6dde1c1c84318e6e8d2 --- /dev/null +++ b/node_modules/es-abstract/2023/SortIndexedProperties.js @@ -0,0 +1,49 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var HasProperty = require('./HasProperty'); +var ToString = require('./ToString'); + +var isAbstractClosure = require('../helpers/isAbstractClosure'); + +var $sort = callBound('Array.prototype.sort'); + +// https://262.ecma-international.org/14.0/#sec-sortindexedproperties + +module.exports = function SortIndexedProperties(obj, len, SortCompare, holes) { + if (!isObject(obj)) { + throw new $TypeError('Assertion failed: Type(obj) is not Object'); + } + if (!isInteger(len) || len < 0) { + throw new $TypeError('Assertion failed: `len` must be an integer >= 0'); + } + if (!isAbstractClosure(SortCompare) || SortCompare.length !== 2) { + throw new $TypeError('Assertion failed: `SortCompare` must be an abstract closure taking 2 arguments'); + } + if (holes !== 'skip-holes' && holes !== 'read-through-holes') { + throw new $TypeError('Assertion failed: `holes` must be either ~skip-holes~ or ~read-through-holes~'); + } + + var items = []; // step 1 + + var k = 0; // step 2 + + while (k < len) { // step 3 + var Pk = ToString(k); + var kRead = holes === 'skip-holes' ? HasProperty(obj, Pk) : true; // step 3.b - 3.c + if (kRead) { // step 3.d + var kValue = Get(obj, Pk); + items[items.length] = kValue; + } + k += 1; // step 3.e + } + + $sort(items, SortCompare); // step 4 + + return items; // step 5 +}; diff --git a/node_modules/es-abstract/2023/SpeciesConstructor.js b/node_modules/es-abstract/2023/SpeciesConstructor.js new file mode 100644 index 0000000000000000000000000000000000000000..23e32b443ef3655f56639920d5cf58474500bf67 --- /dev/null +++ b/node_modules/es-abstract/2023/SpeciesConstructor.js @@ -0,0 +1,32 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $species = GetIntrinsic('%Symbol.species%', true); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var IsConstructor = require('./IsConstructor'); + +// https://262.ecma-international.org/6.0/#sec-speciesconstructor + +module.exports = function SpeciesConstructor(O, defaultConstructor) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + var C = O.constructor; + if (typeof C === 'undefined') { + return defaultConstructor; + } + if (!isObject(C)) { + throw new $TypeError('O.constructor is not an Object'); + } + var S = $species ? C[$species] : void 0; + if (S == null) { + return defaultConstructor; + } + if (IsConstructor(S)) { + return S; + } + throw new $TypeError('no constructor found'); +}; diff --git a/node_modules/es-abstract/2023/StringCreate.js b/node_modules/es-abstract/2023/StringCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..3e2aa43c50d8aa6317c0eef7eaf0b87e32916d4d --- /dev/null +++ b/node_modules/es-abstract/2023/StringCreate.js @@ -0,0 +1,38 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Object = require('es-object-atoms'); +var $StringPrototype = GetIntrinsic('%String.prototype%'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var setProto = require('set-proto'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); + +// https://262.ecma-international.org/6.0/#sec-stringcreate + +module.exports = function StringCreate(value, prototype) { + if (typeof value !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + + var S = $Object(value); + if (prototype !== $StringPrototype) { + if (setProto) { + setProto(S, prototype); + } else { + throw new $SyntaxError('StringCreate: a `proto` argument that is not `String.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); + } + } + + var length = value.length; + DefinePropertyOrThrow(S, 'length', { + '[[Configurable]]': false, + '[[Enumerable]]': false, + '[[Value]]': length, + '[[Writable]]': false + }); + + return S; +}; diff --git a/node_modules/es-abstract/2023/StringGetOwnProperty.js b/node_modules/es-abstract/2023/StringGetOwnProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..59e8a23f8969db47a1f1eae85a542594c4b64406 --- /dev/null +++ b/node_modules/es-abstract/2023/StringGetOwnProperty.js @@ -0,0 +1,46 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isNegativeZero = require('math-intrinsics/isNegativeZero'); +var isObject = require('es-object-atoms/isObject'); + +var callBound = require('call-bound'); +var $charAt = callBound('String.prototype.charAt'); +var $stringToString = callBound('String.prototype.toString'); + +var CanonicalNumericIndexString = require('./CanonicalNumericIndexString'); + +var isPropertyKey = require('../helpers/isPropertyKey'); +var isInteger = require('math-intrinsics/isInteger'); + +// https://262.ecma-international.org/12.0/#sec-stringgetownproperty + +module.exports = function StringGetOwnProperty(S, P) { + var str; + if (isObject(S)) { + try { + str = $stringToString(S); + } catch (e) { /**/ } + } + if (typeof str !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a boxed string object'); + } + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + if (typeof P !== 'string') { + return void undefined; + } + var index = CanonicalNumericIndexString(P); + var len = str.length; + if (typeof index === 'undefined' || !isInteger(index) || isNegativeZero(index) || index < 0 || len <= index) { + return void undefined; + } + var resultStr = $charAt(S, index); + return { + '[[Configurable]]': false, + '[[Enumerable]]': true, + '[[Value]]': resultStr, + '[[Writable]]': false + }; +}; diff --git a/node_modules/es-abstract/2023/StringIndexOf.js b/node_modules/es-abstract/2023/StringIndexOf.js new file mode 100644 index 0000000000000000000000000000000000000000..a1fce808019201ec1c5689884e822860c1c75472 --- /dev/null +++ b/node_modules/es-abstract/2023/StringIndexOf.js @@ -0,0 +1,36 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); + +var $slice = callBound('String.prototype.slice'); + +// https://262.ecma-international.org/12.0/#sec-stringindexof + +module.exports = function StringIndexOf(string, searchValue, fromIndex) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + if (typeof searchValue !== 'string') { + throw new $TypeError('Assertion failed: `searchValue` must be a String'); + } + if (!isInteger(fromIndex) || fromIndex < 0) { + throw new $TypeError('Assertion failed: `fromIndex` must be a non-negative integer'); + } + + var len = string.length; + if (searchValue === '' && fromIndex <= len) { + return fromIndex; + } + + var searchLen = searchValue.length; + for (var i = fromIndex; i <= (len - searchLen); i += 1) { + var candidate = $slice(string, i, i + searchLen); + if (candidate === searchValue) { + return i; + } + } + return -1; +}; diff --git a/node_modules/es-abstract/2023/StringPad.js b/node_modules/es-abstract/2023/StringPad.js new file mode 100644 index 0000000000000000000000000000000000000000..473b0b7bd490c72f1d1b90bd2a56f6d638fb0000 --- /dev/null +++ b/node_modules/es-abstract/2023/StringPad.js @@ -0,0 +1,41 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +var ToLength = require('./ToLength'); +var ToString = require('./ToString'); + +var $strSlice = callBound('String.prototype.slice'); + +// https://262.ecma-international.org/11.0/#sec-stringpad + +module.exports = function StringPad(O, maxLength, fillString, placement) { + if (placement !== 'start' && placement !== 'end') { + throw new $TypeError('Assertion failed: `placement` must be "start" or "end"'); + } + var S = ToString(O); + var intMaxLength = ToLength(maxLength); + var stringLength = S.length; + if (intMaxLength <= stringLength) { + return S; + } + var filler = typeof fillString === 'undefined' ? ' ' : ToString(fillString); + if (filler === '') { + return S; + } + var fillLen = intMaxLength - stringLength; + + // the String value consisting of repeated concatenations of filler truncated to length fillLen. + var truncatedStringFiller = ''; + while (truncatedStringFiller.length < fillLen) { + truncatedStringFiller += filler; + } + truncatedStringFiller = $strSlice(truncatedStringFiller, 0, fillLen); + + if (placement === 'start') { + return truncatedStringFiller + S; + } + return S + truncatedStringFiller; +}; diff --git a/node_modules/es-abstract/2023/StringToBigInt.js b/node_modules/es-abstract/2023/StringToBigInt.js new file mode 100644 index 0000000000000000000000000000000000000000..1cf9856a24538efe8dbefd9374da40dacebcd008 --- /dev/null +++ b/node_modules/es-abstract/2023/StringToBigInt.js @@ -0,0 +1,23 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $TypeError = require('es-errors/type'); +var $SyntaxError = require('es-errors/syntax'); + +// https://262.ecma-international.org/14.0/#sec-stringtobigint + +module.exports = function StringToBigInt(argument) { + if (typeof argument !== 'string') { + throw new $TypeError('`argument` must be a string'); + } + if (!$BigInt) { + throw new $SyntaxError('BigInts are not supported in this environment'); + } + try { + return $BigInt(argument); + } catch (e) { + return void undefined; + } +}; diff --git a/node_modules/es-abstract/2023/StringToCodePoints.js b/node_modules/es-abstract/2023/StringToCodePoints.js new file mode 100644 index 0000000000000000000000000000000000000000..9a104c41ac2fb5b9d3181d23172df9430c7a3827 --- /dev/null +++ b/node_modules/es-abstract/2023/StringToCodePoints.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CodePointAt = require('./CodePointAt'); + +// https://262.ecma-international.org/12.0/#sec-stringtocodepoints + +module.exports = function StringToCodePoints(string) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + var codePoints = []; + var size = string.length; + var position = 0; + while (position < size) { + var cp = CodePointAt(string, position); + codePoints[codePoints.length] = cp['[[CodePoint]]']; + position += cp['[[CodeUnitCount]]']; + } + return codePoints; +}; diff --git a/node_modules/es-abstract/2023/StringToNumber.js b/node_modules/es-abstract/2023/StringToNumber.js new file mode 100644 index 0000000000000000000000000000000000000000..e9b4a8b3368ac9f42ea786e90828a27733c259cd --- /dev/null +++ b/node_modules/es-abstract/2023/StringToNumber.js @@ -0,0 +1,42 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $RegExp = GetIntrinsic('%RegExp%'); +var $TypeError = require('es-errors/type'); +var $parseInteger = GetIntrinsic('%parseInt%'); + +var callBound = require('call-bound'); +var regexTester = require('safe-regex-test'); + +var $strSlice = callBound('String.prototype.slice'); +var isBinary = regexTester(/^0b[01]+$/i); +var isOctal = regexTester(/^0o[0-7]+$/i); +var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); +var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); +var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); +var hasNonWS = regexTester(nonWSregex); + +var $trim = require('string.prototype.trim'); + +// https://262.ecma-international.org/13.0/#sec-stringtonumber + +module.exports = function StringToNumber(argument) { + if (typeof argument !== 'string') { + throw new $TypeError('Assertion failed: `argument` is not a String'); + } + if (isBinary(argument)) { + return +$parseInteger($strSlice(argument, 2), 2); + } + if (isOctal(argument)) { + return +$parseInteger($strSlice(argument, 2), 8); + } + if (hasNonWS(argument) || isInvalidHexLiteral(argument)) { + return NaN; + } + var trimmed = $trim(argument); + if (trimmed !== argument) { + return StringToNumber(trimmed); + } + return +argument; +}; diff --git a/node_modules/es-abstract/2023/SymbolDescriptiveString.js b/node_modules/es-abstract/2023/SymbolDescriptiveString.js new file mode 100644 index 0000000000000000000000000000000000000000..444e3f70004626a3053f672a290e5e81b0f5cf51 --- /dev/null +++ b/node_modules/es-abstract/2023/SymbolDescriptiveString.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +var $SymbolToString = callBound('Symbol.prototype.toString', true); + +// https://262.ecma-international.org/6.0/#sec-symboldescriptivestring + +module.exports = function SymbolDescriptiveString(sym) { + if (typeof sym !== 'symbol') { + throw new $TypeError('Assertion failed: `sym` must be a Symbol'); + } + return $SymbolToString(sym); +}; diff --git a/node_modules/es-abstract/2023/TestIntegrityLevel.js b/node_modules/es-abstract/2023/TestIntegrityLevel.js new file mode 100644 index 0000000000000000000000000000000000000000..0e802f42786f89bac378b6a58e6009c9620be721 --- /dev/null +++ b/node_modules/es-abstract/2023/TestIntegrityLevel.js @@ -0,0 +1,40 @@ +'use strict'; + +var $gOPD = require('gopd'); +var $TypeError = require('es-errors/type'); + +var every = require('../helpers/every'); +var OwnPropertyKeys = require('own-keys'); +var isObject = require('es-object-atoms/isObject'); + +var IsDataDescriptor = require('./IsDataDescriptor'); +var IsExtensible = require('./IsExtensible'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-testintegritylevel + +module.exports = function TestIntegrityLevel(O, level) { + if (!isObject(O)) { + 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"`'); + } + var status = IsExtensible(O); + if (status || !$gOPD) { + return false; + } + var theKeys = OwnPropertyKeys(O); + return theKeys.length === 0 || every(theKeys, function (k) { + var currentDesc = $gOPD(O, k); + if (typeof currentDesc !== 'undefined') { + if (currentDesc.configurable) { + return false; + } + if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { + return false; + } + } + return true; + }); +}; diff --git a/node_modules/es-abstract/2023/ThrowCompletion.js b/node_modules/es-abstract/2023/ThrowCompletion.js new file mode 100644 index 0000000000000000000000000000000000000000..b7d388a35292e2a9faf88d4808b74e2c4878bbe7 --- /dev/null +++ b/node_modules/es-abstract/2023/ThrowCompletion.js @@ -0,0 +1,9 @@ +'use strict'; + +var CompletionRecord = require('./CompletionRecord'); + +// https://262.ecma-international.org/9.0/#sec-throwcompletion + +module.exports = function ThrowCompletion(argument) { + return new CompletionRecord('throw', argument); +}; diff --git a/node_modules/es-abstract/2023/TimeClip.js b/node_modules/es-abstract/2023/TimeClip.js new file mode 100644 index 0000000000000000000000000000000000000000..77c8dd4226c4765855024b1784b842f869fa5bfe --- /dev/null +++ b/node_modules/es-abstract/2023/TimeClip.js @@ -0,0 +1,20 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Date = GetIntrinsic('%Date%'); + +var $isFinite = require('math-intrinsics/isFinite'); +var abs = require('math-intrinsics/abs'); + +var ToNumber = require('./ToNumber'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.14 + +module.exports = function TimeClip(time) { + if (!$isFinite(time) || abs(time) > 8.64e15) { + return NaN; + } + return +new $Date(ToNumber(time)); +}; + diff --git a/node_modules/es-abstract/2023/TimeFromYear.js b/node_modules/es-abstract/2023/TimeFromYear.js new file mode 100644 index 0000000000000000000000000000000000000000..f3518a41a19146c9ba59e1362c3fb33f800daaa1 --- /dev/null +++ b/node_modules/es-abstract/2023/TimeFromYear.js @@ -0,0 +1,11 @@ +'use strict'; + +var msPerDay = require('../helpers/timeConstants').msPerDay; + +var DayFromYear = require('./DayFromYear'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.3 + +module.exports = function TimeFromYear(y) { + return msPerDay * DayFromYear(y); +}; diff --git a/node_modules/es-abstract/2023/TimeString.js b/node_modules/es-abstract/2023/TimeString.js new file mode 100644 index 0000000000000000000000000000000000000000..4cc6c6acdc23bda39dc6fe862f23aa35dcfbfb6b --- /dev/null +++ b/node_modules/es-abstract/2023/TimeString.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var $isNaN = require('math-intrinsics/isNaN'); + +var HourFromTime = require('./HourFromTime'); +var MinFromTime = require('./MinFromTime'); +var SecFromTime = require('./SecFromTime'); +var ToZeroPaddedDecimalString = require('./ToZeroPaddedDecimalString'); + +// https://262.ecma-international.org/13.0/#sec-timestring + +module.exports = function TimeString(tv) { + if (typeof tv !== 'number' || $isNaN(tv)) { + throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); + } + + var hour = ToZeroPaddedDecimalString(HourFromTime(tv), 2); // step 1 + + var minute = ToZeroPaddedDecimalString(MinFromTime(tv), 2); // step 2 + + var second = ToZeroPaddedDecimalString(SecFromTime(tv), 2); // step 3 + + return hour + ':' + minute + ':' + second + ' GMT'; // step 4 +}; diff --git a/node_modules/es-abstract/2023/TimeWithinDay.js b/node_modules/es-abstract/2023/TimeWithinDay.js new file mode 100644 index 0000000000000000000000000000000000000000..2bba83386c141873d3b603ed19d0f37069d1016a --- /dev/null +++ b/node_modules/es-abstract/2023/TimeWithinDay.js @@ -0,0 +1,12 @@ +'use strict'; + +var modulo = require('./modulo'); + +var msPerDay = require('../helpers/timeConstants').msPerDay; + +// https://262.ecma-international.org/5.1/#sec-15.9.1.2 + +module.exports = function TimeWithinDay(t) { + return modulo(t, msPerDay); +}; + diff --git a/node_modules/es-abstract/2023/TimeZoneString.js b/node_modules/es-abstract/2023/TimeZoneString.js new file mode 100644 index 0000000000000000000000000000000000000000..2333632760e7bfab41881dbadb4de71f53148431 --- /dev/null +++ b/node_modules/es-abstract/2023/TimeZoneString.js @@ -0,0 +1,41 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Date = GetIntrinsic('%Date%'); +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $indexOf = callBound('String.prototype.indexOf'); +var $slice = callBound('String.prototype.slice'); +var $toTimeString = callBound('Date.prototype.toTimeString'); + +// https://262.ecma-international.org/14.0/#sec-timezoneestring + +module.exports = function TimeZoneString(tv) { + if (!isInteger(tv)) { + throw new $TypeError('Assertion failed: `tv` must be an integral Number'); + } + + // 1. Let localTimeZone be DefaultTimeZone(). + // 2. If IsTimeZoneOffsetString(localTimeZone) is true, then + // a. Let offsetNs be ParseTimeZoneOffsetString(localTimeZone). + // 3. Else, + // a. Let offsetNs be GetNamedTimeZoneOffsetNanoseconds(localTimeZone, ℤ(ℝ(tv) × 106)). + // 4. Let offset be 𝔽(truncate(offsetNs / 106)). + // 5. If offset is +0𝔽 or offset > +0𝔽, then + // a. Let offsetSign be "+". + // b. Let absOffset be offset. + // 6. Else, + // a. Let offsetSign be "-". + // b. Let absOffset be -offset. + // 7. Let offsetMin be ToZeroPaddedDecimalString(ℝ(MinFromTime(absOffset)), 2). + // 8. Let offsetHour be ToZeroPaddedDecimalString(ℝ(HourFromTime(absOffset)), 2). + // 9. Let tzName be an implementation-defined string that is either the empty String or the string-concatenation of the code unit 0x0020 (SPACE), the code unit 0x0028 (LEFT PARENTHESIS), an implementation-defined timezone name, and the code unit 0x0029 (RIGHT PARENTHESIS). + // 10. Return the string-concatenation of offsetSign, offsetHour, offsetMin, and tzName. + + // hack until DefaultTimeZone, IsTimeZoneOffsetString, ParseTimeZoneOffsetString, GetNamedTimeZoneOffsetNanoseconds, and "implementation-defined string" are available + var ts = $toTimeString(new $Date(tv)); + return $slice(ts, $indexOf(ts, '(') + 1, $indexOf(ts, ')')); +}; diff --git a/node_modules/es-abstract/2023/ToBigInt.js b/node_modules/es-abstract/2023/ToBigInt.js new file mode 100644 index 0000000000000000000000000000000000000000..d6638104de25470c4bbc8a8102c8cd35617eebb6 --- /dev/null +++ b/node_modules/es-abstract/2023/ToBigInt.js @@ -0,0 +1,51 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $Number = GetIntrinsic('%Number%'); +var $TypeError = require('es-errors/type'); +var $SyntaxError = require('es-errors/syntax'); + +var StringToBigInt = require('./StringToBigInt'); +var ToPrimitive = require('./ToPrimitive'); + +// https://262.ecma-international.org/13.0/#sec-tobigint + +module.exports = function ToBigInt(argument) { + if (!$BigInt) { + throw new $SyntaxError('BigInts are not supported in this environment'); + } + + var prim = ToPrimitive(argument, $Number); + + if (prim == null) { + throw new $TypeError('Cannot convert null or undefined to a BigInt'); + } + + if (typeof prim === 'boolean') { + return prim ? $BigInt(1) : $BigInt(0); + } + + if (typeof prim === 'number') { + throw new $TypeError('Cannot convert a Number value to a BigInt'); + } + + if (typeof prim === 'string') { + var n = StringToBigInt(prim); + if (typeof n === 'undefined') { + throw new $TypeError('Failed to parse String to BigInt'); + } + return n; + } + + if (typeof prim === 'symbol') { + throw new $TypeError('Cannot convert a Symbol value to a BigInt'); + } + + if (typeof prim !== 'bigint') { + throw new $SyntaxError('Assertion failed: unknown primitive type'); + } + + return prim; +}; diff --git a/node_modules/es-abstract/2023/ToBigInt64.js b/node_modules/es-abstract/2023/ToBigInt64.js new file mode 100644 index 0000000000000000000000000000000000000000..627acba3d06e0e6d1e8b0b91088efbc7d6d42b0a --- /dev/null +++ b/node_modules/es-abstract/2023/ToBigInt64.js @@ -0,0 +1,25 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $pow = require('math-intrinsics/pow'); + +var ToBigInt = require('./ToBigInt'); +var BigIntRemainder = require('./BigInt/remainder'); + +var modBigInt = require('../helpers/modBigInt'); + +// BigInt(2**63), but node v10.4-v10.8 have a bug where you can't `BigInt(x)` anything larger than MAX_SAFE_INTEGER +var twoSixtyThree = $BigInt && (BigInt($pow(2, 32)) * BigInt($pow(2, 31))); + +// BigInt(2**64), but node v10.4-v10.8 have a bug where you can't `BigInt(x)` anything larger than MAX_SAFE_INTEGER +var twoSixtyFour = $BigInt && (BigInt($pow(2, 32)) * BigInt($pow(2, 32))); + +// https://262.ecma-international.org/11.0/#sec-tobigint64 + +module.exports = function ToBigInt64(argument) { + var n = ToBigInt(argument); + var int64bit = modBigInt(BigIntRemainder, n, twoSixtyFour); + return int64bit >= twoSixtyThree ? int64bit - twoSixtyFour : int64bit; +}; diff --git a/node_modules/es-abstract/2023/ToBigUint64.js b/node_modules/es-abstract/2023/ToBigUint64.js new file mode 100644 index 0000000000000000000000000000000000000000..f4038dc7bcaceb9b24157f6e6bcdfa286138f785 --- /dev/null +++ b/node_modules/es-abstract/2023/ToBigUint64.js @@ -0,0 +1,23 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); + +var $pow = require('math-intrinsics/pow'); + +var ToBigInt = require('./ToBigInt'); +var BigIntRemainder = require('./BigInt/remainder'); + +var modBigInt = require('../helpers/modBigInt'); + +// BigInt(2**64), but node v10.4-v10.8 have a bug where you can't `BigInt(x)` anything larger than MAX_SAFE_INTEGER +var twoSixtyFour = $BigInt && (BigInt($pow(2, 32)) * BigInt($pow(2, 32))); + +// https://262.ecma-international.org/11.0/#sec-tobiguint64 + +module.exports = function ToBigUint64(argument) { + var n = ToBigInt(argument); + var int64bit = modBigInt(BigIntRemainder, n, twoSixtyFour); + return int64bit; +}; diff --git a/node_modules/es-abstract/2023/ToBoolean.js b/node_modules/es-abstract/2023/ToBoolean.js new file mode 100644 index 0000000000000000000000000000000000000000..466404bf9992f0ba636249264c620d6c56215d6a --- /dev/null +++ b/node_modules/es-abstract/2023/ToBoolean.js @@ -0,0 +1,5 @@ +'use strict'; + +// http://262.ecma-international.org/5.1/#sec-9.2 + +module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/es-abstract/2023/ToDateString.js b/node_modules/es-abstract/2023/ToDateString.js new file mode 100644 index 0000000000000000000000000000000000000000..d9bb434185ca0adfa055d91bf592efdce3ed1d94 --- /dev/null +++ b/node_modules/es-abstract/2023/ToDateString.js @@ -0,0 +1,21 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $Date = GetIntrinsic('%Date%'); +var $String = GetIntrinsic('%String%'); + +var $isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/6.0/#sec-todatestring + +module.exports = function ToDateString(tv) { + if (typeof tv !== 'number') { + throw new $TypeError('Assertion failed: `tv` must be a Number'); + } + if ($isNaN(tv)) { + return 'Invalid Date'; + } + return $String(new $Date(tv)); +}; diff --git a/node_modules/es-abstract/2023/ToIndex.js b/node_modules/es-abstract/2023/ToIndex.js new file mode 100644 index 0000000000000000000000000000000000000000..4123e71d9afada85ec326d03ea0cdbfbdded2600 --- /dev/null +++ b/node_modules/es-abstract/2023/ToIndex.js @@ -0,0 +1,24 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); + +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); +var ToLength = require('./ToLength'); +var SameValue = require('./SameValue'); + +// https://262.ecma-international.org/8.0/#sec-toindex + +module.exports = function ToIndex(value) { + if (typeof value === 'undefined') { + return 0; + } + var integerIndex = ToIntegerOrInfinity(value); + if (integerIndex < 0) { + throw new $RangeError('index must be >= 0'); + } + var index = ToLength(integerIndex); + if (!SameValue(integerIndex, index)) { + throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1'); + } + return index; +}; diff --git a/node_modules/es-abstract/2023/ToInt16.js b/node_modules/es-abstract/2023/ToInt16.js new file mode 100644 index 0000000000000000000000000000000000000000..84440f91783cef9a41c10cbf7cd4249049161c1f --- /dev/null +++ b/node_modules/es-abstract/2023/ToInt16.js @@ -0,0 +1,21 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-toint16 + +var two16 = 0x10000; // Math.pow(2, 16); + +module.exports = function ToInt16(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int16bit = modulo(int, two16); + return int16bit >= 0x8000 ? int16bit - two16 : int16bit; +}; diff --git a/node_modules/es-abstract/2023/ToInt32.js b/node_modules/es-abstract/2023/ToInt32.js new file mode 100644 index 0000000000000000000000000000000000000000..f1317fb70bcf7c53e4c4c11d5a94e348d8171d8c --- /dev/null +++ b/node_modules/es-abstract/2023/ToInt32.js @@ -0,0 +1,23 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-toint32 + +var two31 = 0x80000000; // Math.pow(2, 31); +var two32 = 0x100000000; // Math.pow(2, 32); + +module.exports = function ToInt32(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int32bit = modulo(int, two32); + var result = int32bit >= two31 ? int32bit - two32 : int32bit; + return result === 0 ? 0 : result; // in the spec, these are math values, so we filter out -0 here +}; diff --git a/node_modules/es-abstract/2023/ToInt8.js b/node_modules/es-abstract/2023/ToInt8.js new file mode 100644 index 0000000000000000000000000000000000000000..c2bd91fa022ae1604ec87d037d4f28718a67da49 --- /dev/null +++ b/node_modules/es-abstract/2023/ToInt8.js @@ -0,0 +1,19 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-toint8 + +module.exports = function ToInt8(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int8bit = modulo(int, 0x100); + return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; +}; diff --git a/node_modules/es-abstract/2023/ToIntegerOrInfinity.js b/node_modules/es-abstract/2023/ToIntegerOrInfinity.js new file mode 100644 index 0000000000000000000000000000000000000000..425feed5421d76b210a013080d2fedb88cc4d662 --- /dev/null +++ b/node_modules/es-abstract/2023/ToIntegerOrInfinity.js @@ -0,0 +1,16 @@ +'use strict'; + +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var $isNaN = require('math-intrinsics/isNaN'); +var $isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-tointegerorinfinity + +module.exports = function ToIntegerOrInfinity(value) { + var number = ToNumber(value); + if ($isNaN(number) || number === 0) { return 0; } + if (!$isFinite(number)) { return number; } + return truncate(number); +}; diff --git a/node_modules/es-abstract/2023/ToLength.js b/node_modules/es-abstract/2023/ToLength.js new file mode 100644 index 0000000000000000000000000000000000000000..12c9aac8680d49bfe8591a9a5a4a645d6ca9d18e --- /dev/null +++ b/node_modules/es-abstract/2023/ToLength.js @@ -0,0 +1,14 @@ +'use strict'; + +var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger'); + +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); + +// https://262.ecma-international.org/12.0/#sec-tolength + +module.exports = function ToLength(argument) { + var len = ToIntegerOrInfinity(argument); + if (len <= 0) { return 0; } // includes converting -0 to +0 + if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } + return len; +}; diff --git a/node_modules/es-abstract/2023/ToNumber.js b/node_modules/es-abstract/2023/ToNumber.js new file mode 100644 index 0000000000000000000000000000000000000000..2e7dc51676b6f2dcbaead28a8b7b6a2abcb1685e --- /dev/null +++ b/node_modules/es-abstract/2023/ToNumber.js @@ -0,0 +1,26 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $Number = GetIntrinsic('%Number%'); +var isPrimitive = require('../helpers/isPrimitive'); + +var ToPrimitive = require('./ToPrimitive'); +var StringToNumber = require('./StringToNumber'); + +// https://262.ecma-international.org/13.0/#sec-tonumber + +module.exports = function ToNumber(argument) { + var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); + if (typeof value === 'symbol') { + throw new $TypeError('Cannot convert a Symbol value to a number'); + } + if (typeof value === 'bigint') { + throw new $TypeError('Conversion from \'BigInt\' to \'number\' is not allowed.'); + } + if (typeof value === 'string') { + return StringToNumber(value); + } + return +value; +}; diff --git a/node_modules/es-abstract/2023/ToNumeric.js b/node_modules/es-abstract/2023/ToNumeric.js new file mode 100644 index 0000000000000000000000000000000000000000..00a436dc0848803af47df54584e7d851dfe1b4a0 --- /dev/null +++ b/node_modules/es-abstract/2023/ToNumeric.js @@ -0,0 +1,20 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Number = GetIntrinsic('%Number%'); + +var isPrimitive = require('../helpers/isPrimitive'); + +var ToPrimitive = require('./ToPrimitive'); +var ToNumber = require('./ToNumber'); + +// https://262.ecma-international.org/11.0/#sec-tonumeric + +module.exports = function ToNumeric(argument) { + var primValue = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); + if (typeof primValue === 'bigint') { + return primValue; + } + return ToNumber(primValue); +}; diff --git a/node_modules/es-abstract/2023/ToObject.js b/node_modules/es-abstract/2023/ToObject.js new file mode 100644 index 0000000000000000000000000000000000000000..70226aaa331e7fd7aa487e680d4aca6bb6874f5b --- /dev/null +++ b/node_modules/es-abstract/2023/ToObject.js @@ -0,0 +1,5 @@ +'use strict'; + +// https://262.ecma-international.org/6.0/#sec-toobject + +module.exports = require('es-object-atoms/ToObject'); diff --git a/node_modules/es-abstract/2023/ToPrimitive.js b/node_modules/es-abstract/2023/ToPrimitive.js new file mode 100644 index 0000000000000000000000000000000000000000..56bcf1aa9eb269d753119497686556384800b092 --- /dev/null +++ b/node_modules/es-abstract/2023/ToPrimitive.js @@ -0,0 +1,12 @@ +'use strict'; + +var toPrimitive = require('es-to-primitive/es2015'); + +// https://262.ecma-international.org/6.0/#sec-toprimitive + +module.exports = function ToPrimitive(input) { + if (arguments.length > 1) { + return toPrimitive(input, arguments[1]); + } + return toPrimitive(input); +}; diff --git a/node_modules/es-abstract/2023/ToPropertyDescriptor.js b/node_modules/es-abstract/2023/ToPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..017350d593b202573a928ccefeacc7472c803a5e --- /dev/null +++ b/node_modules/es-abstract/2023/ToPropertyDescriptor.js @@ -0,0 +1,50 @@ +'use strict'; + +var hasOwn = require('hasown'); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var IsCallable = require('./IsCallable'); +var ToBoolean = require('./ToBoolean'); + +// https://262.ecma-international.org/5.1/#sec-8.10.5 + +module.exports = function ToPropertyDescriptor(Obj) { + if (!isObject(Obj)) { + throw new $TypeError('ToPropertyDescriptor requires an object'); + } + + var desc = {}; + if (hasOwn(Obj, 'enumerable')) { + desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); + } + if (hasOwn(Obj, 'configurable')) { + desc['[[Configurable]]'] = ToBoolean(Obj.configurable); + } + if (hasOwn(Obj, 'value')) { + desc['[[Value]]'] = Obj.value; + } + if (hasOwn(Obj, 'writable')) { + desc['[[Writable]]'] = ToBoolean(Obj.writable); + } + if (hasOwn(Obj, 'get')) { + var getter = Obj.get; + if (typeof getter !== 'undefined' && !IsCallable(getter)) { + throw new $TypeError('getter must be a function'); + } + desc['[[Get]]'] = getter; + } + if (hasOwn(Obj, 'set')) { + var setter = Obj.set; + if (typeof setter !== 'undefined' && !IsCallable(setter)) { + throw new $TypeError('setter must be a function'); + } + desc['[[Set]]'] = setter; + } + + if ((hasOwn(desc, '[[Get]]') || hasOwn(desc, '[[Set]]')) && (hasOwn(desc, '[[Value]]') || hasOwn(desc, '[[Writable]]'))) { + throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); + } + return desc; +}; diff --git a/node_modules/es-abstract/2023/ToPropertyKey.js b/node_modules/es-abstract/2023/ToPropertyKey.js new file mode 100644 index 0000000000000000000000000000000000000000..e363cd93b1722ddcff99896fb5667079bb95c932 --- /dev/null +++ b/node_modules/es-abstract/2023/ToPropertyKey.js @@ -0,0 +1,15 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $String = GetIntrinsic('%String%'); + +var ToPrimitive = require('./ToPrimitive'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/6.0/#sec-topropertykey + +module.exports = function ToPropertyKey(argument) { + var key = ToPrimitive(argument, $String); + return typeof key === 'symbol' ? key : ToString(key); +}; diff --git a/node_modules/es-abstract/2023/ToString.js b/node_modules/es-abstract/2023/ToString.js new file mode 100644 index 0000000000000000000000000000000000000000..16b4ccf893640ee9162ff07ad484038311e6210d --- /dev/null +++ b/node_modules/es-abstract/2023/ToString.js @@ -0,0 +1,15 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $String = GetIntrinsic('%String%'); +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/6.0/#sec-tostring + +module.exports = function ToString(argument) { + if (typeof argument === 'symbol') { + throw new $TypeError('Cannot convert a Symbol value to a string'); + } + return $String(argument); +}; diff --git a/node_modules/es-abstract/2023/ToUint16.js b/node_modules/es-abstract/2023/ToUint16.js new file mode 100644 index 0000000000000000000000000000000000000000..9e09a6c5986f42aa89de68ec64eddff522e57024 --- /dev/null +++ b/node_modules/es-abstract/2023/ToUint16.js @@ -0,0 +1,21 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-touint16 + +var two16 = 0x10000; // Math.pow(2, 16) + +module.exports = function ToUint16(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int16bit = modulo(int, two16); + return int16bit === 0 ? 0 : int16bit; // in the spec, these are math values, so we filter out -0 here +}; diff --git a/node_modules/es-abstract/2023/ToUint32.js b/node_modules/es-abstract/2023/ToUint32.js new file mode 100644 index 0000000000000000000000000000000000000000..98f7c7fb676eb8dd37dcc7e76bf5966765e32d08 --- /dev/null +++ b/node_modules/es-abstract/2023/ToUint32.js @@ -0,0 +1,21 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-touint32 + +var two32 = 0x100000000; // Math.pow(2, 32); + +module.exports = function ToUint32(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int32bit = modulo(int, two32); + return int32bit === 0 ? 0 : int32bit; // in the spec, these are math values, so we filter out -0 here +}; diff --git a/node_modules/es-abstract/2023/ToUint8.js b/node_modules/es-abstract/2023/ToUint8.js new file mode 100644 index 0000000000000000000000000000000000000000..991af3667ca7ce7cdae085c398f581b7ae641390 --- /dev/null +++ b/node_modules/es-abstract/2023/ToUint8.js @@ -0,0 +1,19 @@ +'use strict'; + +var isFinite = require('math-intrinsics/isFinite'); + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +// https://262.ecma-international.org/14.0/#sec-touint8 + +module.exports = function ToUint8(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int8bit = modulo(int, 0x100); + return int8bit; +}; diff --git a/node_modules/es-abstract/2023/ToUint8Clamp.js b/node_modules/es-abstract/2023/ToUint8Clamp.js new file mode 100644 index 0000000000000000000000000000000000000000..ac1b06e461ba4d562700971000c2d30a9b9dfca4 --- /dev/null +++ b/node_modules/es-abstract/2023/ToUint8Clamp.js @@ -0,0 +1,19 @@ +'use strict'; + +var ToNumber = require('./ToNumber'); +var floor = require('./floor'); + +var $isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/6.0/#sec-touint8clamp + +module.exports = function ToUint8Clamp(argument) { + var number = ToNumber(argument); + if ($isNaN(number) || number <= 0) { return 0; } + if (number >= 0xFF) { return 0xFF; } + var f = floor(number); + if (f + 0.5 < number) { return f + 1; } + if (number < f + 0.5) { return f; } + if (f % 2 !== 0) { return f + 1; } + return f; +}; diff --git a/node_modules/es-abstract/2023/ToZeroPaddedDecimalString.js b/node_modules/es-abstract/2023/ToZeroPaddedDecimalString.js new file mode 100644 index 0000000000000000000000000000000000000000..899863782f720219d850860c324f360d729f2fd3 --- /dev/null +++ b/node_modules/es-abstract/2023/ToZeroPaddedDecimalString.js @@ -0,0 +1,19 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $String = GetIntrinsic('%String%'); +var $RangeError = require('es-errors/range'); +var isInteger = require('math-intrinsics/isInteger'); + +var StringPad = require('./StringPad'); + +// https://262.ecma-international.org/13.0/#sec-tozeropaddeddecimalstring + +module.exports = function ToZeroPaddedDecimalString(n, minLength) { + if (!isInteger(n) || n < 0) { + throw new $RangeError('Assertion failed: `q` must be a non-negative integer'); + } + var S = $String(n); + return StringPad(S, minLength, '0', 'start'); +}; diff --git a/node_modules/es-abstract/2023/TrimString.js b/node_modules/es-abstract/2023/TrimString.js new file mode 100644 index 0000000000000000000000000000000000000000..516ef254819cc6b4d11788176a2e90b7ca18b7e4 --- /dev/null +++ b/node_modules/es-abstract/2023/TrimString.js @@ -0,0 +1,27 @@ +'use strict'; + +var trimStart = require('string.prototype.trimstart'); +var trimEnd = require('string.prototype.trimend'); + +var $TypeError = require('es-errors/type'); + +var RequireObjectCoercible = require('./RequireObjectCoercible'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/10.0/#sec-trimstring + +module.exports = function TrimString(string, where) { + var str = RequireObjectCoercible(string); + var S = ToString(str); + var T; + if (where === 'start') { + T = trimStart(S); + } else if (where === 'end') { + T = trimEnd(S); + } else if (where === 'start+end') { + T = trimStart(trimEnd(S)); + } else { + throw new $TypeError('Assertion failed: invalid `where` value; must be "start", "end", or "start+end"'); + } + return T; +}; diff --git a/node_modules/es-abstract/2023/Type.js b/node_modules/es-abstract/2023/Type.js new file mode 100644 index 0000000000000000000000000000000000000000..555ca74ea51969958716accd635da40009319542 --- /dev/null +++ b/node_modules/es-abstract/2023/Type.js @@ -0,0 +1,15 @@ +'use strict'; + +var ES5Type = require('../5/Type'); + +// https://262.ecma-international.org/11.0/#sec-ecmascript-data-types-and-values + +module.exports = function Type(x) { + if (typeof x === 'symbol') { + return 'Symbol'; + } + if (typeof x === 'bigint') { + return 'BigInt'; + } + return ES5Type(x); +}; diff --git a/node_modules/es-abstract/2023/TypedArrayCreate.js b/node_modules/es-abstract/2023/TypedArrayCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..c598dfff9fe1d42461198227a6004e0fe4512226 --- /dev/null +++ b/node_modules/es-abstract/2023/TypedArrayCreate.js @@ -0,0 +1,47 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var IsArray = require('./IsArray'); +var IsConstructor = require('./IsConstructor'); +var ValidateTypedArray = require('./ValidateTypedArray'); + +var availableTypedArrays = require('available-typed-arrays')(); +var typedArrayLength = require('typed-array-length'); + +// https://262.ecma-international.org/7.0/#typedarray-create + +module.exports = function TypedArrayCreate(constructor, argumentList) { + if (!IsConstructor(constructor)) { + throw new $TypeError('Assertion failed: `constructor` must be a constructor'); + } + if (!IsArray(argumentList)) { + throw new $TypeError('Assertion failed: `argumentList` must be a List'); + } + if (availableTypedArrays.length === 0) { + throw new $SyntaxError('Assertion failed: Typed Arrays are not supported in this environment'); + } + + // var newTypedArray = Construct(constructor, argumentList); // step 1 + var newTypedArray; + if (argumentList.length === 0) { + newTypedArray = new constructor(); + } else if (argumentList.length === 1) { + newTypedArray = new constructor(argumentList[0]); + } else if (argumentList.length === 2) { + newTypedArray = new constructor(argumentList[0], argumentList[1]); + } else { + newTypedArray = new constructor(argumentList[0], argumentList[1], argumentList[2]); + } + + ValidateTypedArray(newTypedArray); // step 2 + + if (argumentList.length === 1 && typeof argumentList[0] === 'number') { // step 3 + if (typedArrayLength(newTypedArray) < argumentList[0]) { + throw new $TypeError('Assertion failed: `argumentList[0]` must be <= `newTypedArray.length`'); // step 3.a + } + } + + return newTypedArray; // step 4 +}; diff --git a/node_modules/es-abstract/2023/TypedArrayCreateSameType.js b/node_modules/es-abstract/2023/TypedArrayCreateSameType.js new file mode 100644 index 0000000000000000000000000000000000000000..a246d8a4b4613bb5a0416372ffa8b3684c097775 --- /dev/null +++ b/node_modules/es-abstract/2023/TypedArrayCreateSameType.js @@ -0,0 +1,35 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var whichTypedArray = require('which-typed-array'); +var availableTypedArrays = require('available-typed-arrays')(); + +var IsArray = require('./IsArray'); +var TypedArrayCreate = require('./TypedArrayCreate'); + +var getConstructor = require('../helpers/typedArrayConstructors'); + +// https://262.ecma-international.org/14.0/#sec-typedarray-create-same-type + +module.exports = function TypedArrayCreateSameType(exemplar, argumentList) { + if (availableTypedArrays.length === 0) { + throw new $SyntaxError('Assertion failed: Typed Arrays are not supported in this environment'); + } + + var kind = whichTypedArray(exemplar); + if (!kind) { + throw new $TypeError('Assertion failed: exemplar must be a TypedArray'); // step 1 + } + if (!IsArray(argumentList)) { + throw new $TypeError('Assertion failed: `argumentList` must be a List'); // step 1 + } + + var constructor = getConstructor(kind); // step 2 + if (typeof constructor !== 'function') { + throw new $SyntaxError('Assertion failed: `constructor` of `exemplar` (' + kind + ') must exist. Please report this!'); + } + + return TypedArrayCreate(constructor, argumentList); // steps 3 - 6 +}; diff --git a/node_modules/es-abstract/2023/TypedArrayElementSize.js b/node_modules/es-abstract/2023/TypedArrayElementSize.js new file mode 100644 index 0000000000000000000000000000000000000000..1885af5141b51dd024c1230408987d8bf870d98d --- /dev/null +++ b/node_modules/es-abstract/2023/TypedArrayElementSize.js @@ -0,0 +1,23 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var whichTypedArray = require('which-typed-array'); + +// https://262.ecma-international.org/13.0/#sec-typedarrayelementsize + +var tableTAO = require('./tables/typed-array-objects'); + +module.exports = function TypedArrayElementSize(O) { + var type = whichTypedArray(O); + if (!type) { + throw new $TypeError('Assertion failed: `O` must be a TypedArray'); + } + var size = tableTAO.size['$' + tableTAO.name['$' + type]]; + if (!isInteger(size) || size < 0) { + throw new $SyntaxError('Assertion failed: Unknown TypedArray type `' + type + '`'); + } + + return size; +}; diff --git a/node_modules/es-abstract/2023/TypedArrayElementType.js b/node_modules/es-abstract/2023/TypedArrayElementType.js new file mode 100644 index 0000000000000000000000000000000000000000..0e9abe6a1d3807172b157a934f20fb4e8a4dca81 --- /dev/null +++ b/node_modules/es-abstract/2023/TypedArrayElementType.js @@ -0,0 +1,23 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var whichTypedArray = require('which-typed-array'); + +// https://262.ecma-international.org/13.0/#sec-typedarrayelementtype + +var tableTAO = require('./tables/typed-array-objects'); + +module.exports = function TypedArrayElementType(O) { + var type = whichTypedArray(O); + if (!type) { + throw new $TypeError('Assertion failed: `O` must be a TypedArray'); + } + var result = tableTAO.name['$' + type]; + if (typeof result !== 'string') { + throw new $SyntaxError('Assertion failed: Unknown TypedArray type `' + type + '`'); + } + + return result; +}; diff --git a/node_modules/es-abstract/2023/TypedArraySpeciesCreate.js b/node_modules/es-abstract/2023/TypedArraySpeciesCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..6c71498a052bbfc121b4887e2aa3fff5572510b2 --- /dev/null +++ b/node_modules/es-abstract/2023/TypedArraySpeciesCreate.js @@ -0,0 +1,37 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var whichTypedArray = require('which-typed-array'); +var availableTypedArrays = require('available-typed-arrays')(); + +var IsArray = require('./IsArray'); +var SpeciesConstructor = require('./SpeciesConstructor'); +var TypedArrayCreate = require('./TypedArrayCreate'); + +var getConstructor = require('../helpers/typedArrayConstructors'); + +// https://262.ecma-international.org/7.0/#typedarray-species-create + +module.exports = function TypedArraySpeciesCreate(exemplar, argumentList) { + if (availableTypedArrays.length === 0) { + throw new $SyntaxError('Assertion failed: Typed Arrays are not supported in this environment'); + } + + var kind = whichTypedArray(exemplar); + if (!kind) { + throw new $TypeError('Assertion failed: exemplar must be a TypedArray'); // step 1 + } + if (!IsArray(argumentList)) { + throw new $TypeError('Assertion failed: `argumentList` must be a List'); // step 1 + } + + var defaultConstructor = getConstructor(kind); // step 2 + if (typeof defaultConstructor !== 'function') { + throw new $SyntaxError('Assertion failed: `constructor` of `exemplar` (' + kind + ') must exist. Please report this!'); + } + var constructor = SpeciesConstructor(exemplar, defaultConstructor); // step 3 + + return TypedArrayCreate(constructor, argumentList); // step 4 +}; diff --git a/node_modules/es-abstract/2023/UTF16EncodeCodePoint.js b/node_modules/es-abstract/2023/UTF16EncodeCodePoint.js new file mode 100644 index 0000000000000000000000000000000000000000..a35458039fc824e81d2832ac91d1fdb2e67bb621 --- /dev/null +++ b/node_modules/es-abstract/2023/UTF16EncodeCodePoint.js @@ -0,0 +1,25 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); + +var floor = require('./floor'); +var modulo = require('./modulo'); + +var isCodePoint = require('../helpers/isCodePoint'); + +// https://262.ecma-international.org/12.0/#sec-utf16encoding + +module.exports = function UTF16EncodeCodePoint(cp) { + if (!isCodePoint(cp)) { + throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); + } + if (cp <= 65535) { + return $fromCharCode(cp); + } + var cu1 = $fromCharCode(floor((cp - 65536) / 1024) + 0xD800); + var cu2 = $fromCharCode(modulo(cp - 65536, 1024) + 0xDC00); + return cu1 + cu2; +}; diff --git a/node_modules/es-abstract/2023/UTF16SurrogatePairToCodePoint.js b/node_modules/es-abstract/2023/UTF16SurrogatePairToCodePoint.js new file mode 100644 index 0000000000000000000000000000000000000000..d08f7be46a27b03ae34ddb71ef37571ea8f72531 --- /dev/null +++ b/node_modules/es-abstract/2023/UTF16SurrogatePairToCodePoint.js @@ -0,0 +1,19 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); + +var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); +var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); + +// https://262.ecma-international.org/12.0/#sec-utf16decodesurrogatepair + +module.exports = function UTF16SurrogatePairToCodePoint(lead, trail) { + if (!isLeadingSurrogate(lead) || !isTrailingSurrogate(trail)) { + throw new $TypeError('Assertion failed: `lead` must be a leading surrogate char code, and `trail` must be a trailing surrogate char code'); + } + // var cp = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; + return $fromCharCode(lead) + $fromCharCode(trail); +}; diff --git a/node_modules/es-abstract/2023/UnicodeEscape.js b/node_modules/es-abstract/2023/UnicodeEscape.js new file mode 100644 index 0000000000000000000000000000000000000000..739602cc8352d251c3d89180f3042bb397dabb76 --- /dev/null +++ b/node_modules/es-abstract/2023/UnicodeEscape.js @@ -0,0 +1,25 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +var $charCodeAt = callBound('String.prototype.charCodeAt'); +var $numberToString = callBound('Number.prototype.toString'); +var $toLowerCase = callBound('String.prototype.toLowerCase'); + +var StringPad = require('./StringPad'); + +// https://262.ecma-international.org/11.0/#sec-unicodeescape + +module.exports = function UnicodeEscape(C) { + if (typeof C !== 'string' || C.length !== 1) { + throw new $TypeError('Assertion failed: `C` must be a single code unit'); + } + var n = $charCodeAt(C, 0); + if (n > 0xFFFF) { + throw new $TypeError('`Assertion failed: numeric value of `C` must be <= 0xFFFF'); + } + + return '\\u' + StringPad($toLowerCase($numberToString(n, 16)), 4, '0', 'start'); +}; diff --git a/node_modules/es-abstract/2023/ValidateAndApplyPropertyDescriptor.js b/node_modules/es-abstract/2023/ValidateAndApplyPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..6aed0594a2548a610be2a9a812760645bd13c4e2 --- /dev/null +++ b/node_modules/es-abstract/2023/ValidateAndApplyPropertyDescriptor.js @@ -0,0 +1,171 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var DefineOwnProperty = require('../helpers/DefineOwnProperty'); +var isFullyPopulatedPropertyDescriptor = require('../helpers/isFullyPopulatedPropertyDescriptor'); +var isPropertyDescriptor = require('../helpers/records/property-descriptor'); + +var FromPropertyDescriptor = require('./FromPropertyDescriptor'); +var IsAccessorDescriptor = require('./IsAccessorDescriptor'); +var IsDataDescriptor = require('./IsDataDescriptor'); +var IsGenericDescriptor = require('./IsGenericDescriptor'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var SameValue = require('./SameValue'); + +// https://262.ecma-international.org/13.0/#sec-validateandapplypropertydescriptor + +// see https://github.com/tc39/ecma262/pull/2468 for ES2022 changes + +// eslint-disable-next-line max-lines-per-function, max-statements +module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { + if (typeof O !== 'undefined' && !isObject(O)) { + throw new $TypeError('Assertion failed: O must be undefined or an Object'); + } + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P must be a Property Key'); + } + if (typeof extensible !== 'boolean') { + throw new $TypeError('Assertion failed: extensible must be a Boolean'); + } + if (!isPropertyDescriptor(Desc)) { + throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); + } + if (typeof current !== 'undefined' && !isPropertyDescriptor(current)) { + throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); + } + + if (typeof current === 'undefined') { // step 2 + if (!extensible) { + return false; // step 2.a + } + if (typeof O === 'undefined') { + return true; // step 2.b + } + if (IsAccessorDescriptor(Desc)) { // step 2.c + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + Desc + ); + } + // step 2.d + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + { + '[[Configurable]]': !!Desc['[[Configurable]]'], + '[[Enumerable]]': !!Desc['[[Enumerable]]'], + '[[Value]]': Desc['[[Value]]'], + '[[Writable]]': !!Desc['[[Writable]]'] + } + ); + } + + // 3. Assert: current is a fully populated Property Descriptor. + if ( + !isFullyPopulatedPropertyDescriptor( + { + IsAccessorDescriptor: IsAccessorDescriptor, + IsDataDescriptor: IsDataDescriptor + }, + current + ) + ) { + throw new $TypeError('`current`, when present, must be a fully populated and valid Property Descriptor'); + } + + // 4. If every field in Desc is absent, return true. + // this can't really match the assertion that it's a Property Descriptor in our JS implementation + + // 5. If current.[[Configurable]] is false, then + if (!current['[[Configurable]]']) { + if ('[[Configurable]]' in Desc && Desc['[[Configurable]]']) { + // step 5.a + return false; + } + if ('[[Enumerable]]' in Desc && !SameValue(Desc['[[Enumerable]]'], current['[[Enumerable]]'])) { + // step 5.b + return false; + } + if (!IsGenericDescriptor(Desc) && !SameValue(IsAccessorDescriptor(Desc), IsAccessorDescriptor(current))) { + // step 5.c + return false; + } + if (IsAccessorDescriptor(current)) { // step 5.d + if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { + return false; + } + if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { + return false; + } + } else if (!current['[[Writable]]']) { // step 5.e + if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { + return false; + } + if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { + return false; + } + } + } + + // 6. If O is not undefined, then + if (typeof O !== 'undefined') { + var configurable; + var enumerable; + if (IsDataDescriptor(current) && IsAccessorDescriptor(Desc)) { // step 6.a + configurable = ('[[Configurable]]' in Desc ? Desc : current)['[[Configurable]]']; + enumerable = ('[[Enumerable]]' in Desc ? Desc : current)['[[Enumerable]]']; + // Replace the property named P of object O with an accessor property having [[Configurable]] and [[Enumerable]] attributes as described by current and each other attribute set to its default value. + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + { + '[[Configurable]]': !!configurable, + '[[Enumerable]]': !!enumerable, + '[[Get]]': ('[[Get]]' in Desc ? Desc : current)['[[Get]]'], + '[[Set]]': ('[[Set]]' in Desc ? Desc : current)['[[Set]]'] + } + ); + } else if (IsAccessorDescriptor(current) && IsDataDescriptor(Desc)) { + configurable = ('[[Configurable]]' in Desc ? Desc : current)['[[Configurable]]']; + enumerable = ('[[Enumerable]]' in Desc ? Desc : current)['[[Enumerable]]']; + // i. Replace the property named P of object O with a data property having [[Configurable]] and [[Enumerable]] attributes as described by current and each other attribute set to its default value. + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + { + '[[Configurable]]': !!configurable, + '[[Enumerable]]': !!enumerable, + '[[Value]]': ('[[Value]]' in Desc ? Desc : current)['[[Value]]'], + '[[Writable]]': !!('[[Writable]]' in Desc ? Desc : current)['[[Writable]]'] + } + ); + } + + // For each field of Desc that is present, set the corresponding attribute of the property named P of object O to the value of the field. + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + Desc + ); + } + + return true; // step 7 +}; diff --git a/node_modules/es-abstract/2023/ValidateAtomicAccess.js b/node_modules/es-abstract/2023/ValidateAtomicAccess.js new file mode 100644 index 0000000000000000000000000000000000000000..d1e83a93701d36ff326ba6e0d865ecb61f433119 --- /dev/null +++ b/node_modules/es-abstract/2023/ValidateAtomicAccess.js @@ -0,0 +1,40 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); + +var ToIndex = require('./ToIndex'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); + +var isTypedArray = require('is-typed-array'); +var typedArrayByteOffset = require('typed-array-byte-offset'); +var typedArrayLength = require('typed-array-length'); + +// https://262.ecma-international.org/13.0/#sec-validateatomicaccess + +module.exports = function ValidateAtomicAccess(typedArray, requestIndex) { + if (!isTypedArray(typedArray)) { + throw new $TypeError('Assertion failed: `typedArray` must be a TypedArray'); + } + + var length = typedArrayLength(typedArray); // step 1 + + var accessIndex = ToIndex(requestIndex); // step 2 + + /* + // this assertion can never be reached + if (!(accessIndex >= 0)) { + throw new $TypeError('Assertion failed: accessIndex >= 0'); // step 4 + } + */ + + if (accessIndex >= length) { + throw new $RangeError('index out of range'); // step 4 + } + + var elementSize = TypedArrayElementSize(typedArray); // step 5 + + var offset = typedArrayByteOffset(typedArray); // step 6 + + return (accessIndex * elementSize) + offset; // step 7 +}; diff --git a/node_modules/es-abstract/2023/ValidateIntegerTypedArray.js b/node_modules/es-abstract/2023/ValidateIntegerTypedArray.js new file mode 100644 index 0000000000000000000000000000000000000000..fcce2b27c152423b62f57bf7f977ddc616878acc --- /dev/null +++ b/node_modules/es-abstract/2023/ValidateIntegerTypedArray.js @@ -0,0 +1,38 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsBigIntElementType = require('./IsBigIntElementType'); +var IsUnclampedIntegerElementType = require('./IsUnclampedIntegerElementType'); +var TypedArrayElementType = require('./TypedArrayElementType'); +var ValidateTypedArray = require('./ValidateTypedArray'); + +var whichTypedArray = require('which-typed-array'); +var typedArrayBuffer = require('typed-array-buffer'); + +// https://262.ecma-international.org/13.0/#sec-validateintegertypedarray + +module.exports = function ValidateIntegerTypedArray(typedArray) { + var waitable = arguments.length > 1 ? arguments[1] : false; // step 1 + + if (typeof waitable !== 'boolean') { + throw new $TypeError('Assertion failed: `waitable` must be a Boolean'); + } + + ValidateTypedArray(typedArray); // step 2 + var buffer = typedArrayBuffer(typedArray); // step 3 + + if (waitable) { // step 5 + var typeName = whichTypedArray(typedArray); + if (typeName !== 'Int32Array' && typeName !== 'BigInt64Array') { + throw new $TypeError('Assertion failed: `typedArray` must be an Int32Array or BigInt64Array when `waitable` is true'); // step 5.a + } + } else { + var type = TypedArrayElementType(typedArray); // step 5.a + if (!IsUnclampedIntegerElementType(type) && !IsBigIntElementType(type)) { + throw new $TypeError('Assertion failed: `typedArray` must be an integer TypedArray'); // step 5.b + } + } + + return buffer; // step 6 +}; diff --git a/node_modules/es-abstract/2023/ValidateTypedArray.js b/node_modules/es-abstract/2023/ValidateTypedArray.js new file mode 100644 index 0000000000000000000000000000000000000000..3a1efd7b33feeb82598a49e1e15ea7e6639c394c --- /dev/null +++ b/node_modules/es-abstract/2023/ValidateTypedArray.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var IsDetachedBuffer = require('./IsDetachedBuffer'); + +var isTypedArray = require('is-typed-array'); +var typedArrayBuffer = require('typed-array-buffer'); + +// https://262.ecma-international.org/13.0/#sec-validatetypedarray + +module.exports = function ValidateTypedArray(O) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: `O` must be an Object'); // step 1 + } + if (!isTypedArray(O)) { + throw new $TypeError('Assertion failed: `O` must be a Typed Array'); // steps 1 - 2 + } + + var buffer = typedArrayBuffer(O); // step 3 + + if (IsDetachedBuffer(buffer)) { + throw new $TypeError('`O` must be backed by a non-detached buffer'); // step 4 + } +}; diff --git a/node_modules/es-abstract/2023/WeakRefDeref.js b/node_modules/es-abstract/2023/WeakRefDeref.js new file mode 100644 index 0000000000000000000000000000000000000000..195b654b653be3eb14c01787a9c185e4cea2e5ac --- /dev/null +++ b/node_modules/es-abstract/2023/WeakRefDeref.js @@ -0,0 +1,23 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $TypeError = require('es-errors/type'); +var $deref = callBound('WeakRef.prototype.deref', true); + +var isWeakRef = require('is-weakref'); + +var AddToKeptObjects = require('./AddToKeptObjects'); + +// https://262.ecma-international.org/12.0/#sec-weakrefderef + +module.exports = function WeakRefDeref(weakRef) { + if (!isWeakRef(weakRef)) { + throw new $TypeError('Assertion failed: `weakRef` must be a WeakRef'); + } + var target = $deref(weakRef); + if (target) { + AddToKeptObjects(target); + } + return target; +}; diff --git a/node_modules/es-abstract/2023/WeekDay.js b/node_modules/es-abstract/2023/WeekDay.js new file mode 100644 index 0000000000000000000000000000000000000000..17cf94ca34ce0aae649c1e0236cd18f248d54e3d --- /dev/null +++ b/node_modules/es-abstract/2023/WeekDay.js @@ -0,0 +1,10 @@ +'use strict'; + +var Day = require('./Day'); +var modulo = require('./modulo'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.6 + +module.exports = function WeekDay(t) { + return modulo(Day(t) + 4, 7); +}; diff --git a/node_modules/es-abstract/2023/WordCharacters.js b/node_modules/es-abstract/2023/WordCharacters.js new file mode 100644 index 0000000000000000000000000000000000000000..488b213b05a139c789b1dd8e433da8c4e046c11f --- /dev/null +++ b/node_modules/es-abstract/2023/WordCharacters.js @@ -0,0 +1,47 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); +var $indexOf = callBound('String.prototype.indexOf'); + +var Canonicalize = require('./Canonicalize'); + +var caseFolding = require('../helpers/caseFolding.json'); +var forEach = require('../helpers/forEach'); +var isRegExpRecord = require('../helpers/records/regexp-record'); +var OwnPropertyKeys = require('own-keys'); + +var basicWordChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'; // step 1 + +// https://262.ecma-international.org/14.0/#sec-runtime-semantics-wordcharacters-abstract-operation + +module.exports = function WordCharacters(rer) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + + var extraWordChars = ''; + forEach(OwnPropertyKeys(caseFolding.C), function (c) { + if ( + $indexOf(basicWordChars, c) === -1 // c not in A + && $indexOf(basicWordChars, Canonicalize(rer, c)) > -1 // canonicalized c IS in A + ) { + extraWordChars += caseFolding.C[c]; // step 3 + } + }); + forEach(OwnPropertyKeys(caseFolding.S), function (c) { + if ( + $indexOf(basicWordChars, c) === -1 // c not in A + && $indexOf(basicWordChars, Canonicalize(rer, c)) > -1 // canonicalized c IS in A + ) { + extraWordChars += caseFolding.S[c]; // step 3 + } + }); + + if ((!rer['[[Unicode]]'] || !rer['[[IgnoreCase]]']) && extraWordChars.length > 0) { + throw new $TypeError('Assertion failed: `extraWordChars` must be empty when `rer.[[IgnoreCase]]` and `rer.[[Unicode]]` are not both true'); // step 3 + } + + return basicWordChars + extraWordChars; // step 4 +}; diff --git a/node_modules/es-abstract/2023/YearFromTime.js b/node_modules/es-abstract/2023/YearFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..18958182021b0ecc71645057fe8ed826ef786586 --- /dev/null +++ b/node_modules/es-abstract/2023/YearFromTime.js @@ -0,0 +1,16 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Date = GetIntrinsic('%Date%'); + +var callBound = require('call-bound'); + +var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.3 + +module.exports = function YearFromTime(t) { + // largest y such that this.TimeFromYear(y) <= t + return $getUTCFullYear(new $Date(t)); +}; diff --git a/node_modules/es-abstract/2023/abs.js b/node_modules/es-abstract/2023/abs.js new file mode 100644 index 0000000000000000000000000000000000000000..457f2a4a3d48f83c061c763cd26724fd8d4297f3 --- /dev/null +++ b/node_modules/es-abstract/2023/abs.js @@ -0,0 +1,9 @@ +'use strict'; + +var $abs = require('math-intrinsics/abs'); + +// https://262.ecma-international.org/11.0/#eqn-abs + +module.exports = function abs(x) { + return typeof x === 'bigint' ? BigInt($abs(Number(x))) : $abs(x); +}; diff --git a/node_modules/es-abstract/2023/clamp.js b/node_modules/es-abstract/2023/clamp.js new file mode 100644 index 0000000000000000000000000000000000000000..3fda648424302a451ffa63433b7f7933dcc6d13e --- /dev/null +++ b/node_modules/es-abstract/2023/clamp.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var max = require('math-intrinsics/max'); +var min = require('math-intrinsics/min'); + +// https://262.ecma-international.org/12.0/#clamping + +module.exports = function clamp(x, lower, upper) { + if (typeof x !== 'number' || typeof lower !== 'number' || typeof upper !== 'number' || !(lower <= upper)) { + throw new $TypeError('Assertion failed: all three arguments must be MVs, and `lower` must be `<= upper`'); + } + return min(max(lower, x), upper); +}; diff --git a/node_modules/es-abstract/2023/floor.js b/node_modules/es-abstract/2023/floor.js new file mode 100644 index 0000000000000000000000000000000000000000..eece19b5cbf2bd71a7655ea6d2f329cc8cd1a11d --- /dev/null +++ b/node_modules/es-abstract/2023/floor.js @@ -0,0 +1,14 @@ +'use strict'; + +// var modulo = require('./modulo'); +var $floor = require('math-intrinsics/floor'); + +// http://262.ecma-international.org/11.0/#eqn-floor + +module.exports = function floor(x) { + // return x - modulo(x, 1); + if (typeof x === 'bigint') { + return x; + } + return $floor(x); +}; diff --git a/node_modules/es-abstract/2023/max.js b/node_modules/es-abstract/2023/max.js new file mode 100644 index 0000000000000000000000000000000000000000..f83b038a221fed3a500c72b41f5fdc31e1100827 --- /dev/null +++ b/node_modules/es-abstract/2023/max.js @@ -0,0 +1,5 @@ +'use strict'; + +// https://262.ecma-international.org/6.0/#sec-algorithm-conventions + +module.exports = require('math-intrinsics/max'); diff --git a/node_modules/es-abstract/2023/min.js b/node_modules/es-abstract/2023/min.js new file mode 100644 index 0000000000000000000000000000000000000000..3a8f50539f0a6519251299edf4169f98a6db0bd9 --- /dev/null +++ b/node_modules/es-abstract/2023/min.js @@ -0,0 +1,5 @@ +'use strict'; + +// https://262.ecma-international.org/6.0/#sec-algorithm-conventions + +module.exports = require('math-intrinsics/min'); diff --git a/node_modules/es-abstract/2023/modulo.js b/node_modules/es-abstract/2023/modulo.js new file mode 100644 index 0000000000000000000000000000000000000000..b94bb52bb3c62e45629a4b1e8f0ebba219d5e41e --- /dev/null +++ b/node_modules/es-abstract/2023/modulo.js @@ -0,0 +1,9 @@ +'use strict'; + +var mod = require('../helpers/mod'); + +// https://262.ecma-international.org/5.1/#sec-5.2 + +module.exports = function modulo(x, y) { + return mod(x, y); +}; diff --git a/node_modules/es-abstract/2023/msFromTime.js b/node_modules/es-abstract/2023/msFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..a6bae767aed31c8a467b8ea1fb2128e64860a972 --- /dev/null +++ b/node_modules/es-abstract/2023/msFromTime.js @@ -0,0 +1,11 @@ +'use strict'; + +var modulo = require('./modulo'); + +var msPerSecond = require('../helpers/timeConstants').msPerSecond; + +// https://262.ecma-international.org/5.1/#sec-15.9.1.10 + +module.exports = function msFromTime(t) { + return modulo(t, msPerSecond); +}; diff --git a/node_modules/es-abstract/2023/substring.js b/node_modules/es-abstract/2023/substring.js new file mode 100644 index 0000000000000000000000000000000000000000..75fbf10e9c5e754041b8b0b509cc61f56b289fe3 --- /dev/null +++ b/node_modules/es-abstract/2023/substring.js @@ -0,0 +1,15 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var callBound = require('call-bound'); + +var $slice = callBound('String.prototype.slice'); + +// https://262.ecma-international.org/12.0/#substring +module.exports = function substring(S, inclusiveStart, exclusiveEnd) { + if (typeof S !== 'string' || !isInteger(inclusiveStart) || (arguments.length > 2 && !isInteger(exclusiveEnd))) { + throw new $TypeError('`S` must be a String, and `inclusiveStart` and `exclusiveEnd` must be integers'); + } + return $slice(S, inclusiveStart, arguments.length > 2 ? exclusiveEnd : S.length); +}; diff --git a/node_modules/es-abstract/2023/tables/typed-array-objects.js b/node_modules/es-abstract/2023/tables/typed-array-objects.js new file mode 100644 index 0000000000000000000000000000000000000000..8d6c70aba3046702ccb796ad62eb46fc99e038ef --- /dev/null +++ b/node_modules/es-abstract/2023/tables/typed-array-objects.js @@ -0,0 +1,36 @@ +'use strict'; + +// https://262.ecma-international.org/11.0/#table-the-typedarray-constructors + +module.exports = { + __proto__: null, + name: { + __proto__: null, + $Int8Array: 'Int8', + $Uint8Array: 'Uint8', + $Uint8ClampedArray: 'Uint8C', + $Int16Array: 'Int16', + $Uint16Array: 'Uint16', + $Int32Array: 'Int32', + $Uint32Array: 'Uint32', + $BigInt64Array: 'BigInt64', + $BigUint64Array: 'BigUint64', + $Float32Array: 'Float32', + $Float64Array: 'Float64' + }, + size: { + __proto__: null, + $Int8: 1, + $Uint8: 1, + $Uint8C: 1, + $Int16: 2, + $Uint16: 2, + $Int32: 4, + $Uint32: 4, + $BigInt64: 8, + $BigUint64: 8, + $Float32: 4, + $Float64: 8 + }, + choices: '"Int8", "Uint8", "Uint8C", "Int16", "Uint16", "Int32", "Uint32", "BigInt64", "BigUint64", "Float32", or "Float64"' +}; diff --git a/node_modules/es-abstract/2023/thisBigIntValue.js b/node_modules/es-abstract/2023/thisBigIntValue.js new file mode 100644 index 0000000000000000000000000000000000000000..ad281d3d0115e46f8e8accfeac1864be7dfdd459 --- /dev/null +++ b/node_modules/es-abstract/2023/thisBigIntValue.js @@ -0,0 +1,18 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $SyntaxError = require('es-errors/syntax'); +var $bigIntValueOf = callBound('BigInt.prototype.valueOf', true); + +// https://262.ecma-international.org/11.0/#sec-thisbigintvalue + +module.exports = function thisBigIntValue(value) { + if (typeof value === 'bigint') { + return value; + } + if (!$bigIntValueOf) { + throw new $SyntaxError('BigInt is not supported'); + } + return $bigIntValueOf(value); +}; diff --git a/node_modules/es-abstract/2023/thisBooleanValue.js b/node_modules/es-abstract/2023/thisBooleanValue.js new file mode 100644 index 0000000000000000000000000000000000000000..265fff335bed60f2a636b2fa3bf2ac113b896ff7 --- /dev/null +++ b/node_modules/es-abstract/2023/thisBooleanValue.js @@ -0,0 +1,13 @@ +'use strict'; + +var $BooleanValueOf = require('call-bound')('Boolean.prototype.valueOf'); + +// https://262.ecma-international.org/6.0/#sec-properties-of-the-boolean-prototype-object + +module.exports = function thisBooleanValue(value) { + if (typeof value === 'boolean') { + return value; + } + + return $BooleanValueOf(value); +}; diff --git a/node_modules/es-abstract/2023/thisNumberValue.js b/node_modules/es-abstract/2023/thisNumberValue.js new file mode 100644 index 0000000000000000000000000000000000000000..e2457fb3f076d4f8c500d7f5ce7b19ff4846cf2d --- /dev/null +++ b/node_modules/es-abstract/2023/thisNumberValue.js @@ -0,0 +1,16 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $NumberValueOf = callBound('Number.prototype.valueOf'); + +// https://262.ecma-international.org/6.0/#sec-properties-of-the-number-prototype-object + +module.exports = function thisNumberValue(value) { + if (typeof value === 'number') { + return value; + } + + return $NumberValueOf(value); +}; + diff --git a/node_modules/es-abstract/2023/thisStringValue.js b/node_modules/es-abstract/2023/thisStringValue.js new file mode 100644 index 0000000000000000000000000000000000000000..a5c70534670cd719ca425055d597ac6b5f5994c2 --- /dev/null +++ b/node_modules/es-abstract/2023/thisStringValue.js @@ -0,0 +1,13 @@ +'use strict'; + +var $StringValueOf = require('call-bound')('String.prototype.valueOf'); + +// https://262.ecma-international.org/6.0/#sec-properties-of-the-string-prototype-object + +module.exports = function thisStringValue(value) { + if (typeof value === 'string') { + return value; + } + + return $StringValueOf(value); +}; diff --git a/node_modules/es-abstract/2023/thisSymbolValue.js b/node_modules/es-abstract/2023/thisSymbolValue.js new file mode 100644 index 0000000000000000000000000000000000000000..77342ad16a77128cddbb7c79e9eb576bbe6b126c --- /dev/null +++ b/node_modules/es-abstract/2023/thisSymbolValue.js @@ -0,0 +1,20 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var callBound = require('call-bound'); + +var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true); + +// https://262.ecma-international.org/9.0/#sec-thissymbolvalue + +module.exports = function thisSymbolValue(value) { + if (typeof value === 'symbol') { + return value; + } + + if (!$SymbolValueOf) { + throw new $SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object'); + } + + return $SymbolValueOf(value); +}; diff --git a/node_modules/es-abstract/2023/thisTimeValue.js b/node_modules/es-abstract/2023/thisTimeValue.js new file mode 100644 index 0000000000000000000000000000000000000000..f64be83fcaed6a3766a1397c1c373981c0543b1a --- /dev/null +++ b/node_modules/es-abstract/2023/thisTimeValue.js @@ -0,0 +1,9 @@ +'use strict'; + +var timeValue = require('../helpers/timeValue'); + +// https://262.ecma-international.org/6.0/#sec-properties-of-the-date-prototype-object + +module.exports = function thisTimeValue(value) { + return timeValue(value); +}; diff --git a/node_modules/es-abstract/2023/truncate.js b/node_modules/es-abstract/2023/truncate.js new file mode 100644 index 0000000000000000000000000000000000000000..aca9303095cc72650baca6857793ecd3c5265869 --- /dev/null +++ b/node_modules/es-abstract/2023/truncate.js @@ -0,0 +1,15 @@ +'use strict'; + +var floor = require('./floor'); + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/14.0/#eqn-truncate + +module.exports = function truncate(x) { + if (typeof x !== 'number' && typeof x !== 'bigint') { + throw new $TypeError('argument must be a Number or a BigInt'); + } + var result = x < 0 ? -floor(-x) : floor(x); + return result === 0 ? 0 : result; // in the spec, these are math values, so we filter out -0 here +}; diff --git a/node_modules/es-abstract/2024/AddEntriesFromIterable.js b/node_modules/es-abstract/2024/AddEntriesFromIterable.js new file mode 100644 index 0000000000000000000000000000000000000000..04185a0e94f9bf16f1774ce27d115d67e59a6c04 --- /dev/null +++ b/node_modules/es-abstract/2024/AddEntriesFromIterable.js @@ -0,0 +1,44 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var inspect = require('object-inspect'); + +var Call = require('./Call'); +var Get = require('./Get'); +var GetIterator = require('./GetIterator'); +var IsCallable = require('./IsCallable'); +var IteratorClose = require('./IteratorClose'); +var IteratorStep = require('./IteratorStep'); +var IteratorValue = require('./IteratorValue'); +var ThrowCompletion = require('./ThrowCompletion'); + +// https://262.ecma-international.org/15.0/#sec-add-entries-from-iterable + +module.exports = function AddEntriesFromIterable(target, iterable, adder) { + if (!IsCallable(adder)) { + throw new $TypeError('Assertion failed: `adder` is not callable'); + } + if (iterable == null) { + throw new $TypeError('Assertion failed: `iterable` is present, and not nullish'); + } + var iteratorRecord = GetIterator(iterable, 'SYNC'); + while (true) { + var next = IteratorStep(iteratorRecord); + if (!next) { + return target; + } + var nextItem = IteratorValue(next); + if (!isObject(nextItem)) { + var error = ThrowCompletion(new $TypeError('iterator next must return an Object, got ' + inspect(nextItem))); + return IteratorClose(iteratorRecord, error); + } + try { + var k = Get(nextItem, '0'); + var v = Get(nextItem, '1'); + Call(adder, target, [k, v]); + } catch (e) { + return IteratorClose(iteratorRecord, ThrowCompletion(e)); + } + } +}; diff --git a/node_modules/es-abstract/2024/AddToKeptObjects.js b/node_modules/es-abstract/2024/AddToKeptObjects.js new file mode 100644 index 0000000000000000000000000000000000000000..cce51955a6db7899e1be22e5077fb91d4f658600 --- /dev/null +++ b/node_modules/es-abstract/2024/AddToKeptObjects.js @@ -0,0 +1,18 @@ +'use strict'; + +var SLOT = require('internal-slot'); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var ClearKeptObjects = require('./ClearKeptObjects'); + +// https://262.ecma-international.org/12.0/#sec-addtokeptobjects + +module.exports = function AddToKeptObjects(object) { + if (!isObject(object)) { + throw new $TypeError('Assertion failed: `object` must be an Object'); + } + var arr = SLOT.get(ClearKeptObjects, '[[es-abstract internal: KeptAlive]]'); + arr[arr.length] = object; +}; diff --git a/node_modules/es-abstract/2024/AddValueToKeyedGroup.js b/node_modules/es-abstract/2024/AddValueToKeyedGroup.js new file mode 100644 index 0000000000000000000000000000000000000000..79338e843cf0433b7e930c71fc66a99c9844eb90 --- /dev/null +++ b/node_modules/es-abstract/2024/AddValueToKeyedGroup.js @@ -0,0 +1,45 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var SameValue = require('./SameValue'); + +var IsArray = require('../helpers/IsArray'); +var every = require('../helpers/every'); +var forEach = require('../helpers/forEach'); + +var hasOwn = require('hasown'); + +var isKeyedGroup = function (group) { + return hasOwn(group, '[[Key]]') + && hasOwn(group, '[[Elements]]') + && IsArray(group['[[Elements]]']); +}; + +// https://262.ecma-international.org/15.0/#sec-add-value-to-keyed-group + +module.exports = function AddValueToKeyedGroup(groups, key, value) { + if (!IsArray(groups) || (groups.length > 0 && !every(groups, isKeyedGroup))) { + throw new $TypeError('Assertion failed: `groups` must be a List of Records with [[Key]] and [[Elements]]'); + } + + var matched = 0; + forEach(groups, function (g) { // step 1 + if (SameValue(g['[[Key]]'], key)) { // step 2 + matched += 1; + if (matched > 1) { + throw new $TypeError('Assertion failed: Exactly one element of groups meets this criterion'); // step 2.a + } + + var arr = g['[[Elements]]']; + arr[arr.length] = value; // step 2.b + } + }); + + if (matched === 0) { + var group = { '[[Key]]': key, '[[Elements]]': [value] }; // step 2 + + // eslint-disable-next-line no-param-reassign + groups[groups.length] = group; // step 3 + } +}; diff --git a/node_modules/es-abstract/2024/AdvanceStringIndex.js b/node_modules/es-abstract/2024/AdvanceStringIndex.js new file mode 100644 index 0000000000000000000000000000000000000000..370917df9dfff158449f930ef7d03643ee38982d --- /dev/null +++ b/node_modules/es-abstract/2024/AdvanceStringIndex.js @@ -0,0 +1,30 @@ +'use strict'; + +var CodePointAt = require('./CodePointAt'); + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger'); + +// https://262.ecma-international.org/12.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 cp = CodePointAt(S, index); + return index + cp['[[CodeUnitCount]]']; +}; diff --git a/node_modules/es-abstract/2024/AllCharacters.js b/node_modules/es-abstract/2024/AllCharacters.js new file mode 100644 index 0000000000000000000000000000000000000000..2d1ba544584a1c06bc9f0d0f4ca25404f007d1f8 --- /dev/null +++ b/node_modules/es-abstract/2024/AllCharacters.js @@ -0,0 +1,29 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var HasEitherUnicodeFlag = require('./HasEitherUnicodeFlag'); + +var isRegExpRecord = require('../helpers/records/regexp-record'); + +var CharSet = require('../helpers/CharSet'); + +// https://262.ecma-international.org/15.0/#sec-allcharacters + +module.exports = function AllCharacters(rer) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + + if (rer['[[UnicodeSets]]'] && rer['[[IgnoreCase]]']) { // step 1 + // 1. Return the CharSet containing all Unicode code points _c_ that do not have a Simple Case Folding mapping (that is, scf(_c_)=_c_). + return CharSet.getNonSimpleCaseFoldingCodePoints(); // step 1.a + } else if (HasEitherUnicodeFlag(rer)) { // step 2 + // 1. Return the CharSet containing all code point values. + return CharSet.getCodePoints(); // step 3.a + // eslint-disable-next-line no-else-return + } else { // step 3 + // 1. Return the CharSet containing all code unit values. + return CharSet.getCodeUnits(); // step 3.a + } +}; diff --git a/node_modules/es-abstract/2024/ApplyStringOrNumericBinaryOperator.js b/node_modules/es-abstract/2024/ApplyStringOrNumericBinaryOperator.js new file mode 100644 index 0000000000000000000000000000000000000000..e65b6b2e79c756dcf2e533624ec8152e8dbfc161 --- /dev/null +++ b/node_modules/es-abstract/2024/ApplyStringOrNumericBinaryOperator.js @@ -0,0 +1,77 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var HasOwnProperty = require('./HasOwnProperty'); +var ToNumeric = require('./ToNumeric'); +var ToPrimitive = require('./ToPrimitive'); +var ToString = require('./ToString'); +var Type = require('./Type'); + +var NumberAdd = require('./Number/add'); +var NumberBitwiseAND = require('./Number/bitwiseAND'); +var NumberBitwiseOR = require('./Number/bitwiseOR'); +var NumberBitwiseXOR = require('./Number/bitwiseXOR'); +var NumberDivide = require('./Number/divide'); +var NumberExponentiate = require('./Number/exponentiate'); +var NumberLeftShift = require('./Number/leftShift'); +var NumberMultiply = require('./Number/multiply'); +var NumberRemainder = require('./Number/remainder'); +var NumberSignedRightShift = require('./Number/signedRightShift'); +var NumberSubtract = require('./Number/subtract'); +var NumberUnsignedRightShift = require('./Number/unsignedRightShift'); +var BigIntAdd = require('./BigInt/add'); +var BigIntBitwiseAND = require('./BigInt/bitwiseAND'); +var BigIntBitwiseOR = require('./BigInt/bitwiseOR'); +var BigIntBitwiseXOR = require('./BigInt/bitwiseXOR'); +var BigIntDivide = require('./BigInt/divide'); +var BigIntExponentiate = require('./BigInt/exponentiate'); +var BigIntLeftShift = require('./BigInt/leftShift'); +var BigIntMultiply = require('./BigInt/multiply'); +var BigIntRemainder = require('./BigInt/remainder'); +var BigIntSignedRightShift = require('./BigInt/signedRightShift'); +var BigIntSubtract = require('./BigInt/subtract'); +var BigIntUnsignedRightShift = require('./BigInt/unsignedRightShift'); + +// https://262.ecma-international.org/12.0/#sec-applystringornumericbinaryoperator + +// https://262.ecma-international.org/12.0/#step-applystringornumericbinaryoperator-operations-table +var table = { + '**': [NumberExponentiate, BigIntExponentiate], + '*': [NumberMultiply, BigIntMultiply], + '/': [NumberDivide, BigIntDivide], + '%': [NumberRemainder, BigIntRemainder], + '+': [NumberAdd, BigIntAdd], + '-': [NumberSubtract, BigIntSubtract], + '<<': [NumberLeftShift, BigIntLeftShift], + '>>': [NumberSignedRightShift, BigIntSignedRightShift], + '>>>': [NumberUnsignedRightShift, BigIntUnsignedRightShift], + '&': [NumberBitwiseAND, BigIntBitwiseAND], + '^': [NumberBitwiseXOR, BigIntBitwiseXOR], + '|': [NumberBitwiseOR, BigIntBitwiseOR] +}; + +module.exports = function ApplyStringOrNumericBinaryOperator(lval, opText, rval) { + if (typeof opText !== 'string' || !HasOwnProperty(table, opText)) { + throw new $TypeError('Assertion failed: `opText` must be a valid operation string'); + } + if (opText === '+') { + var lprim = ToPrimitive(lval); + var rprim = ToPrimitive(rval); + if (typeof lprim === 'string' || typeof rprim === 'string') { + var lstr = ToString(lprim); + var rstr = ToString(rprim); + return lstr + rstr; + } + /* eslint no-param-reassign: 1 */ + lval = lprim; + rval = rprim; + } + var lnum = ToNumeric(lval); + var rnum = ToNumeric(rval); + if (Type(lnum) !== Type(rnum)) { + throw new $TypeError('types of ' + lnum + ' and ' + rnum + ' differ'); + } + var Operation = table[opText][typeof lnum === 'bigint' ? 1 : 0]; + return Operation(lnum, rnum); +}; diff --git a/node_modules/es-abstract/2024/ArrayBufferByteLength.js b/node_modules/es-abstract/2024/ArrayBufferByteLength.js new file mode 100644 index 0000000000000000000000000000000000000000..c37871a6a788e4d48595e281fb9025adda6f302d --- /dev/null +++ b/node_modules/es-abstract/2024/ArrayBufferByteLength.js @@ -0,0 +1,41 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/15.0/#sec-arraybufferbytelength + +var IsDetachedBuffer = require('./IsDetachedBuffer'); + +var isArrayBuffer = require('is-array-buffer'); +var isSharedArrayBuffer = require('is-shared-array-buffer'); +var arrayBufferByteLength = require('array-buffer-byte-length'); + +var callBound = require('call-bound'); +var $sabByteLength = callBound('SharedArrayBuffer.prototype.byteLength', true); + +var isGrowable = false; // TODO: support this + +module.exports = function ArrayBufferByteLength(arrayBuffer, order) { + var isSAB = isSharedArrayBuffer(arrayBuffer); + if (!isArrayBuffer(arrayBuffer) && !isSAB) { + throw new $TypeError('Assertion failed: `arrayBuffer` must be an ArrayBuffer or a SharedArrayBuffer'); + } + if (order !== 'SEQ-CST' && order !== 'UNORDERED') { + throw new $TypeError('Assertion failed: `order` must be ~SEQ-CST~ or ~UNORDERED~'); + } + + // 1. If IsSharedArrayBuffer(arrayBuffer) is true and arrayBuffer has an [[ArrayBufferByteLengthData]] internal slot, then + // TODO: see if IsFixedLengthArrayBuffer can be used here in the spec instead + if (isSAB && isGrowable) { // step 1 + // a. Let bufferByteLengthBlock be arrayBuffer.[[ArrayBufferByteLengthData]]. + // b. Let rawLength be GetRawBytesFromSharedBlock(bufferByteLengthBlock, 0, BIGUINT64, true, order). + // c. Let isLittleEndian be the value of the [[LittleEndian]] field of the surrounding agent's Agent Record. + // d. Return ℝ(RawBytesToNumeric(BIGUINT64, rawLength, isLittleEndian)). + } + + if (IsDetachedBuffer(arrayBuffer)) { + throw new $TypeError('Assertion failed: `arrayBuffer` must not be detached'); // step 2 + } + + return isSAB ? $sabByteLength(arrayBuffer) : arrayBufferByteLength(arrayBuffer); +}; diff --git a/node_modules/es-abstract/2024/ArrayBufferCopyAndDetach.js b/node_modules/es-abstract/2024/ArrayBufferCopyAndDetach.js new file mode 100644 index 0000000000000000000000000000000000000000..b3595cb4e8d72658306d501945a503957976a231 --- /dev/null +++ b/node_modules/es-abstract/2024/ArrayBufferCopyAndDetach.js @@ -0,0 +1,101 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var min = require('math-intrinsics/min'); +var $TypeError = require('es-errors/type'); +var $ArrayBuffer = GetIntrinsic('%ArrayBuffer%', true); +var $Uint8Array = GetIntrinsic('%Uint8Array%', true); + +var callBound = require('call-bound'); + +var byteLength = require('array-buffer-byte-length'); +var $maxByteLength = callBound('%ArrayBuffer.prototype.maxByteLength%', true); +var copy = function copyAB(src, start, end) { + var that = new $Uint8Array(src); + if (typeof end === 'undefined') { + end = that.length; // eslint-disable-line no-param-reassign + } + var result = new $ArrayBuffer(end - start); + var resultArray = new $Uint8Array(result); + for (var i = 0; i < resultArray.length; i++) { + resultArray[i] = that[i + start]; + } + return result; +}; +var $abSlice = callBound('%ArrayBuffer.prototype.slice%', true) + || function slice(ab, a, b) { // in node < 0.11, slice is an own nonconfigurable property + return ab.slice ? ab.slice(a, b) : copy(ab, a, b); // node 0.8 lacks `slice` + }; + +var DetachArrayBuffer = require('./DetachArrayBuffer'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); +var ToIndex = require('./ToIndex'); + +var isArrayBuffer = require('is-array-buffer'); +var isSharedArrayBuffer = require('is-shared-array-buffer'); + +// https://262.ecma-international.org/15.0/#sec-arraybuffercopyanddetach + +module.exports = function ArrayBufferCopyAndDetach(arrayBuffer, newLength, preserveResizability) { + if (preserveResizability !== 'PRESERVE-RESIZABILITY' && preserveResizability !== 'FIXED-LENGTH') { + throw new $TypeError('`preserveResizability` must be ~PRESERVE-RESIZABILITY~ or ~FIXED-LENGTH~'); + } + + if (!isArrayBuffer(arrayBuffer) || isSharedArrayBuffer(arrayBuffer)) { + throw new $TypeError('`arrayBuffer` must be a non-shared ArrayBuffer'); // steps 1 - 2 + } + + var abByteLength; + + var newByteLength; + if (typeof newLength === 'undefined') { // step 3 + newByteLength = byteLength(arrayBuffer); // step 3.a + abByteLength = newByteLength; + } else { // step 4 + newByteLength = ToIndex(newLength); // step 4.a + } + + if (IsDetachedBuffer(arrayBuffer)) { + throw new $TypeError('`arrayBuffer` must not be detached'); // step 5 + } + + var newMaxByteLength; + if (preserveResizability === 'PRESERVE-RESIZABILITY' && !IsFixedLengthArrayBuffer(arrayBuffer)) { // step 6 + newMaxByteLength = $maxByteLength(arrayBuffer); // step 6.a + } else { // step 7 + newMaxByteLength = 'EMPTY'; // step 7.a + } + + // commented out since there's no way to set or access this key + + // 8. If arrayBuffer.[[ArrayBufferDetachKey]] is not undefined, throw a TypeError exception. + + // 9. Let newBuffer be ? AllocateArrayBuffer(%ArrayBuffer%, newByteLength, newMaxByteLength). + var newBuffer = newMaxByteLength === 'EMPTY' ? new $ArrayBuffer(newByteLength) : new $ArrayBuffer(newByteLength, { maxByteLength: newMaxByteLength }); + + if (typeof abByteLength !== 'number') { + abByteLength = byteLength(arrayBuffer); + } + var copyLength = min(newByteLength, abByteLength); // step 10 + if (newByteLength > copyLength || newMaxByteLength !== 'EMPTY') { + var taNew = new $Uint8Array(newBuffer); + var taOld = new $Uint8Array(arrayBuffer); + for (var i = 0; i < copyLength; i++) { + taNew[i] = taOld[i]; + } + } else { + newBuffer = $abSlice(arrayBuffer, 0, copyLength); // ? optimization for when the new buffer will not be larger than the old one + } + /* + 11. Let fromBlock be arrayBuffer.[[ArrayBufferData]]. + 12. Let toBlock be newBuffer.[[ArrayBufferData]]. + 13. Perform CopyDataBlockBytes(toBlock, 0, fromBlock, 0, copyLength). + 14. NOTE: Neither creation of the new Data Block nor copying from the old Data Block are observable. Implementations may implement this method as a zero-copy move or a realloc. + */ + + DetachArrayBuffer(arrayBuffer); // step 15 + + return newBuffer; // step 16 +}; diff --git a/node_modules/es-abstract/2024/ArrayCreate.js b/node_modules/es-abstract/2024/ArrayCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..568632b8a6d2ef76124399192dee465859e0ed1b --- /dev/null +++ b/node_modules/es-abstract/2024/ArrayCreate.js @@ -0,0 +1,42 @@ +'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('math-intrinsics/isInteger'); +var MAX_ARRAY_LENGTH = require('math-intrinsics/constants/maxArrayLength'); +var $setProto = require('set-proto'); + +// https://262.ecma-international.org/12.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 3, 5 + if (proto !== $ArrayPrototype) { // step 4 + 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 6 + A.length = length; + } + /* step 6, the above as a shortcut for the below + OrdinaryDefineOwnProperty(A, 'length', { + '[[Configurable]]': false, + '[[Enumerable]]': false, + '[[Value]]': length, + '[[Writable]]': true + }); + */ + return A; +}; diff --git a/node_modules/es-abstract/2024/ArraySetLength.js b/node_modules/es-abstract/2024/ArraySetLength.js new file mode 100644 index 0000000000000000000000000000000000000000..7f7a4339c2af5c8656165189f47c4212732ee1bd --- /dev/null +++ b/node_modules/es-abstract/2024/ArraySetLength.js @@ -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; +}; diff --git a/node_modules/es-abstract/2024/ArraySpeciesCreate.js b/node_modules/es-abstract/2024/ArraySpeciesCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..2589c90787151d6dd4534c32499a6906b982c505 --- /dev/null +++ b/node_modules/es-abstract/2024/ArraySpeciesCreate.js @@ -0,0 +1,48 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $species = GetIntrinsic('%Symbol.species%', true); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var isObject = require('es-object-atoms/isObject'); + +var ArrayCreate = require('./ArrayCreate'); +var Get = require('./Get'); +var IsArray = require('./IsArray'); +var IsConstructor = require('./IsConstructor'); + +// https://262.ecma-international.org/12.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 isArray = IsArray(originalArray); + if (!isArray) { + return ArrayCreate(length); + } + + var 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 && isObject(C)) { + C = Get(C, $species); + if (C === null) { + C = void 0; + } + } + + if (typeof C === 'undefined') { + return ArrayCreate(length); + } + if (!IsConstructor(C)) { + throw new $TypeError('C must be a constructor'); + } + return new C(length); // Construct(C, length); +}; + diff --git a/node_modules/es-abstract/2024/AsyncFromSyncIteratorContinuation.js b/node_modules/es-abstract/2024/AsyncFromSyncIteratorContinuation.js new file mode 100644 index 0000000000000000000000000000000000000000..d545b6bfc70974e44350f20e4ec28812d9cbf9e2 --- /dev/null +++ b/node_modules/es-abstract/2024/AsyncFromSyncIteratorContinuation.js @@ -0,0 +1,45 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $Promise = GetIntrinsic('%Promise%', true); + +var callBound = require('call-bound'); + +var CreateIterResultObject = require('./CreateIterResultObject'); +var IteratorComplete = require('./IteratorComplete'); +var IteratorValue = require('./IteratorValue'); +var PromiseResolve = require('./PromiseResolve'); + +var $then = callBound('Promise.prototype.then', true); + +// https://262.ecma-international.org/10.0/#sec-asyncfromsynciteratorcontinuation + +module.exports = function AsyncFromSyncIteratorContinuation(result) { + if (!isObject(result)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + + if (arguments.length > 1) { + throw new $SyntaxError('although AsyncFromSyncIteratorContinuation should take a second argument, it is not used in this implementation'); + } + + if (!$Promise) { + throw new $SyntaxError('This environment does not support Promises.'); + } + + return new $Promise(function (resolve) { + var done = IteratorComplete(result); // step 2 + var value = IteratorValue(result); // step 4 + var valueWrapper = PromiseResolve($Promise, value); // step 6 + + // eslint-disable-next-line no-shadow + var onFulfilled = function (value) { // steps 8-9 + return CreateIterResultObject(value, done); // step 8.a + }; + resolve($then(valueWrapper, onFulfilled)); // step 11 + }); // step 12 +}; diff --git a/node_modules/es-abstract/2024/AsyncIteratorClose.js b/node_modules/es-abstract/2024/AsyncIteratorClose.js new file mode 100644 index 0000000000000000000000000000000000000000..370501c10963736283afd3637c844ec97d04e1fb --- /dev/null +++ b/node_modules/es-abstract/2024/AsyncIteratorClose.js @@ -0,0 +1,70 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $Promise = GetIntrinsic('%Promise%', true); + +var Call = require('./Call'); +var CompletionRecord = require('./CompletionRecord'); +var GetMethod = require('./GetMethod'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +var callBound = require('call-bound'); + +var $then = callBound('Promise.prototype.then', true); + +// https://262.ecma-international.org/15.0/#sec-asynciteratorclose + +module.exports = function AsyncIteratorClose(iteratorRecord, completion) { + if (!isIteratorRecord(iteratorRecord)) { + throw new $TypeError('Assertion failed: `iteratorRecord` must be an Iterator Record'); // step 1 + } + + if (!(completion instanceof CompletionRecord)) { + throw new $TypeError('Assertion failed: completion is not a Completion Record instance'); // step 2 + } + + if (!$then) { + throw new $SyntaxError('This environment does not support Promises.'); + } + + var iterator = iteratorRecord['[[Iterator]]']; // step 3 + + return $then( + $then( + $then( + new $Promise(function (resolve) { + resolve(GetMethod(iterator, 'return')); // step 4 + // resolve(Call(ret, iterator, [])); // step 6 + }), + function (returnV) { // step 5.a + if (typeof returnV === 'undefined') { + return completion; // step 5.b + } + return Call(returnV, iterator); // step 5.c, 5.d. + } + ), + null, + function (e) { + if (completion.type() === 'throw') { + completion['?'](); // step 6 + } else { + throw e; // step 7 + } + } + ), + function (innerResult) { // step 8 + if (completion.type() === 'throw') { + completion['?'](); // step 6 + } + if (!isObject(innerResult)) { + throw new $TypeError('`innerResult` must be an Object'); // step 10 + } + return completion; + } + ); +}; diff --git a/node_modules/es-abstract/2024/BigInt/add.js b/node_modules/es-abstract/2024/BigInt/add.js new file mode 100644 index 0000000000000000000000000000000000000000..25cc9fa60f58e2433eb392a4cc0e00a0569474ba --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/add.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-add + +module.exports = function BigIntAdd(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + // shortcut for the actual spec mechanics + return x + y; +}; diff --git a/node_modules/es-abstract/2024/BigInt/bitwiseAND.js b/node_modules/es-abstract/2024/BigInt/bitwiseAND.js new file mode 100644 index 0000000000000000000000000000000000000000..106f4a273945d92cdb34715249ae5a72c1af93d8 --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/bitwiseAND.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var BigIntBitwiseOp = require('../BigIntBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseAND + +module.exports = function BigIntBitwiseAND(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + return BigIntBitwiseOp('&', x, y); +}; diff --git a/node_modules/es-abstract/2024/BigInt/bitwiseNOT.js b/node_modules/es-abstract/2024/BigInt/bitwiseNOT.js new file mode 100644 index 0000000000000000000000000000000000000000..9fe67405f674c3501fe410d55c63c59874841d87 --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/bitwiseNOT.js @@ -0,0 +1,15 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseNOT + +module.exports = function BigIntBitwiseNOT(x) { + if (typeof x !== 'bigint') { + throw new $TypeError('Assertion failed: `x` argument must be a BigInt'); + } + return -x - $BigInt(1); +}; diff --git a/node_modules/es-abstract/2024/BigInt/bitwiseOR.js b/node_modules/es-abstract/2024/BigInt/bitwiseOR.js new file mode 100644 index 0000000000000000000000000000000000000000..b0ba812a8a321e0f92a9d446b4e5439ec898fd47 --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/bitwiseOR.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var BigIntBitwiseOp = require('../BigIntBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseOR + +module.exports = function BigIntBitwiseOR(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + return BigIntBitwiseOp('|', x, y); +}; diff --git a/node_modules/es-abstract/2024/BigInt/bitwiseXOR.js b/node_modules/es-abstract/2024/BigInt/bitwiseXOR.js new file mode 100644 index 0000000000000000000000000000000000000000..79ac4a1f4568d559d69b64ba88061aabb1460c57 --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/bitwiseXOR.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var BigIntBitwiseOp = require('../BigIntBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseXOR + +module.exports = function BigIntBitwiseXOR(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + return BigIntBitwiseOp('^', x, y); +}; diff --git a/node_modules/es-abstract/2024/BigInt/divide.js b/node_modules/es-abstract/2024/BigInt/divide.js new file mode 100644 index 0000000000000000000000000000000000000000..a194302eb682514dc75061f391f75fdad1f0da4e --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/divide.js @@ -0,0 +1,20 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-divide + +module.exports = function BigIntDivide(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + if (y === $BigInt(0)) { + throw new $RangeError('Division by zero'); + } + // shortcut for the actual spec mechanics + return x / y; +}; diff --git a/node_modules/es-abstract/2024/BigInt/equal.js b/node_modules/es-abstract/2024/BigInt/equal.js new file mode 100644 index 0000000000000000000000000000000000000000..d6b36a2551cb08160a812a8bab4dc3a63e751a8b --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/equal.js @@ -0,0 +1,13 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-equal + +module.exports = function BigIntEqual(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + // shortcut for the actual spec mechanics + return x === y; +}; diff --git a/node_modules/es-abstract/2024/BigInt/exponentiate.js b/node_modules/es-abstract/2024/BigInt/exponentiate.js new file mode 100644 index 0000000000000000000000000000000000000000..f5bcdc148af1bc7658596120cbf5d72f7036c599 --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/exponentiate.js @@ -0,0 +1,29 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-exponentiate + +module.exports = function BigIntExponentiate(base, exponent) { + if (typeof base !== 'bigint' || typeof exponent !== 'bigint') { + throw new $TypeError('Assertion failed: `base` and `exponent` arguments must be BigInts'); + } + if (exponent < $BigInt(0)) { + throw new $RangeError('Exponent must be positive'); + } + if (/* base === $BigInt(0) && */ exponent === $BigInt(0)) { + return $BigInt(1); + } + + var square = base; + var remaining = exponent; + while (remaining > $BigInt(0)) { + square += exponent; + --remaining; // eslint-disable-line no-plusplus + } + return square; +}; diff --git a/node_modules/es-abstract/2024/BigInt/index.js b/node_modules/es-abstract/2024/BigInt/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6ba755ff52a6f144423c3662e0d496c0a09dad31 --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/index.js @@ -0,0 +1,39 @@ +'use strict'; + +var add = require('./add'); +var bitwiseAND = require('./bitwiseAND'); +var bitwiseNOT = require('./bitwiseNOT'); +var bitwiseOR = require('./bitwiseOR'); +var bitwiseXOR = require('./bitwiseXOR'); +var divide = require('./divide'); +var equal = require('./equal'); +var exponentiate = require('./exponentiate'); +var leftShift = require('./leftShift'); +var lessThan = require('./lessThan'); +var multiply = require('./multiply'); +var remainder = require('./remainder'); +var signedRightShift = require('./signedRightShift'); +var subtract = require('./subtract'); +var toString = require('./toString'); +var unaryMinus = require('./unaryMinus'); +var unsignedRightShift = require('./unsignedRightShift'); + +module.exports = { + add: add, + bitwiseAND: bitwiseAND, + bitwiseNOT: bitwiseNOT, + bitwiseOR: bitwiseOR, + bitwiseXOR: bitwiseXOR, + divide: divide, + equal: equal, + exponentiate: exponentiate, + leftShift: leftShift, + lessThan: lessThan, + multiply: multiply, + remainder: remainder, + signedRightShift: signedRightShift, + subtract: subtract, + toString: toString, + unaryMinus: unaryMinus, + unsignedRightShift: unsignedRightShift +}; diff --git a/node_modules/es-abstract/2024/BigInt/leftShift.js b/node_modules/es-abstract/2024/BigInt/leftShift.js new file mode 100644 index 0000000000000000000000000000000000000000..327592ea62472441e0750d4a6e5bccc81a7a5c71 --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/leftShift.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-leftShift + +module.exports = function BigIntLeftShift(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + // shortcut for the actual spec mechanics + return x << y; +}; diff --git a/node_modules/es-abstract/2024/BigInt/lessThan.js b/node_modules/es-abstract/2024/BigInt/lessThan.js new file mode 100644 index 0000000000000000000000000000000000000000..612f2dbbc4ea4aa7e5b27781f68071baa10f8727 --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/lessThan.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-lessThan + +module.exports = function BigIntLessThan(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + // shortcut for the actual spec mechanics + return x < y; +}; diff --git a/node_modules/es-abstract/2024/BigInt/multiply.js b/node_modules/es-abstract/2024/BigInt/multiply.js new file mode 100644 index 0000000000000000000000000000000000000000..a9bfbd5936a77ce9ddaec1e442a36fc2c4eb96de --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/multiply.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-multiply + +module.exports = function BigIntMultiply(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + // shortcut for the actual spec mechanics + return x * y; +}; diff --git a/node_modules/es-abstract/2024/BigInt/remainder.js b/node_modules/es-abstract/2024/BigInt/remainder.js new file mode 100644 index 0000000000000000000000000000000000000000..60346ecdeec72fc2f63f823c80fea5a45208abab --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/remainder.js @@ -0,0 +1,28 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); + +var zero = $BigInt && $BigInt(0); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-remainder + +module.exports = function BigIntRemainder(n, d) { + if (typeof n !== 'bigint' || typeof d !== 'bigint') { + throw new $TypeError('Assertion failed: `n` and `d` arguments must be BigInts'); + } + + if (d === zero) { + throw new $RangeError('Division by zero'); + } + + if (n === zero) { + return zero; + } + + // shortcut for the actual spec mechanics + return n % d; +}; diff --git a/node_modules/es-abstract/2024/BigInt/signedRightShift.js b/node_modules/es-abstract/2024/BigInt/signedRightShift.js new file mode 100644 index 0000000000000000000000000000000000000000..90967d66e622397fc8e7cd54ee6e1f7c5426b786 --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/signedRightShift.js @@ -0,0 +1,15 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var BigIntLeftShift = require('./leftShift'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-signedRightShift + +module.exports = function BigIntSignedRightShift(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + return BigIntLeftShift(x, -y); +}; diff --git a/node_modules/es-abstract/2024/BigInt/subtract.js b/node_modules/es-abstract/2024/BigInt/subtract.js new file mode 100644 index 0000000000000000000000000000000000000000..32de730a3cbea3a14df35755a24c54dcb9e5de9f --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/subtract.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-subtract + +module.exports = function BigIntSubtract(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + // shortcut for the actual spec mechanics + return x - y; +}; diff --git a/node_modules/es-abstract/2024/BigInt/toString.js b/node_modules/es-abstract/2024/BigInt/toString.js new file mode 100644 index 0000000000000000000000000000000000000000..a5d5700465bb6ad7dde0bbf8c03023859623dad9 --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/toString.js @@ -0,0 +1,26 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $BigIntToString = callBound('BigInt.prototype.toString', true); + +// https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-tostring + +module.exports = function BigIntToString(x, radix) { + if (typeof x !== 'bigint') { + throw new $TypeError('Assertion failed: `x` must be a BigInt'); + } + + if (!isInteger(radix) || radix < 2 || radix > 36) { + throw new $TypeError('Assertion failed: `radix` must be an integer >= 2 and <= 36'); + } + + if (!$BigIntToString) { + throw new $SyntaxError('BigInt is not supported'); + } + + return $BigIntToString(x, radix); // steps 1 - 12 +}; diff --git a/node_modules/es-abstract/2024/BigInt/unaryMinus.js b/node_modules/es-abstract/2024/BigInt/unaryMinus.js new file mode 100644 index 0000000000000000000000000000000000000000..161f02fbdba7eca7078ee2a2404f646e03b4d0be --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/unaryMinus.js @@ -0,0 +1,22 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $TypeError = require('es-errors/type'); + +var zero = $BigInt && $BigInt(0); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-unaryMinus + +module.exports = function BigIntUnaryMinus(x) { + if (typeof x !== 'bigint') { + throw new $TypeError('Assertion failed: `x` argument must be a BigInt'); + } + + if (x === zero) { + return zero; + } + + return -x; +}; diff --git a/node_modules/es-abstract/2024/BigInt/unsignedRightShift.js b/node_modules/es-abstract/2024/BigInt/unsignedRightShift.js new file mode 100644 index 0000000000000000000000000000000000000000..d695cb43beb3716c8015d4b83f93d6fc7307da73 --- /dev/null +++ b/node_modules/es-abstract/2024/BigInt/unsignedRightShift.js @@ -0,0 +1,13 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-unsignedRightShift + +module.exports = function BigIntUnsignedRightShift(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + throw new $TypeError('BigInts have no unsigned right shift, use >> instead'); +}; diff --git a/node_modules/es-abstract/2024/BigIntBitwiseOp.js b/node_modules/es-abstract/2024/BigIntBitwiseOp.js new file mode 100644 index 0000000000000000000000000000000000000000..40e1a13185c4a1b7273f3e53a48f04f9ec5161b6 --- /dev/null +++ b/node_modules/es-abstract/2024/BigIntBitwiseOp.js @@ -0,0 +1,63 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +// var $BigInt = GetIntrinsic('%BigInt%', true); +// var $pow = require('math-intrinsics/pow'); + +// var BinaryAnd = require('./BinaryAnd'); +// var BinaryOr = require('./BinaryOr'); +// var BinaryXor = require('./BinaryXor'); +// var modulo = require('./modulo'); + +// var zero = $BigInt && $BigInt(0); +// var negOne = $BigInt && $BigInt(-1); +// var two = $BigInt && $BigInt(2); + +// https://262.ecma-international.org/11.0/#sec-bigintbitwiseop + +module.exports = function BigIntBitwiseOp(op, x, y) { + if (op !== '&' && op !== '|' && op !== '^') { + throw new $TypeError('Assertion failed: `op` must be `&`, `|`, or `^`'); + } + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('`x` and `y` must be BigInts'); + } + + if (op === '&') { + return x & y; + } + if (op === '|') { + return x | y; + } + return x ^ y; + /* + var result = zero; + var shift = 0; + while (x !== zero && x !== negOne && y !== zero && y !== negOne) { + var xDigit = modulo(x, two); + var yDigit = modulo(y, two); + if (op === '&') { + result += $pow(2, shift) * BinaryAnd(xDigit, yDigit); + } else if (op === '|') { + result += $pow(2, shift) * BinaryOr(xDigit, yDigit); + } else if (op === '^') { + result += $pow(2, shift) * BinaryXor(xDigit, yDigit); + } + shift += 1; + x = (x - xDigit) / two; + y = (y - yDigit) / two; + } + var tmp; + if (op === '&') { + tmp = BinaryAnd(modulo(x, two), modulo(y, two)); + } else if (op === '|') { + tmp = BinaryAnd(modulo(x, two), modulo(y, two)); + } else { + tmp = BinaryXor(modulo(x, two), modulo(y, two)); + } + if (tmp !== 0) { + result -= $pow(2, shift); + } + return result; + */ +}; diff --git a/node_modules/es-abstract/2024/BinaryAnd.js b/node_modules/es-abstract/2024/BinaryAnd.js new file mode 100644 index 0000000000000000000000000000000000000000..bb361dea6141f1b0d447cb06b5ee18e96ea426ce --- /dev/null +++ b/node_modules/es-abstract/2024/BinaryAnd.js @@ -0,0 +1,12 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-binaryand + +module.exports = function BinaryAnd(x, y) { + if ((x !== 0 && x !== 1) || (y !== 0 && y !== 1)) { + throw new $TypeError('Assertion failed: `x` and `y` must be either 0 or 1'); + } + return x & y; +}; diff --git a/node_modules/es-abstract/2024/BinaryOr.js b/node_modules/es-abstract/2024/BinaryOr.js new file mode 100644 index 0000000000000000000000000000000000000000..76200f8744087b5c72020f4826d5bc8f55bd3886 --- /dev/null +++ b/node_modules/es-abstract/2024/BinaryOr.js @@ -0,0 +1,12 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-binaryor + +module.exports = function BinaryOr(x, y) { + if ((x !== 0 && x !== 1) || (y !== 0 && y !== 1)) { + throw new $TypeError('Assertion failed: `x` and `y` must be either 0 or 1'); + } + return x | y; +}; diff --git a/node_modules/es-abstract/2024/BinaryXor.js b/node_modules/es-abstract/2024/BinaryXor.js new file mode 100644 index 0000000000000000000000000000000000000000..c1da53b26c67c6379ceaa50349f7861827eb6e10 --- /dev/null +++ b/node_modules/es-abstract/2024/BinaryXor.js @@ -0,0 +1,12 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-binaryxor + +module.exports = function BinaryXor(x, y) { + if ((x !== 0 && x !== 1) || (y !== 0 && y !== 1)) { + throw new $TypeError('Assertion failed: `x` and `y` must be either 0 or 1'); + } + return x ^ y; +}; diff --git a/node_modules/es-abstract/2024/ByteListBitwiseOp.js b/node_modules/es-abstract/2024/ByteListBitwiseOp.js new file mode 100644 index 0000000000000000000000000000000000000000..7aba5bc6346a74cdb51b6070e1e6a8159783fce0 --- /dev/null +++ b/node_modules/es-abstract/2024/ByteListBitwiseOp.js @@ -0,0 +1,39 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsArray = require('./IsArray'); + +var isByteValue = require('../helpers/isByteValue'); + +// https://262.ecma-international.org/12.0/#sec-bytelistbitwiseop + +module.exports = function ByteListBitwiseOp(op, xBytes, yBytes) { + if (op !== '&' && op !== '^' && op !== '|') { + throw new $TypeError('Assertion failed: `op` must be `&`, `^`, or `|`'); + } + if (!IsArray(xBytes) || !IsArray(yBytes) || xBytes.length !== yBytes.length) { + throw new $TypeError('Assertion failed: `xBytes` and `yBytes` must be same-length sequences of byte values (an integer 0-255, inclusive)'); + } + + var result = []; + + for (var i = 0; i < xBytes.length; i += 1) { + var xByte = xBytes[i]; + var yByte = yBytes[i]; + if (!isByteValue(xByte) || !isByteValue(yByte)) { + throw new $TypeError('Assertion failed: `xBytes` and `yBytes` must be same-length sequences of byte values (an integer 0-255, inclusive)'); + } + var resultByte; + if (op === '&') { + resultByte = xByte & yByte; + } else if (op === '^') { + resultByte = xByte ^ yByte; + } else { + resultByte = xByte | yByte; + } + result[result.length] = resultByte; + } + + return result; +}; diff --git a/node_modules/es-abstract/2024/ByteListEqual.js b/node_modules/es-abstract/2024/ByteListEqual.js new file mode 100644 index 0000000000000000000000000000000000000000..b581cbba25a97b6211880bf53391bfcde3986715 --- /dev/null +++ b/node_modules/es-abstract/2024/ByteListEqual.js @@ -0,0 +1,31 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsArray = require('./IsArray'); + +var isByteValue = require('../helpers/isByteValue'); + +// https://262.ecma-international.org/12.0/#sec-bytelistequal + +module.exports = function ByteListEqual(xBytes, yBytes) { + if (!IsArray(xBytes) || !IsArray(yBytes)) { + throw new $TypeError('Assertion failed: `xBytes` and `yBytes` must be sequences of byte values (an integer 0-255, inclusive)'); + } + + if (xBytes.length !== yBytes.length) { + return false; + } + + for (var i = 0; i < xBytes.length; i += 1) { + var xByte = xBytes[i]; + var yByte = yBytes[i]; + if (!isByteValue(xByte) || !isByteValue(yByte)) { + throw new $TypeError('Assertion failed: `xBytes` and `yBytes` must be sequences of byte values (an integer 0-255, inclusive)'); + } + if (xByte !== yByte) { + return false; + } + } + return true; +}; diff --git a/node_modules/es-abstract/2024/Call.js b/node_modules/es-abstract/2024/Call.js new file mode 100644 index 0000000000000000000000000000000000000000..90b3519cb954848f531c4921eaa79ec7d37d06bd --- /dev/null +++ b/node_modules/es-abstract/2024/Call.js @@ -0,0 +1,20 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); + +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); +}; diff --git a/node_modules/es-abstract/2024/CanBeHeldWeakly.js b/node_modules/es-abstract/2024/CanBeHeldWeakly.js new file mode 100644 index 0000000000000000000000000000000000000000..9f32ece50f652cf7c6e563e441b05c3965cc0f5f --- /dev/null +++ b/node_modules/es-abstract/2024/CanBeHeldWeakly.js @@ -0,0 +1,17 @@ +'use strict'; + +var isObject = require('es-object-atoms/isObject'); + +var KeyForSymbol = require('./KeyForSymbol'); + +// https://262.ecma-international.org/14.0/#sec-canbeheldweakly + +module.exports = function CanBeHeldWeakly(v) { + if (isObject(v)) { + return true; // step 1 + } + if (typeof v === 'symbol' && typeof KeyForSymbol(v) === 'undefined') { + return true; // step 2 + } + return false; // step 3 +}; diff --git a/node_modules/es-abstract/2024/CanonicalNumericIndexString.js b/node_modules/es-abstract/2024/CanonicalNumericIndexString.js new file mode 100644 index 0000000000000000000000000000000000000000..74ed02f050d21c13dbfc06c80c21ae20a8e530ee --- /dev/null +++ b/node_modules/es-abstract/2024/CanonicalNumericIndexString.js @@ -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; +}; diff --git a/node_modules/es-abstract/2024/Canonicalize.js b/node_modules/es-abstract/2024/Canonicalize.js new file mode 100644 index 0000000000000000000000000000000000000000..849d2138719e79487ec128f52b9e8b2b91671ef6 --- /dev/null +++ b/node_modules/es-abstract/2024/Canonicalize.js @@ -0,0 +1,52 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); +var hasOwn = require('hasown'); + +var $charCodeAt = callBound('String.prototype.charCodeAt'); +var $toUpperCase = callBound('String.prototype.toUpperCase'); + +var isRegExpRecord = require('../helpers/records/regexp-record'); +var caseFolding = require('../helpers/caseFolding.json'); + +// https://262.ecma-international.org/14.0/#sec-runtime-semantics-canonicalize-ch + +module.exports = function Canonicalize(rer, ch) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + + if (typeof ch !== 'string') { + throw new $TypeError('Assertion failed: `ch` must be a character'); + } + + if (rer['[[Unicode]]'] && rer['[[IgnoreCase]]']) { // step 1 + if (hasOwn(caseFolding.C, ch)) { + return caseFolding.C[ch]; + } + if (hasOwn(caseFolding.S, ch)) { + return caseFolding.S[ch]; + } + return ch; // step 1.b + } + + if (!rer['[[IgnoreCase]]']) { + return ch; // step 2 + } + + var u = $toUpperCase(ch); // step 5 + + if (u.length !== 1) { + return ch; // step 7 + } + + var cu = u; // step 8 + + if ($charCodeAt(ch, 0) >= 128 && $charCodeAt(cu, 0) < 128) { + return ch; // step 9 + } + + return cu; // step 10 +}; diff --git a/node_modules/es-abstract/2024/CharacterComplement.js b/node_modules/es-abstract/2024/CharacterComplement.js new file mode 100644 index 0000000000000000000000000000000000000000..b04e9c6aba59679de5bff480910f14e373f08122 --- /dev/null +++ b/node_modules/es-abstract/2024/CharacterComplement.js @@ -0,0 +1,34 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var AllCharacters = require('./AllCharacters'); + +var CharSet = require('../helpers/CharSet').CharSet; +var isRegExpRecord = require('../helpers/records/regexp-record'); + +// https://262.ecma-international.org/15.0/#sec-charactercomplement + +module.exports = function CharacterComplement(rer, S) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + + if (!(S instanceof CharSet)) { + throw new $TypeError('Assertion failed: S must be a CharSet'); + } + + var A = AllCharacters(rer); // step 1 + + // 2. Return the CharSet containing the CharSetElements of A which are not also CharSetElements of S. + return new CharSet( + function (x) { return !S.test(x) && A.test(x); }, + function (emit) { + A.yield(function (x) { + if (!S.test(x)) { + emit(x); + } + }); + } + ); +}; diff --git a/node_modules/es-abstract/2024/CharacterRange.js b/node_modules/es-abstract/2024/CharacterRange.js new file mode 100644 index 0000000000000000000000000000000000000000..e41cb7870a7411344a21dfe7fbfc7cd6888b7c9e --- /dev/null +++ b/node_modules/es-abstract/2024/CharacterRange.js @@ -0,0 +1,53 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); + +var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); +var $TypeError = require('es-errors/type'); +var $charCodeAt = callBound('String.prototype.charCodeAt'); + +var CharSet = require('../helpers/CharSet').CharSet; + +module.exports = function CharacterRange(A, B) { + var a; + var b; + + if (A instanceof CharSet || B instanceof CharSet) { + if (!(A instanceof CharSet) || !(B instanceof CharSet)) { + throw new $TypeError('Assertion failed: CharSets A and B are not both CharSets'); + } + + A.yield(function (c) { + if (typeof a !== 'undefined') { + throw new $TypeError('Assertion failed: CharSet A has more than one character'); + } + a = c; + }); + B.yield(function (c) { + if (typeof b !== 'undefined') { + throw new $TypeError('Assertion failed: CharSet B has more than one character'); + } + b = c; + }); + } else { + if (A.length !== 1 || B.length !== 1) { + throw new $TypeError('Assertion failed: CharSets A and B contain exactly one character'); + } + a = A[0]; + 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) { + arr[arr.length] = $fromCharCode(k); + } + return arr; +}; diff --git a/node_modules/es-abstract/2024/ClearKeptObjects.js b/node_modules/es-abstract/2024/ClearKeptObjects.js new file mode 100644 index 0000000000000000000000000000000000000000..50bd4a5da4199b973650ca675584246ef492edac --- /dev/null +++ b/node_modules/es-abstract/2024/ClearKeptObjects.js @@ -0,0 +1,12 @@ +'use strict'; + +var SLOT = require('internal-slot'); +var keptObjects = []; + +// https://262.ecma-international.org/12.0/#sec-clear-kept-objects + +module.exports = function ClearKeptObjects() { + keptObjects.length = 0; +}; + +SLOT.set(module.exports, '[[es-abstract internal: KeptAlive]]', keptObjects); diff --git a/node_modules/es-abstract/2024/CloneArrayBuffer.js b/node_modules/es-abstract/2024/CloneArrayBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..27c8ba96184211b7d06388f9f7302f8f4e293638 --- /dev/null +++ b/node_modules/es-abstract/2024/CloneArrayBuffer.js @@ -0,0 +1,46 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); +var IsConstructor = require('./IsConstructor'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var OrdinarySetPrototypeOf = require('./OrdinarySetPrototypeOf'); + +var isInteger = require('math-intrinsics/isInteger'); +var isArrayBuffer = require('is-array-buffer'); +var arrayBufferSlice = require('arraybuffer.prototype.slice'); + +// https://262.ecma-international.org/12.0/#sec-clonearraybuffer + +module.exports = function CloneArrayBuffer(srcBuffer, srcByteOffset, srcLength, cloneConstructor) { + if (!isArrayBuffer(srcBuffer)) { + throw new $TypeError('Assertion failed: `srcBuffer` must be an ArrayBuffer instance'); + } + if (!isInteger(srcByteOffset) || srcByteOffset < 0) { + throw new $TypeError('Assertion failed: `srcByteOffset` must be a non-negative integer'); + } + if (!isInteger(srcLength) || srcLength < 0) { + throw new $TypeError('Assertion failed: `srcLength` must be a non-negative integer'); + } + if (!IsConstructor(cloneConstructor)) { + throw new $TypeError('Assertion failed: `cloneConstructor` must be a constructor'); + } + + // 3. Let targetBuffer be ? AllocateArrayBuffer(cloneConstructor, srcLength). + var proto = GetPrototypeFromConstructor(cloneConstructor, '%ArrayBufferPrototype%'); // step 3, kinda + + if (IsDetachedBuffer(srcBuffer)) { + throw new $TypeError('`srcBuffer` must not be a detached ArrayBuffer'); // step 4 + } + + /* + 5. Let srcBlock be srcBuffer.[[ArrayBufferData]]. + 6. Let targetBlock be targetBuffer.[[ArrayBufferData]]. + 7. Perform CopyDataBlockBytes(targetBlock, 0, srcBlock, srcByteOffset, srcLength). + */ + var targetBuffer = arrayBufferSlice(srcBuffer, srcByteOffset, srcByteOffset + srcLength); // steps 5-7 + OrdinarySetPrototypeOf(targetBuffer, proto); // step 3 + + return targetBuffer; // step 8 +}; diff --git a/node_modules/es-abstract/2024/CodePointAt.js b/node_modules/es-abstract/2024/CodePointAt.js new file mode 100644 index 0000000000000000000000000000000000000000..466d11cb64df54d4dd73c331b83903069323e526 --- /dev/null +++ b/node_modules/es-abstract/2024/CodePointAt.js @@ -0,0 +1,55 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); +var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); + +var UTF16SurrogatePairToCodePoint = require('./UTF16SurrogatePairToCodePoint'); + +var $charAt = callBound('String.prototype.charAt'); +var $charCodeAt = callBound('String.prototype.charCodeAt'); + +// https://262.ecma-international.org/12.0/#sec-codepointat + +module.exports = function CodePointAt(string, position) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + var size = string.length; + if (position < 0 || position >= size) { + throw new $TypeError('Assertion failed: `position` must be >= 0, and < the length of `string`'); + } + var first = $charCodeAt(string, position); + var cp = $charAt(string, position); + var firstIsLeading = isLeadingSurrogate(first); + var firstIsTrailing = isTrailingSurrogate(first); + if (!firstIsLeading && !firstIsTrailing) { + return { + '[[CodePoint]]': cp, + '[[CodeUnitCount]]': 1, + '[[IsUnpairedSurrogate]]': false + }; + } + if (firstIsTrailing || (position + 1 === size)) { + return { + '[[CodePoint]]': cp, + '[[CodeUnitCount]]': 1, + '[[IsUnpairedSurrogate]]': true + }; + } + var second = $charCodeAt(string, position + 1); + if (!isTrailingSurrogate(second)) { + return { + '[[CodePoint]]': cp, + '[[CodeUnitCount]]': 1, + '[[IsUnpairedSurrogate]]': true + }; + } + + return { + '[[CodePoint]]': UTF16SurrogatePairToCodePoint(first, second), + '[[CodeUnitCount]]': 2, + '[[IsUnpairedSurrogate]]': false + }; +}; diff --git a/node_modules/es-abstract/2024/CodePointsToString.js b/node_modules/es-abstract/2024/CodePointsToString.js new file mode 100644 index 0000000000000000000000000000000000000000..c15bcb4c93be5996162f356749622a1d104de7af --- /dev/null +++ b/node_modules/es-abstract/2024/CodePointsToString.js @@ -0,0 +1,25 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var UTF16EncodeCodePoint = require('./UTF16EncodeCodePoint'); +var IsArray = require('./IsArray'); + +var forEach = require('../helpers/forEach'); +var isCodePoint = require('../helpers/isCodePoint'); + +// https://262.ecma-international.org/12.0/#sec-codepointstostring + +module.exports = function CodePointsToString(text) { + if (!IsArray(text)) { + throw new $TypeError('Assertion failed: `text` must be a sequence of Unicode Code Points'); + } + var result = ''; + forEach(text, function (cp) { + if (!isCodePoint(cp)) { + throw new $TypeError('Assertion failed: `text` must be a sequence of Unicode Code Points'); + } + result += UTF16EncodeCodePoint(cp); + }); + return result; +}; diff --git a/node_modules/es-abstract/2024/CompareArrayElements.js b/node_modules/es-abstract/2024/CompareArrayElements.js new file mode 100644 index 0000000000000000000000000000000000000000..12dddc3c08a8d70e2249cf43594a493f384bb242 --- /dev/null +++ b/node_modules/es-abstract/2024/CompareArrayElements.js @@ -0,0 +1,50 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('./Call'); +var IsLessThan = require('./IsLessThan'); +var ToNumber = require('./ToNumber'); +var ToString = require('./ToString'); + +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/14.0/#sec-comparearrayelements + +module.exports = function CompareArrayElements(x, y, compareFn) { + if (typeof compareFn !== 'function' && typeof compareFn !== 'undefined') { + throw new $TypeError('Assertion failed: `compareFn` must be a function or undefined'); + } + + if (typeof x === 'undefined' && typeof y === 'undefined') { + return 0; // step 1 + } + + if (typeof x === 'undefined') { + return 1; // step 2 + } + + if (typeof y === 'undefined') { + return -1; // step 3 + } + + if (typeof compareFn !== 'undefined') { // step 4 + var v = ToNumber(Call(compareFn, void undefined, [x, y])); // step 4.a + if (isNaN(v)) { + return 0; // step 4.b + } + return v; // step 4.c + } + + var xString = ToString(x); // step 5 + var yString = ToString(y); // step 6 + var xSmaller = IsLessThan(xString, yString, true); // step 7 + if (xSmaller) { + return -1; // step 8 + } + var ySmaller = IsLessThan(yString, xString, true); // step 9 + if (ySmaller) { + return 1; // step 10 + } + return 0; // step 11 +}; diff --git a/node_modules/es-abstract/2024/CompareTypedArrayElements.js b/node_modules/es-abstract/2024/CompareTypedArrayElements.js new file mode 100644 index 0000000000000000000000000000000000000000..5c68925f5afdf5f6d0ff417f077d1ec24b297ef0 --- /dev/null +++ b/node_modules/es-abstract/2024/CompareTypedArrayElements.js @@ -0,0 +1,60 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('./Call'); +var SameValue = require('./SameValue'); +var ToNumber = require('./ToNumber'); + +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/14.0/#sec-comparetypedarrayelements + +module.exports = function CompareTypedArrayElements(x, y, compareFn) { + if ((typeof x !== 'number' && typeof x !== 'bigint') || typeof x !== typeof y) { + throw new $TypeError('Assertion failed: `x` and `y` must be either a BigInt or a Number, and both must be the same type'); + } + if (typeof compareFn !== 'function' && typeof compareFn !== 'undefined') { + throw new $TypeError('Assertion failed: `compareFn` must be a function or undefined'); + } + + if (typeof compareFn !== 'undefined') { // step 2 + var v = ToNumber(Call(compareFn, void undefined, [x, y])); // step 2.a + if (isNaN(v)) { + return 0; // step 2.b + } + return v; // step 2.c + } + + var xNaN = isNaN(x); + var yNaN = isNaN(y); + if (xNaN && yNaN) { + return 0; // step 3 + } + + if (xNaN) { + return 1; // step 4 + } + + if (yNaN) { + return -1; // step 5 + } + + if (x < y) { + return -1; // step 6 + } + + if (x > y) { + return 1; // step 7 + } + + if (SameValue(x, -0) && SameValue(y, 0)) { + return -1; // step 8 + } + + if (SameValue(x, 0) && SameValue(y, -0)) { + return 1; // step 9 + } + + return 0; // step 10 +}; diff --git a/node_modules/es-abstract/2024/CompletePropertyDescriptor.js b/node_modules/es-abstract/2024/CompletePropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..8c9e3f441111638a3b3c9fd69857d3da22c779ee --- /dev/null +++ b/node_modules/es-abstract/2024/CompletePropertyDescriptor.js @@ -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; +}; diff --git a/node_modules/es-abstract/2024/CompletionRecord.js b/node_modules/es-abstract/2024/CompletionRecord.js new file mode 100644 index 0000000000000000000000000000000000000000..0a7a6817c87e69578cfbc5546901b1c4dba112a9 --- /dev/null +++ b/node_modules/es-abstract/2024/CompletionRecord.js @@ -0,0 +1,48 @@ +'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 === 'throw') { + throw value; + } + return value; +}; + +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; diff --git a/node_modules/es-abstract/2024/CopyDataProperties.js b/node_modules/es-abstract/2024/CopyDataProperties.js new file mode 100644 index 0000000000000000000000000000000000000000..182720710e8b97fc0ed0f09cb7743aeb4baae938 --- /dev/null +++ b/node_modules/es-abstract/2024/CopyDataProperties.js @@ -0,0 +1,69 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var callBound = require('call-bound'); +var OwnPropertyKeys = require('own-keys'); + +var forEach = require('../helpers/forEach'); +var every = require('../helpers/every'); +var some = require('../helpers/some'); + +var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); + +var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); +var Get = require('./Get'); +var IsArray = require('./IsArray'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var SameValue = require('./SameValue'); +var ToNumber = require('./ToNumber'); +var ToObject = require('./ToObject'); + +var isInteger = require('math-intrinsics/isInteger'); + +// https://262.ecma-international.org/12.0/#sec-copydataproperties + +module.exports = function CopyDataProperties(target, source, excludedItems) { + if (!isObject(target)) { + throw new $TypeError('Assertion failed: "target" must be an Object'); + } + + if (!IsArray(excludedItems) || !every(excludedItems, isPropertyKey)) { + throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); + } + + if (typeof source === 'undefined' || source === null) { + return target; + } + + var from = ToObject(source); + + var keys = OwnPropertyKeys(from); + forEach(keys, function (nextKey) { + var excluded = some(excludedItems, function (e) { + return SameValue(e, nextKey) === true; + }); + /* + var excluded = false; + + forEach(excludedItems, function (e) { + if (SameValue(e, nextKey) === true) { + excluded = true; + } + }); + */ + + var enumerable = $isEnumerable(from, nextKey) || ( + // this is to handle string keys being non-enumerable in older engines + typeof source === 'string' + && nextKey >= 0 + && isInteger(ToNumber(nextKey)) + ); + if (excluded === false && enumerable) { + var propValue = Get(from, nextKey); + CreateDataPropertyOrThrow(target, nextKey, propValue); + } + }); + + return target; +}; diff --git a/node_modules/es-abstract/2024/CreateAsyncFromSyncIterator.js b/node_modules/es-abstract/2024/CreateAsyncFromSyncIterator.js new file mode 100644 index 0000000000000000000000000000000000000000..554e64b6da9c9179f103e466bd1c6640188f802d --- /dev/null +++ b/node_modules/es-abstract/2024/CreateAsyncFromSyncIterator.js @@ -0,0 +1,137 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $Promise = GetIntrinsic('%Promise%', true); + +var AsyncFromSyncIteratorContinuation = require('./AsyncFromSyncIteratorContinuation'); +var Call = require('./Call'); +var CreateIterResultObject = require('./CreateIterResultObject'); +var Get = require('./Get'); +var GetMethod = require('./GetMethod'); +var IteratorNext = require('./IteratorNext'); +var OrdinaryObjectCreate = require('./OrdinaryObjectCreate'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +var SLOT = require('internal-slot'); + +var $AsyncFromSyncIteratorPrototype = GetIntrinsic('%AsyncFromSyncIteratorPrototype%', true) || { + next: function next(value) { + if (!$Promise) { + throw new $SyntaxError('This environment does not support Promises.'); + } + + var O = this; // step 1 + + SLOT.assert(O, '[[SyncIteratorRecord]]'); // step 2 + + var argsLength = arguments.length; + + return new $Promise(function (resolve) { // step 3 + var syncIteratorRecord = SLOT.get(O, '[[SyncIteratorRecord]]'); // step 4 + var result; + if (argsLength > 0) { + result = IteratorNext(syncIteratorRecord, value); // step 5.a + } else { // step 6 + result = IteratorNext(syncIteratorRecord);// step 6.a + } + resolve(AsyncFromSyncIteratorContinuation(result)); // step 8 + }); + }, + 'return': function () { + if (!$Promise) { + throw new $SyntaxError('This environment does not support Promises.'); + } + + var O = this; // step 1 + + SLOT.assert(O, '[[SyncIteratorRecord]]'); // step 2 + + var valueIsPresent = arguments.length > 0; + var value = valueIsPresent ? arguments[0] : void undefined; + + return new $Promise(function (resolve, reject) { // step 3 + var syncIterator = SLOT.get(O, '[[SyncIteratorRecord]]')['[[Iterator]]']; // step 4 + var iteratorReturn = GetMethod(syncIterator, 'return'); // step 5 + + if (typeof iteratorReturn === 'undefined') { // step 7 + var iterResult = CreateIterResultObject(value, true); // step 7.a + Call(resolve, undefined, [iterResult]); // step 7.b + return; + } + var result; + if (valueIsPresent) { // step 8 + result = Call(iteratorReturn, syncIterator, [value]); // step 8.a + } else { // step 9 + result = Call(iteratorReturn, syncIterator); // step 9.a + } + if (!isObject(result)) { // step 11 + Call(reject, undefined, [new $TypeError('Iterator `return` method returned a non-object value.')]); // step 11.a + return; + } + + resolve(AsyncFromSyncIteratorContinuation(result)); // step 12 + }); + }, + 'throw': function () { + if (!$Promise) { + throw new $SyntaxError('This environment does not support Promises.'); + } + + var O = this; // step 1 + + SLOT.assert(O, '[[SyncIteratorRecord]]'); // step 2 + + var valueIsPresent = arguments.length > 0; + var value = valueIsPresent ? arguments[0] : void undefined; + + return new $Promise(function (resolve, reject) { // step 3 + var syncIterator = SLOT.get(O, '[[SyncIteratorRecord]]')['[[Iterator]]']; // step 4 + + var throwMethod = GetMethod(syncIterator, 'throw'); // step 5 + + if (typeof throwMethod === 'undefined') { // step 7 + Call(reject, undefined, [value]); // step 7.a + return; + } + + var result; + if (valueIsPresent) { // step 8 + result = Call(throwMethod, syncIterator, [value]); // step 8.a + } else { // step 9 + result = Call(throwMethod, syncIterator); // step 9.a + } + if (!isObject(result)) { // step 11 + Call(reject, undefined, [new $TypeError('Iterator `throw` method returned a non-object value.')]); // step 11.a + return; + } + + resolve(AsyncFromSyncIteratorContinuation(result/* , promiseCapability */)); // step 12 + }); + } +}; + +// https://262.ecma-international.org/15.0/#sec-createasyncfromsynciterator + +module.exports = function CreateAsyncFromSyncIterator(syncIteratorRecord) { + if (!isIteratorRecord(syncIteratorRecord)) { + throw new $TypeError('Assertion failed: `syncIteratorRecord` must be an Iterator Record'); + } + + // var asyncIterator = OrdinaryObjectCreate(%AsyncFromSyncIteratorPrototype%, « [[SyncIteratorRecord]] »); // step 1 + var asyncIterator = OrdinaryObjectCreate($AsyncFromSyncIteratorPrototype); + + SLOT.set(asyncIterator, '[[SyncIteratorRecord]]', syncIteratorRecord); // step 2 + + var nextMethod = Get(asyncIterator, 'next'); // step 3 + + return { // steps 3-4 + '[[Iterator]]': asyncIterator, + '[[NextMethod]]': nextMethod, + '[[Done]]': false + }; +}; diff --git a/node_modules/es-abstract/2024/CreateDataProperty.js b/node_modules/es-abstract/2024/CreateDataProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..897617c0ca1e0365cb55a83855b0983550e3e298 --- /dev/null +++ b/node_modules/es-abstract/2024/CreateDataProperty.js @@ -0,0 +1,25 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); +var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); + +// https://262.ecma-international.org/6.0/#sec-createdataproperty + +module.exports = function CreateDataProperty(O, P, V) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + var newDesc = { + '[[Configurable]]': true, + '[[Enumerable]]': true, + '[[Value]]': V, + '[[Writable]]': true + }; + return OrdinaryDefineOwnProperty(O, P, newDesc); +}; diff --git a/node_modules/es-abstract/2024/CreateDataPropertyOrThrow.js b/node_modules/es-abstract/2024/CreateDataPropertyOrThrow.js new file mode 100644 index 0000000000000000000000000000000000000000..bca5b077405e87db24ab5d01f62ac88244db79ff --- /dev/null +++ b/node_modules/es-abstract/2024/CreateDataPropertyOrThrow.js @@ -0,0 +1,23 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var CreateDataProperty = require('./CreateDataProperty'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// // https://262.ecma-international.org/14.0/#sec-createdatapropertyorthrow + +module.exports = function CreateDataPropertyOrThrow(O, P, V) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + var success = CreateDataProperty(O, P, V); + if (!success) { + throw new $TypeError('unable to create data property'); + } +}; diff --git a/node_modules/es-abstract/2024/CreateHTML.js b/node_modules/es-abstract/2024/CreateHTML.js new file mode 100644 index 0000000000000000000000000000000000000000..25630f43085954792b398e93a870ac78b46e3fc4 --- /dev/null +++ b/node_modules/es-abstract/2024/CreateHTML.js @@ -0,0 +1,27 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +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, '"'); + p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; + } + return p1 + '>' + S + ''; +}; diff --git a/node_modules/es-abstract/2024/CreateIterResultObject.js b/node_modules/es-abstract/2024/CreateIterResultObject.js new file mode 100644 index 0000000000000000000000000000000000000000..679bdf00ea851b40cce0dc9e6d55526aa9d5c5d7 --- /dev/null +++ b/node_modules/es-abstract/2024/CreateIterResultObject.js @@ -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 + }; +}; diff --git a/node_modules/es-abstract/2024/CreateListFromArrayLike.js b/node_modules/es-abstract/2024/CreateListFromArrayLike.js new file mode 100644 index 0000000000000000000000000000000000000000..3cd2d5c27a0867bd7a1fef684d6915a516544e32 --- /dev/null +++ b/node_modules/es-abstract/2024/CreateListFromArrayLike.js @@ -0,0 +1,44 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); + +var Get = require('./Get'); +var IsArray = require('./IsArray'); +var LengthOfArrayLike = require('./LengthOfArrayLike'); +var ToString = require('./ToString'); +var Type = require('./Type'); + +var defaultElementTypes = ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'BigInt', 'Object']; + +// https://262.ecma-international.org/11.0/#sec-createlistfromarraylike + +module.exports = function CreateListFromArrayLike(obj) { + var elementTypes = arguments.length > 1 + ? arguments[1] + : defaultElementTypes; + + if (!isObject(obj)) { + 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 = LengthOfArrayLike(obj); + 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'); + } + list[list.length] = next; + index += 1; + } + return list; +}; diff --git a/node_modules/es-abstract/2024/CreateNonEnumerableDataPropertyOrThrow.js b/node_modules/es-abstract/2024/CreateNonEnumerableDataPropertyOrThrow.js new file mode 100644 index 0000000000000000000000000000000000000000..5fc18ac2e0e9e296821337593b2568e4884b605d --- /dev/null +++ b/node_modules/es-abstract/2024/CreateNonEnumerableDataPropertyOrThrow.js @@ -0,0 +1,28 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/13.0/#sec-createnonenumerabledatapropertyorthrow + +module.exports = function CreateNonEnumerableDataPropertyOrThrow(O, P, V) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + + var newDesc = { + '[[Configurable]]': true, + '[[Enumerable]]': false, + '[[Value]]': V, + '[[Writable]]': true + }; + return DefinePropertyOrThrow(O, P, newDesc); +}; diff --git a/node_modules/es-abstract/2024/CreateRegExpStringIterator.js b/node_modules/es-abstract/2024/CreateRegExpStringIterator.js new file mode 100644 index 0000000000000000000000000000000000000000..5b171bfcfe0b4150373378a8615fef54e571e80e --- /dev/null +++ b/node_modules/es-abstract/2024/CreateRegExpStringIterator.js @@ -0,0 +1,101 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var hasSymbols = require('has-symbols')(); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var IteratorPrototype = GetIntrinsic('%IteratorPrototype%', true); + +var AdvanceStringIndex = require('./AdvanceStringIndex'); +var CreateIterResultObject = require('./CreateIterResultObject'); +var DefineMethodProperty = require('./DefineMethodProperty'); +var Get = require('./Get'); +var OrdinaryObjectCreate = require('./OrdinaryObjectCreate'); +var RegExpExec = require('./RegExpExec'); +var Set = require('./Set'); +var ToLength = require('./ToLength'); +var ToString = require('./ToString'); + +var SLOT = require('internal-slot'); +var setToStringTag = require('es-set-tostringtag'); + +var RegExpStringIterator = function RegExpStringIterator(R, S, global, fullUnicode) { + if (typeof S !== 'string') { + throw new $TypeError('`S` must be a string'); + } + if (typeof global !== 'boolean') { + throw new $TypeError('`global` must be a boolean'); + } + if (typeof fullUnicode !== 'boolean') { + throw new $TypeError('`fullUnicode` must be a boolean'); + } + SLOT.set(this, '[[IteratingRegExp]]', R); + SLOT.set(this, '[[IteratedString]]', S); + SLOT.set(this, '[[Global]]', global); + SLOT.set(this, '[[Unicode]]', fullUnicode); + SLOT.set(this, '[[Done]]', false); +}; + +if (IteratorPrototype) { + RegExpStringIterator.prototype = OrdinaryObjectCreate(IteratorPrototype); +} + +var RegExpStringIteratorNext = function next() { + var O = this; + if (!isObject(O)) { + throw new $TypeError('receiver must be an object'); + } + if ( + !(O instanceof RegExpStringIterator) + || !SLOT.has(O, '[[IteratingRegExp]]') + || !SLOT.has(O, '[[IteratedString]]') + || !SLOT.has(O, '[[Global]]') + || !SLOT.has(O, '[[Unicode]]') + || !SLOT.has(O, '[[Done]]') + ) { + throw new $TypeError('"this" value must be a RegExpStringIterator instance'); + } + if (SLOT.get(O, '[[Done]]')) { + return CreateIterResultObject(undefined, true); + } + var R = SLOT.get(O, '[[IteratingRegExp]]'); + var S = SLOT.get(O, '[[IteratedString]]'); + var global = SLOT.get(O, '[[Global]]'); + var fullUnicode = SLOT.get(O, '[[Unicode]]'); + var match = RegExpExec(R, S); + if (match === null) { + SLOT.set(O, '[[Done]]', true); + return CreateIterResultObject(undefined, true); + } + if (global) { + var matchStr = ToString(Get(match, '0')); + if (matchStr === '') { + var thisIndex = ToLength(Get(R, 'lastIndex')); + var nextIndex = AdvanceStringIndex(S, thisIndex, fullUnicode); + Set(R, 'lastIndex', nextIndex, true); + } + return CreateIterResultObject(match, false); + } + SLOT.set(O, '[[Done]]', true); + return CreateIterResultObject(match, false); +}; +DefineMethodProperty(RegExpStringIterator.prototype, 'next', RegExpStringIteratorNext, false); + +if (hasSymbols) { + setToStringTag(RegExpStringIterator.prototype, 'RegExp String Iterator'); + + if (Symbol.iterator && typeof RegExpStringIterator.prototype[Symbol.iterator] !== 'function') { + var iteratorFn = function SymbolIterator() { + return this; + }; + DefineMethodProperty(RegExpStringIterator.prototype, Symbol.iterator, iteratorFn, false); + } +} + +// https://262.ecma-international.org/15.0/#sec-createregexpstringiterator + +module.exports = function CreateRegExpStringIterator(R, S, global, fullUnicode) { + // assert R.global === global && R.unicode === fullUnicode? + return new RegExpStringIterator(R, S, global, fullUnicode); +}; diff --git a/node_modules/es-abstract/2024/DateFromTime.js b/node_modules/es-abstract/2024/DateFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..ec7edcd295f8bdd79eb60e44d8a17bb0b90fd80d --- /dev/null +++ b/node_modules/es-abstract/2024/DateFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/2024/DateString.js b/node_modules/es-abstract/2024/DateString.js new file mode 100644 index 0000000000000000000000000000000000000000..8106127a7d9e7708279035a2488e66cd49bbd5cb --- /dev/null +++ b/node_modules/es-abstract/2024/DateString.js @@ -0,0 +1,27 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; +var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + +var $isNaN = require('math-intrinsics/isNaN'); +var padTimeComponent = require('../helpers/padTimeComponent'); + +var DateFromTime = require('./DateFromTime'); +var MonthFromTime = require('./MonthFromTime'); +var WeekDay = require('./WeekDay'); +var YearFromTime = require('./YearFromTime'); + +// https://262.ecma-international.org/9.0/#sec-datestring + +module.exports = function DateString(tv) { + if (typeof tv !== 'number' || $isNaN(tv)) { + throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); + } + var weekday = weekdays[WeekDay(tv)]; + var month = months[MonthFromTime(tv)]; + var day = padTimeComponent(DateFromTime(tv)); + var year = padTimeComponent(YearFromTime(tv), 4); + return weekday + '\x20' + month + '\x20' + day + '\x20' + year; +}; diff --git a/node_modules/es-abstract/2024/Day.js b/node_modules/es-abstract/2024/Day.js new file mode 100644 index 0000000000000000000000000000000000000000..51d01033c81cbd356ff4da8010c166137364237d --- /dev/null +++ b/node_modules/es-abstract/2024/Day.js @@ -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); +}; diff --git a/node_modules/es-abstract/2024/DayFromYear.js b/node_modules/es-abstract/2024/DayFromYear.js new file mode 100644 index 0000000000000000000000000000000000000000..341bf22a6c19352ec6225944fb49adeed22983e8 --- /dev/null +++ b/node_modules/es-abstract/2024/DayFromYear.js @@ -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); +}; + diff --git a/node_modules/es-abstract/2024/DayWithinYear.js b/node_modules/es-abstract/2024/DayWithinYear.js new file mode 100644 index 0000000000000000000000000000000000000000..4c580940a58c58dcc3f7c2f96c5bca8e8237ebfc --- /dev/null +++ b/node_modules/es-abstract/2024/DayWithinYear.js @@ -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)); +}; diff --git a/node_modules/es-abstract/2024/DaysInYear.js b/node_modules/es-abstract/2024/DaysInYear.js new file mode 100644 index 0000000000000000000000000000000000000000..7116c69027022323e41130f384db7cc3d35709f9 --- /dev/null +++ b/node_modules/es-abstract/2024/DaysInYear.js @@ -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; +}; diff --git a/node_modules/es-abstract/2024/DefineMethodProperty.js b/node_modules/es-abstract/2024/DefineMethodProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..f6eb168d4edebc7af367a994242bdd56f5f240e9 --- /dev/null +++ b/node_modules/es-abstract/2024/DefineMethodProperty.js @@ -0,0 +1,42 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); +var IsExtensible = require('./IsExtensible'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/13.0/#sec-definemethodproperty + +module.exports = function DefineMethodProperty(homeObject, key, closure, enumerable) { + if (!isObject(homeObject)) { + throw new $TypeError('Assertion failed: `homeObject` is not an Object'); + } + if (!isPropertyKey(key)) { + throw new $TypeError('Assertion failed: `key` is not a Property Key or a Private Name'); + } + if (typeof closure !== 'function') { + throw new $TypeError('Assertion failed: `closure` is not a function'); + } + if (typeof enumerable !== 'boolean') { + throw new $TypeError('Assertion failed: `enumerable` is not a Boolean'); + } + + // 1. Assert: homeObject is an ordinary, extensible object with no non-configurable properties. + if (!IsExtensible(homeObject)) { + throw new $TypeError('Assertion failed: `homeObject` is not an ordinary, extensible object, with no non-configurable properties'); + } + + // 2. If key is a Private Name, then + // a. Return PrivateElement { [[Key]]: key, [[Kind]]: method, [[Value]]: closure }. + // 3. Else, + var desc = { // step 3.a + '[[Value]]': closure, + '[[Writable]]': true, + '[[Enumerable]]': enumerable, + '[[Configurable]]': true + }; + DefinePropertyOrThrow(homeObject, key, desc); // step 3.b +}; diff --git a/node_modules/es-abstract/2024/DefinePropertyOrThrow.js b/node_modules/es-abstract/2024/DefinePropertyOrThrow.js new file mode 100644 index 0000000000000000000000000000000000000000..ff6683c3dc954ec27c072032bfcc0cfd70936587 --- /dev/null +++ b/node_modules/es-abstract/2024/DefinePropertyOrThrow.js @@ -0,0 +1,39 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyDescriptor = require('../helpers/records/property-descriptor'); +var DefineOwnProperty = require('../helpers/DefineOwnProperty'); + +var FromPropertyDescriptor = require('./FromPropertyDescriptor'); +var IsDataDescriptor = require('./IsDataDescriptor'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var SameValue = require('./SameValue'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-definepropertyorthrow + +module.exports = function DefinePropertyOrThrow(O, P, desc) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + + 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 + ); +}; diff --git a/node_modules/es-abstract/2024/DeletePropertyOrThrow.js b/node_modules/es-abstract/2024/DeletePropertyOrThrow.js new file mode 100644 index 0000000000000000000000000000000000000000..8841fda81f7663673367bdfc1af99794fb0ef747 --- /dev/null +++ b/node_modules/es-abstract/2024/DeletePropertyOrThrow.js @@ -0,0 +1,25 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/6.0/#sec-deletepropertyorthrow + +module.exports = function DeletePropertyOrThrow(O, P) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + + // eslint-disable-next-line no-param-reassign + var success = delete O[P]; + if (!success) { + throw new $TypeError('Attempt to delete property failed.'); + } + return success; +}; diff --git a/node_modules/es-abstract/2024/DetachArrayBuffer.js b/node_modules/es-abstract/2024/DetachArrayBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..6ded9de5652c4483ba14060ba82380eb3e63d92a --- /dev/null +++ b/node_modules/es-abstract/2024/DetachArrayBuffer.js @@ -0,0 +1,46 @@ +'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; +} catch (e) { /**/ } + +// https://262.ecma-international.org/9.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'); + } + + // commented out since there's no way to set or access this key + // var key = arguments.length > 1 ? arguments[1] : void undefined; + + // if (!SameValue(arrayBuffer[[ArrayBufferDetachKey]], key)) { + // throw new $TypeError('Assertion failed: `key` must be the value of the [[ArrayBufferDetachKey]] internal slot of `arrayBuffer`'); + // } + + 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; +}; diff --git a/node_modules/es-abstract/2024/EnumerableOwnProperties.js b/node_modules/es-abstract/2024/EnumerableOwnProperties.js new file mode 100644 index 0000000000000000000000000000000000000000..cd606db53067db473c794b383a59a2d967897fd9 --- /dev/null +++ b/node_modules/es-abstract/2024/EnumerableOwnProperties.js @@ -0,0 +1,36 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var objectKeys = require('object-keys'); +var safePushApply = require('safe-push-apply'); +var callBound = require('call-bound'); + +var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); + +var forEach = require('../helpers/forEach'); + +// https://262.ecma-international.org/14.0/#sec-enumerableownproperties + +module.exports = function EnumerableOwnProperties(O, kind) { + if (!isObject(O)) { + 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)) { + safePushApply(results, [ + kind === 'value' ? O[key] : [key, O[key]] + ]); + } + }); + return results; + } + throw new $TypeError('Assertion failed: "kind" is not "key", "value", or "key+value": ' + kind); +}; diff --git a/node_modules/es-abstract/2024/FindViaPredicate.js b/node_modules/es-abstract/2024/FindViaPredicate.js new file mode 100644 index 0000000000000000000000000000000000000000..f7bdc3be2ffa5dfd907056d83d9a01a147dd1d03 --- /dev/null +++ b/node_modules/es-abstract/2024/FindViaPredicate.js @@ -0,0 +1,43 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); +var Get = require('./Get'); +var ToBoolean = require('./ToBoolean'); +var IsCallable = require('./IsCallable'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/15.0/#sec-findviapredicate + +module.exports = function FindViaPredicate(O, len, direction, predicate, thisArg) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + if (!isInteger(len) || len < 0) { + throw new $TypeError('Assertion failed: len must be a non-negative integer'); + } + if (direction !== 'ascending' && direction !== 'descending' && direction !== 'DESCENDING' && direction !== 'ASCENDING') { + throw new $TypeError('Assertion failed: direction must be ~ASCENDING~ or ~DESCENDING~'); + } + + if (!IsCallable(predicate)) { + throw new $TypeError('predicate must be callable'); // step 1 + } + + for ( // steps 2-4 + var k = direction === 'ascending' || direction === 'ASCENDING' ? 0 : len - 1; + direction === 'ascending' || direction === 'ASCENDING' ? k < len : k >= 0; + k += 1 + ) { + var Pk = ToString(k); // step 4.a + var kValue = Get(O, Pk); // step 4.c + var testResult = Call(predicate, thisArg, [kValue, k, O]); // step 4.d + if (ToBoolean(testResult)) { + return { '[[Index]]': k, '[[Value]]': kValue }; // step 4.e + } + } + return { '[[Index]]': -1, '[[Value]]': void undefined }; // step 5 +}; diff --git a/node_modules/es-abstract/2024/FlattenIntoArray.js b/node_modules/es-abstract/2024/FlattenIntoArray.js new file mode 100644 index 0000000000000000000000000000000000000000..78dc57c8cc90f0c0a60adb32fc7f41c230c4a591 --- /dev/null +++ b/node_modules/es-abstract/2024/FlattenIntoArray.js @@ -0,0 +1,55 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger'); + +var Call = require('./Call'); +var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); +var Get = require('./Get'); +var HasProperty = require('./HasProperty'); +var IsArray = require('./IsArray'); +var LengthOfArrayLike = require('./LengthOfArrayLike'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/11.0/#sec-flattenintoarray + +module.exports = function FlattenIntoArray(target, source, sourceLen, start, depth) { + var mapperFunction; + if (arguments.length > 5) { + mapperFunction = arguments[5]; + } + + var targetIndex = start; + var sourceIndex = 0; + while (sourceIndex < sourceLen) { + var P = ToString(sourceIndex); + var exists = HasProperty(source, P); + if (exists === true) { + var element = Get(source, P); + if (typeof mapperFunction !== 'undefined') { + if (arguments.length <= 6) { + throw new $TypeError('Assertion failed: thisArg is required when mapperFunction is provided'); + } + element = Call(mapperFunction, arguments[6], [element, sourceIndex, source]); + } + var shouldFlatten = false; + if (depth > 0) { + shouldFlatten = IsArray(element); + } + if (shouldFlatten) { + var elementLen = LengthOfArrayLike(element); + targetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1); + } else { + if (targetIndex >= MAX_SAFE_INTEGER) { + throw new $TypeError('index too large'); + } + CreateDataPropertyOrThrow(target, ToString(targetIndex), element); + targetIndex += 1; + } + } + sourceIndex += 1; + } + + return targetIndex; +}; diff --git a/node_modules/es-abstract/2024/FromPropertyDescriptor.js b/node_modules/es-abstract/2024/FromPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..45b6379f1214c415e1e43b855db01f18b3566cba --- /dev/null +++ b/node_modules/es-abstract/2024/FromPropertyDescriptor.js @@ -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); +}; diff --git a/node_modules/es-abstract/2024/Get.js b/node_modules/es-abstract/2024/Get.js new file mode 100644 index 0000000000000000000000000000000000000000..42f7a14d853e05735d4166708590df2743cfa74c --- /dev/null +++ b/node_modules/es-abstract/2024/Get.js @@ -0,0 +1,24 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var inspect = require('object-inspect'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +var isObject = require('es-object-atoms/isObject'); + +// https://262.ecma-international.org/6.0/#sec-get-o-p + +module.exports = function Get(O, P) { + // 7.3.1.1 + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + // 7.3.1.2 + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key, got ' + inspect(P)); + } + // 7.3.1.3 + return O[P]; +}; diff --git a/node_modules/es-abstract/2024/GetArrayBufferMaxByteLengthOption.js b/node_modules/es-abstract/2024/GetArrayBufferMaxByteLengthOption.js new file mode 100644 index 0000000000000000000000000000000000000000..f6d4ec018c0d12baa5973132f8682661849db44f --- /dev/null +++ b/node_modules/es-abstract/2024/GetArrayBufferMaxByteLengthOption.js @@ -0,0 +1,22 @@ +'use strict'; + +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var ToIndex = require('./ToIndex'); + +// https://262.ecma-international.org/15.0/#sec-getarraybuffermaxbytelengthoption + +module.exports = function GetArrayBufferMaxByteLengthOption(options) { + if (!isObject(options)) { + return 'EMPTY'; // step 1 + } + + var maxByteLength = Get(options, 'maxByteLength'); // step 2 + + if (typeof maxByteLength === 'undefined') { + return 'EMPTY'; // step 3 + } + + return ToIndex(maxByteLength); // step 4 +}; diff --git a/node_modules/es-abstract/2024/GetGlobalObject.js b/node_modules/es-abstract/2024/GetGlobalObject.js new file mode 100644 index 0000000000000000000000000000000000000000..0541ede0c48889fefe9a137e0e37a2e13573c091 --- /dev/null +++ b/node_modules/es-abstract/2024/GetGlobalObject.js @@ -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(); +}; diff --git a/node_modules/es-abstract/2024/GetIterator.js b/node_modules/es-abstract/2024/GetIterator.js new file mode 100644 index 0000000000000000000000000000000000000000..fc2a4bd1a744b2ac1453c46caf5f90ccf78a6ac9 --- /dev/null +++ b/node_modules/es-abstract/2024/GetIterator.js @@ -0,0 +1,53 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $asyncIterator = GetIntrinsic('%Symbol.asyncIterator%', true); + +var inspect = require('object-inspect'); +var hasSymbols = require('has-symbols')(); + +var AdvanceStringIndex = require('./AdvanceStringIndex'); +var CreateAsyncFromSyncIterator = require('./CreateAsyncFromSyncIterator'); +var GetIteratorFromMethod = require('./GetIteratorFromMethod'); +var GetMethod = require('./GetMethod'); + +var ES = { + AdvanceStringIndex: AdvanceStringIndex, + GetMethod: GetMethod +}; + +var getIteratorMethod = require('../helpers/getIteratorMethod'); + +// https://262.ecma-international.org/14.0/#sec-getiterator + +module.exports = function GetIterator(obj, kind) { + if (kind !== 'SYNC' && kind !== 'ASYNC') { + throw new $TypeError("Assertion failed: `kind` must be one of 'sync' or 'async', got " + inspect(kind)); + } + + var method; + if (kind === 'ASYNC') { // step 1 + if (hasSymbols && $asyncIterator) { + method = GetMethod(obj, $asyncIterator); // step 1.a + } + } + if (typeof method === 'undefined') { // step 1.b + // var syncMethod = GetMethod(obj, $iterator); // step 1.b.i + var syncMethod = getIteratorMethod(ES, obj); + if (kind === 'ASYNC') { + if (typeof syncMethod === 'undefined') { + throw new $TypeError('iterator method is `undefined`'); // step 1.b.ii + } + var syncIteratorRecord = GetIteratorFromMethod(obj, syncMethod); // step 1.b.iii + return CreateAsyncFromSyncIterator(syncIteratorRecord); // step 1.b.iv + } + method = syncMethod; // step 2, kind of + } + + if (typeof method === 'undefined') { + throw new $TypeError('iterator method is `undefined`'); // step 3 + } + return GetIteratorFromMethod(obj, method); // step 4 +}; diff --git a/node_modules/es-abstract/2024/GetIteratorFromMethod.js b/node_modules/es-abstract/2024/GetIteratorFromMethod.js new file mode 100644 index 0000000000000000000000000000000000000000..470c6c04462c20dc9343b99aba24e9cd22bc6ef6 --- /dev/null +++ b/node_modules/es-abstract/2024/GetIteratorFromMethod.js @@ -0,0 +1,28 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); + +// https://262.ecma-international.org/15.0/#sec-getiteratorfrommethod + +module.exports = function GetIteratorFromMethod(obj, method) { + if (!IsCallable(method)) { + throw new $TypeError('method must be a function'); + } + + var iterator = Call(method, obj); // step 1 + if (!isObject(iterator)) { + throw new $TypeError('iterator must return an object'); // step 2 + } + + var nextMethod = Get(iterator, 'next'); // step 3 + return { // steps 4-5 + '[[Iterator]]': iterator, + '[[NextMethod]]': nextMethod, + '[[Done]]': false + }; +}; diff --git a/node_modules/es-abstract/2024/GetMatchIndexPair.js b/node_modules/es-abstract/2024/GetMatchIndexPair.js new file mode 100644 index 0000000000000000000000000000000000000000..76cda5d841f9ac233954d221eee40c7a06bacc3a --- /dev/null +++ b/node_modules/es-abstract/2024/GetMatchIndexPair.js @@ -0,0 +1,24 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isMatchRecord = require('../helpers/records/match-record'); + +// https://262.ecma-international.org/13.0/#sec-getmatchindexpair + +module.exports = function GetMatchIndexPair(S, match) { + if (typeof S !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + if (!isMatchRecord(match)) { + throw new $TypeError('Assertion failed: `match` must be a Match Record'); + } + + if (!(match['[[StartIndex]]'] <= S.length)) { + throw new $TypeError('`match` [[StartIndex]] must be a non-negative integer <= the length of S'); + } + if (!(match['[[EndIndex]]'] <= S.length)) { + throw new $TypeError('`match` [[EndIndex]] must be an integer between [[StartIndex]] and the length of S, inclusive'); + } + return [match['[[StartIndex]]'], match['[[EndIndex]]']]; +}; diff --git a/node_modules/es-abstract/2024/GetMatchString.js b/node_modules/es-abstract/2024/GetMatchString.js new file mode 100644 index 0000000000000000000000000000000000000000..7fddd4ea202f7482baaa85b582a8fcbe069caa12 --- /dev/null +++ b/node_modules/es-abstract/2024/GetMatchString.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var substring = require('./substring'); + +var isMatchRecord = require('../helpers/records/match-record'); + +// https://262.ecma-international.org/13.0/#sec-getmatchstring + +module.exports = function GetMatchString(S, match) { + if (typeof S !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + if (!isMatchRecord(match)) { + throw new $TypeError('Assertion failed: `match` must be a Match Record'); + } + + if (!(match['[[StartIndex]]'] <= S.length)) { + throw new $TypeError('`match` [[StartIndex]] must be a non-negative integer <= the length of S'); + } + if (!(match['[[EndIndex]]'] <= S.length)) { + throw new $TypeError('`match` [[EndIndex]] must be an integer between [[StartIndex]] and the length of S, inclusive'); + } + return substring(S, match['[[StartIndex]]'], match['[[EndIndex]]']); +}; diff --git a/node_modules/es-abstract/2024/GetMethod.js b/node_modules/es-abstract/2024/GetMethod.js new file mode 100644 index 0000000000000000000000000000000000000000..e28bb1501fc8e4d4a67250c5110cba73bbcba385 --- /dev/null +++ b/node_modules/es-abstract/2024/GetMethod.js @@ -0,0 +1,34 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var GetV = require('./GetV'); +var IsCallable = require('./IsCallable'); +var isPropertyKey = require('../helpers/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: P is not a Property Key'); + } + + // 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; +}; diff --git a/node_modules/es-abstract/2024/GetNamedTimeZoneEpochNanoseconds.js b/node_modules/es-abstract/2024/GetNamedTimeZoneEpochNanoseconds.js new file mode 100644 index 0000000000000000000000000000000000000000..6577062583d1a8073c49a5716d7f02916c2a373a --- /dev/null +++ b/node_modules/es-abstract/2024/GetNamedTimeZoneEpochNanoseconds.js @@ -0,0 +1,72 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var GetUTCEpochNanoseconds = require('./GetUTCEpochNanoseconds'); + +var isInteger = require('math-intrinsics/isInteger'); + +// https://262.ecma-international.org/14.0/#sec-getnamedtimezoneepochnanoseconds + +// eslint-disable-next-line max-params +module.exports = function GetNamedTimeZoneEpochNanoseconds( + timeZoneIdentifier, + year, + month, + day, + hour, + minute, + second, + millisecond, + microsecond, + nanosecond +) { + if (typeof timeZoneIdentifier !== 'string') { + throw new $TypeError('Assertion failed: `timeZoneIdentifier` must be a string'); + } + if (!isInteger(year)) { + throw new $TypeError('Assertion failed: `year` must be an integral number'); + } + if (!isInteger(month) || month < 1 || month > 12) { + throw new $TypeError('Assertion failed: `month` must be an integral number between 1 and 12, inclusive'); + } + if (!isInteger(day) || day < 1 || day > 31) { + throw new $TypeError('Assertion failed: `day` must be an integral number between 1 and 31, inclusive'); + } + if (!isInteger(hour) || hour < 0 || hour > 23) { + throw new $TypeError('Assertion failed: `hour` must be an integral number between 0 and 23, inclusive'); + } + if (!isInteger(minute) || minute < 0 || minute > 59) { + throw new $TypeError('Assertion failed: `minute` must be an integral number between 0 and 59, inclusive'); + } + if (!isInteger(second) || second < 0 || second > 999) { + throw new $TypeError('Assertion failed: `second` must be an integral number between 0 and 999, inclusive'); + } + if (!isInteger(millisecond) || millisecond < 0 || millisecond > 999) { + throw new $TypeError('Assertion failed: `millisecond` must be an integral number between 0 and 999, inclusive'); + } + if (!isInteger(microsecond) || microsecond < 0 || microsecond > 999) { + throw new $TypeError('Assertion failed: `microsecond` must be an integral number between 0 and 999, inclusive'); + } + if (!isInteger(nanosecond) || nanosecond < 0 || nanosecond > 999) { + throw new $TypeError('Assertion failed: `nanosecond` must be an integral number between 0 and 999, inclusive'); + } + + if (timeZoneIdentifier !== 'UTC') { + throw new $TypeError('Assertion failed: only UTC time zone is supported'); // step 1 + } + + var epochNanoseconds = GetUTCEpochNanoseconds( + year, + month, + day, + hour, + minute, + second, + millisecond, + microsecond, + nanosecond + ); // step 2 + + return [epochNanoseconds]; // step 3 +}; diff --git a/node_modules/es-abstract/2024/GetOwnPropertyKeys.js b/node_modules/es-abstract/2024/GetOwnPropertyKeys.js new file mode 100644 index 0000000000000000000000000000000000000000..e9b50d744a5fdf42221ad18e6674e777fa3b0a47 --- /dev/null +++ b/node_modules/es-abstract/2024/GetOwnPropertyKeys.js @@ -0,0 +1,30 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var hasSymbols = require('has-symbols')(); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true); +var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%', true); +var keys = require('object-keys'); + +// https://262.ecma-international.org/6.0/#sec-getownpropertykeys + +module.exports = function GetOwnPropertyKeys(O, Type) { + if (!isObject(O)) { + 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"`'); +}; diff --git a/node_modules/es-abstract/2024/GetPromiseResolve.js b/node_modules/es-abstract/2024/GetPromiseResolve.js new file mode 100644 index 0000000000000000000000000000000000000000..7c9d9a945a0c268fa7558eec169a2cee0e903b86 --- /dev/null +++ b/node_modules/es-abstract/2024/GetPromiseResolve.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); +var IsConstructor = require('./IsConstructor'); + +// https://262.ecma-international.org/12.0/#sec-getpromiseresolve + +module.exports = function GetPromiseResolve(promiseConstructor) { + if (!IsConstructor(promiseConstructor)) { + throw new $TypeError('Assertion failed: `promiseConstructor` must be a constructor'); + } + var promiseResolve = Get(promiseConstructor, 'resolve'); + if (IsCallable(promiseResolve) === false) { + throw new $TypeError('`resolve` method is not callable'); + } + return promiseResolve; +}; diff --git a/node_modules/es-abstract/2024/GetPrototypeFromConstructor.js b/node_modules/es-abstract/2024/GetPrototypeFromConstructor.js new file mode 100644 index 0000000000000000000000000000000000000000..687f6ef200fb11a3dc97a27533d15430c305fb3b --- /dev/null +++ b/node_modules/es-abstract/2024/GetPrototypeFromConstructor.js @@ -0,0 +1,33 @@ +'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 isObject = require('es-object-atoms/isObject'); + +// 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 (!isObject(intrinsic)) { + 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 (!isObject(proto)) { + if (!(constructor instanceof $Function)) { + // ignore other realms, for now + throw new $SyntaxError('cross-realm constructors not currently supported'); + } + proto = intrinsic; + } + return proto; +}; diff --git a/node_modules/es-abstract/2024/GetStringIndex.js b/node_modules/es-abstract/2024/GetStringIndex.js new file mode 100644 index 0000000000000000000000000000000000000000..101198ff01a6d832dbc8f84c0ff574944e67a8b6 --- /dev/null +++ b/node_modules/es-abstract/2024/GetStringIndex.js @@ -0,0 +1,27 @@ +'use strict'; + +var callBound = require('call-bound'); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); + +var StringToCodePoints = require('./StringToCodePoints'); + +var $indexOf = callBound('String.prototype.indexOf'); + +// https://262.ecma-international.org/13.0/#sec-getstringindex + +module.exports = function GetStringIndex(S, e) { + if (typeof S !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + if (!isInteger(e) || e < 0) { + throw new $TypeError('Assertion failed: `e` must be a non-negative integer'); + } + + if (S === '') { + return 0; + } + var codepoints = StringToCodePoints(S); + var eUTF = e >= codepoints.length ? S.length : $indexOf(S, codepoints[e]); + return eUTF; +}; diff --git a/node_modules/es-abstract/2024/GetSubstitution.js b/node_modules/es-abstract/2024/GetSubstitution.js new file mode 100644 index 0000000000000000000000000000000000000000..46ee064179c802b4992ac351050da482c1a155fe --- /dev/null +++ b/node_modules/es-abstract/2024/GetSubstitution.js @@ -0,0 +1,148 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var inspect = require('object-inspect'); +var isInteger = require('math-intrinsics/isInteger'); +var isObject = require('es-object-atoms/isObject'); +var regexTester = require('safe-regex-test'); + +var Get = require('./Get'); +var IsArray = require('./IsArray'); +var min = require('./min'); +var StringIndexOf = require('./StringIndexOf'); +var StringToNumber = require('./StringToNumber'); +var substring = require('./substring'); +var ToString = require('./ToString'); + +var every = require('../helpers/every'); +var isPrefixOf = require('../helpers/isPrefixOf'); +var isStringOrUndefined = require('../helpers/isStringOrUndefined'); + +var startsWithDollarDigit = regexTester(/^\$[0-9]/); +var startsWithDollarTwoDigit = regexTester(/^\$[0-9][0-9]/); + +// http://www.ecma-international.org/ecma-262/15.0/#sec-getsubstitution + +// eslint-disable-next-line max-statements, max-params, max-lines-per-function +module.exports = function GetSubstitution(matched, str, position, captures, namedCaptures, replacementTemplate) { + if (typeof matched !== 'string') { + throw new $TypeError('Assertion failed: `matched` must be a String'); + } + + if (typeof str !== 'string') { + throw new $TypeError('Assertion failed: `str` must be a String'); + } + + if (!isInteger(position) || position < 0) { + throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, got ' + inspect(position)); + } + + if (!IsArray(captures) || !every(captures, isStringOrUndefined)) { + throw new $TypeError('Assertion failed: `captures` must be a possibly-empty List of Strings or `undefined`, got ' + inspect(captures)); + } + + if (typeof namedCaptures !== 'undefined' && !isObject(namedCaptures)) { + throw new $TypeError('Assertion failed: `namedCaptures` must be `undefined` or an Object'); + } + + if (typeof replacementTemplate !== 'string') { + throw new $TypeError('Assertion failed: `replacementTemplate` must be a String'); + } + + var stringLength = str.length; // step 1 + + if (position > stringLength) { + throw new $TypeError('Assertion failed: position > stringLength, got ' + inspect(position)); // step 2 + } + + var templateRemainder = replacementTemplate; // step 3 + + var result = ''; // step 4 + + while (templateRemainder !== '') { // step 5 + // 5.a NOTE: The following steps isolate ref (a prefix of templateRemainder), determine refReplacement (its replacement), and then append that replacement to result. + + var ref, refReplacement, capture; + if (isPrefixOf('$$', templateRemainder)) { // step 5.b + ref = '$$'; // step 5.b.i + refReplacement = '$'; // step 5.b.ii + } else if (isPrefixOf('$`', templateRemainder)) { // step 5.c + ref = '$`'; // step 5.c.i + refReplacement = substring(str, 0, position); // step 5.c.ii + } else if (isPrefixOf('$&', templateRemainder)) { // step 5.d + ref = '$&'; // step 5.d.i + refReplacement = matched; // step 5.d.ii + } else if (isPrefixOf('$\'', templateRemainder)) { // step 5.e + ref = '$\''; // step 5.e.i + var matchLength = matched.length; // step 5.e.ii + var tailPos = position + matchLength; // step 5.e.iii + refReplacement = substring(str, min(tailPos, stringLength)); // step 5.e.iv + // 5.e.v NOTE: tailPos can exceed stringLength only if this abstract operation was invoked by a call to the intrinsic @@replace method of %RegExp.prototype% on an object whose "exec" property is not the intrinsic %RegExp.prototype.exec%. + } else if (startsWithDollarDigit(templateRemainder)) { // step 5.f + var digitCount = startsWithDollarTwoDigit(templateRemainder) ? 2 : 1; // step 5.f.i + + var digits = substring(templateRemainder, 1, 1 + digitCount); // step 5.f.ii + + var index = StringToNumber(digits); // step 5.f.iii + + if (index < 0 || index > 99) { + throw new $TypeError('Assertion failed: `index` must be >= 0 and <= 99'); // step 5.f.iv + } + + var captureLen = captures.length; // step 5.f.v + + if (index > captureLen && digitCount === 2) { // step 5.f.vi + // 1. NOTE: When a two-digit replacement pattern specifies an index exceeding the count of capturing groups, it is treated as a one-digit replacement pattern followed by a literal digit. + + digitCount = 1; // step 5.f.vi.2 + + digits = substring(digits, 0, 1); // step 5.f.vi.3 + + index = StringToNumber(digits); // step 5.f.vi.4 + } + + ref = substring(templateRemainder, 0, 1 + digitCount); // step 5.f.vii + + if (1 <= index && index <= captureLen) { // step 5.f.viii + capture = captures[index - 1]; // step 5.f.viii.1 + + if (typeof capture === 'undefined') { // step 5.f.viii.2 + refReplacement = ''; // step 5.f.viii.2.a + } else { // step 5.f.viii.3 + refReplacement = capture; // step 5.f.viii.3.a + } + } else { // step 5.f.ix + refReplacement = ref; // step 5.f.ix.1 + } + } else if (isPrefixOf('$<', templateRemainder)) { // step 5.g + var gtPos = StringIndexOf(templateRemainder, '>', 0); // step 5.g.i + if (!(gtPos > -1) || typeof namedCaptures === 'undefined') { // step 5.g.ii + ref = '$<'; // step 5.g.ii.1 + refReplacement = ref; // step 5.g.ii.2 + } else { // step 5.g.iii + ref = substring(templateRemainder, 0, gtPos + 1); // step 5.g.iii.1 + var groupName = substring(templateRemainder, 2, gtPos); // step 5.g.iii.2 + if (!isObject(namedCaptures)) { + throw new $TypeError('Assertion failed: Type(namedCaptures) is not Object'); // step 5.g.iii.3 + } + capture = Get(namedCaptures, groupName); // step 5.g.iii.4 + if (typeof capture === 'undefined') { // step 5.g.iii.5 + refReplacement = ''; // step 5.g.iii.5.a + } else { // step 5.g.iii.6 + refReplacement = ToString(capture); // step 5.g.iii.6.a + } + } + } else { // step 5.h + ref = substring(templateRemainder, 0, 1); // step 5.h.i + refReplacement = ref; // step 5.h.ii + } + + var refLength = ref.length; // step 5.i + + templateRemainder = substring(templateRemainder, refLength); // step 5.j + + result += refReplacement; // step 5.k + } + + return result; // step 6 +}; diff --git a/node_modules/es-abstract/2024/GetUTCEpochNanoseconds.js b/node_modules/es-abstract/2024/GetUTCEpochNanoseconds.js new file mode 100644 index 0000000000000000000000000000000000000000..bf645b1d0462515d71dd22c5685e0d34d9488636 --- /dev/null +++ b/node_modules/es-abstract/2024/GetUTCEpochNanoseconds.js @@ -0,0 +1,68 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var MakeDay = require('./MakeDay'); +var MakeTime = require('./MakeTime'); +var MakeDate = require('./MakeDate'); + +var isInteger = require('math-intrinsics/isInteger'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $SyntaxError = GetIntrinsic('%SyntaxError%'); +var $TypeError = GetIntrinsic('%TypeError%'); + +// https://tc39.es/ecma262/#sec-getutcepochnanoseconds + +// eslint-disable-next-line max-params +module.exports = function GetUTCEpochNanoseconds( + year, + month, + day, + hour, + minute, + second, + millisecond, + microsecond, + nanosecond +) { + if (!isInteger(year)) { + throw new $TypeError('Assertion failed: `year` must be an integral Number'); + } + if (!isInteger(month) || month < 1 || month > 12) { + throw new $TypeError('Assertion failed: `month` must be an integral Number between 1 and 12, inclusive'); + } + if (!isInteger(day) || day < 1 || day > 31) { + throw new $TypeError('Assertion failed: `day` must be an integral Number between 1 and 31, inclusive'); + } + if (!isInteger(hour) || hour < 0 || hour > 23) { + throw new $TypeError('Assertion failed: `hour` must be an integral Number between 0 and 23, inclusive'); + } + if (!isInteger(minute) || minute < 0 || minute > 59) { + throw new $TypeError('Assertion failed: `minute` must be an integral Number between 0 and 59, inclusive'); + } + if (!isInteger(second) || second < 0 || second > 59) { + throw new $TypeError('Assertion failed: `second` must be an integral Number between 0 and 59, inclusive'); + } + if (!isInteger(millisecond) || millisecond < 0 || millisecond > 999) { + throw new $TypeError('Assertion failed: `millisecond` must be an integral Number between 0 and 999, inclusive'); + } + if (!isInteger(microsecond) || microsecond < 0 || microsecond > 999) { + throw new $TypeError('Assertion failed: `microsecond` must be an integral Number between 0 and 999, inclusive'); + } + if (!isInteger(nanosecond) || nanosecond < 0 || nanosecond > 999) { + throw new $TypeError('Assertion failed: `nanosecond` must be an integral Number between 0 and 999, inclusive'); + } + + var date = MakeDay(year, month - 1, day); // step 1 + var time = MakeTime(hour, minute, second, millisecond); // step 2 + var ms = MakeDate(date, time); // step 3 + if (!isInteger(ms)) { + throw new $TypeError('Assertion failed: `ms` from MakeDate is not an integral Number'); // step 4 + } + + if (!$BigInt) { + throw new $SyntaxError('BigInts are not supported in this environment'); + } + return $BigInt((ms * 1e6) + (microsecond * 1e3) + nanosecond); // step 5 +}; diff --git a/node_modules/es-abstract/2024/GetV.js b/node_modules/es-abstract/2024/GetV.js new file mode 100644 index 0000000000000000000000000000000000000000..920dec3c4a4eac8aa63678c2afa5683e79e3337f --- /dev/null +++ b/node_modules/es-abstract/2024/GetV.js @@ -0,0 +1,23 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var inspect = require('object-inspect'); + +var isPropertyKey = require('../helpers/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: P is not a Property Key, got ' + inspect(P)); + } + + // 7.3.2.2-3 + // var O = ToObject(V); + + // 7.3.2.4 + return V[P]; +}; diff --git a/node_modules/es-abstract/2024/GetValueFromBuffer.js b/node_modules/es-abstract/2024/GetValueFromBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..88607ae34aff5f8c051cde70fbf97bd622d6b40d --- /dev/null +++ b/node_modules/es-abstract/2024/GetValueFromBuffer.js @@ -0,0 +1,95 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); +var $Uint8Array = GetIntrinsic('%Uint8Array%', true); + +var $slice = callBound('Array.prototype.slice'); + +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var RawBytesToNumeric = require('./RawBytesToNumeric'); + +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/15.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' || typeof tableTAO.size['$' + type] !== 'number') { + throw new $TypeError('Assertion failed: `type` must be one of ' + tableTAO.choices); + } + + if (typeof isTypedArray !== 'boolean') { + throw new $TypeError('Assertion failed: `isTypedArray` must be a boolean'); + } + + if (order !== 'SEQ-CST' && order !== 'UNORDERED') { + throw new $TypeError('Assertion failed: `order` must be either `SEQ-CST` or `UNORDERED`'); + } + + 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 ' + tableTAO.choices); + } + + 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('SharedArrayBuffer is not supported by this implementation'); + } 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 RawBytesToNumeric(type, bytes, isLittleEndian); +}; diff --git a/node_modules/es-abstract/2024/GetViewByteLength.js b/node_modules/es-abstract/2024/GetViewByteLength.js new file mode 100644 index 0000000000000000000000000000000000000000..a5837e8b60c3d6d6149cfdf0a4ce924eee9d2fb7 --- /dev/null +++ b/node_modules/es-abstract/2024/GetViewByteLength.js @@ -0,0 +1,47 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); +var IsViewOutOfBounds = require('./IsViewOutOfBounds'); + +var isDataViewWithBufferWitnessRecord = require('../helpers/records/data-view-with-buffer-witness-record'); + +var dataViewBuffer = require('data-view-buffer'); +var dataViewByteLength = require('data-view-byte-length'); +var dataViewByteOffset = require('data-view-byte-offset'); + +// https://262.ecma-international.org/15.0/#sec-getviewbytelength + +module.exports = function GetViewByteLength(viewRecord) { + if (!isDataViewWithBufferWitnessRecord(viewRecord)) { + throw new $TypeError('Assertion failed: `viewRecord` must be a DataView with Buffer Witness Record'); + } + + if (IsViewOutOfBounds(viewRecord)) { + throw new $TypeError('Assertion failed: `viewRecord` is out of bounds'); // step 1 + } + + var view = viewRecord['[[Object]]']; // step 2 + + var isFixed = IsFixedLengthArrayBuffer(dataViewBuffer(view)); + + var viewByteLength = isFixed ? dataViewByteLength(view) : 'AUTO'; // view.[[ByteLength]] + if (viewByteLength !== 'AUTO') { + return viewByteLength; // step 3 + } + + if (isFixed) { + throw new $TypeError('Assertion failed: DataView’s ArrayBuffer is not fixed length'); // step 4 + } + + var byteOffset = dataViewByteOffset(view); // step 5 + + var byteLength = viewRecord['[[CachedBufferByteLength]]']; // step 6 + + if (byteLength === 'DETACHED') { + throw new $TypeError('Assertion failed: DataView’s ArrayBuffer is detached'); // step 7 + } + + return byteLength - byteOffset; // step 8 +}; diff --git a/node_modules/es-abstract/2024/GroupBy.js b/node_modules/es-abstract/2024/GroupBy.js new file mode 100644 index 0000000000000000000000000000000000000000..2dbf72b7c3baa53886df4ae998ca4f273344b8f0 --- /dev/null +++ b/node_modules/es-abstract/2024/GroupBy.js @@ -0,0 +1,75 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isNegativeZero = require('math-intrinsics/isNegativeZero'); +var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger'); + +var AddValueToKeyedGroup = require('./AddValueToKeyedGroup'); +var Call = require('./Call'); +var GetIterator = require('./GetIterator'); +var IsCallable = require('./IsCallable'); +var IteratorClose = require('./IteratorClose'); +var IteratorStep = require('./IteratorStep'); +var IteratorValue = require('./IteratorValue'); +var RequireObjectCoercible = require('./RequireObjectCoercible'); +var ThrowCompletion = require('./ThrowCompletion'); +var ToPropertyKey = require('./ToPropertyKey'); + +// https://262.ecma-international.org/15.0/#sec-groupby + +module.exports = function GroupBy(items, callbackfn, keyCoercion) { + if (keyCoercion !== 'PROPERTY' && keyCoercion !== 'ZERO') { + throw new $TypeError('Assertion failed: `keyCoercion` must be `"PROPERTY"` or `"ZERO"`'); + } + + RequireObjectCoercible(items); // step 1 + + if (!IsCallable(callbackfn)) { + throw new $TypeError('callbackfn must be callable'); // step 2 + } + + var groups = []; // step 3 + + var iteratorRecord = GetIterator(items, 'SYNC'); // step 4 + + var k = 0; // step 5 + + while (true) { // step 6 + if (k >= MAX_SAFE_INTEGER) { // step 6.a + var error = ThrowCompletion(new $TypeError('k must be less than 2 ** 53 - 1')); // step 6.a.i + return void IteratorClose(iteratorRecord, error); // step 6.a.ii + } + var next = IteratorStep(iteratorRecord); // step 6.b + if (!next) { // step 6.c + return groups; // step 6.c.i + } + + var value = IteratorValue(next); // step 6.dv + + var key; + try { + key = Call(callbackfn, undefined, [value, k]); // step 6.e + } catch (e) { + return void IteratorClose(iteratorRecord, ThrowCompletion(e)); // step 6.f + } + + if (keyCoercion === 'PROPERTY') { // step 6.g + try { + key = ToPropertyKey(key); // step 6.g.i + } catch (e) { + return void IteratorClose(iteratorRecord, ThrowCompletion(e)); // step 6.g.ii + } + } else { // step 6.h + if (keyCoercion !== 'ZERO') { + throw new $TypeError('Assertion failed: keyCoercion must be ~PROPERTY~ or ~ZERO~'); // step 6.h.i + } + if (isNegativeZero(key)) { + key = +0; // step 6.h.ii + } + } + + AddValueToKeyedGroup(groups, key, value); // step 6.i + + k += 1; // step 6.j + } +}; diff --git a/node_modules/es-abstract/2024/HasEitherUnicodeFlag.js b/node_modules/es-abstract/2024/HasEitherUnicodeFlag.js new file mode 100644 index 0000000000000000000000000000000000000000..02903cea2907a3510a1c7eb10ffe8bb96455c145 --- /dev/null +++ b/node_modules/es-abstract/2024/HasEitherUnicodeFlag.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isRegExpRecord = require('../helpers/records/regexp-record'); + +// https://262.ecma-international.org/15.0/#sec-runtime-semantics-haseitherunicodeflag-abstract-operation + +module.exports = function HasEitherUnicodeFlag(rer) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + + if (rer['[[Unicode]]'] || rer['[[UnicodeSets]]']) { // step 1 + return true; // step 1.a + } + return false; // step 2 +}; diff --git a/node_modules/es-abstract/2024/HasOwnProperty.js b/node_modules/es-abstract/2024/HasOwnProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..617f0b856e81f2518d2c03bf72b367eea50eb6ef --- /dev/null +++ b/node_modules/es-abstract/2024/HasOwnProperty.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var hasOwn = require('hasown'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/6.0/#sec-hasownproperty + +module.exports = function HasOwnProperty(O, P) { + if (!isObject(O)) { + 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); +}; diff --git a/node_modules/es-abstract/2024/HasProperty.js b/node_modules/es-abstract/2024/HasProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..eb66ca9853ec09c092d87f10333fcdb19a882c83 --- /dev/null +++ b/node_modules/es-abstract/2024/HasProperty.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/6.0/#sec-hasproperty + +module.exports = function HasProperty(O, P) { + if (!isObject(O)) { + 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; +}; diff --git a/node_modules/es-abstract/2024/HourFromTime.js b/node_modules/es-abstract/2024/HourFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..f963bfb68540ba21f46be00b623cb89db98d63f5 --- /dev/null +++ b/node_modules/es-abstract/2024/HourFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/2024/InLeapYear.js b/node_modules/es-abstract/2024/InLeapYear.js new file mode 100644 index 0000000000000000000000000000000000000000..4a283a4b6097f4b2c4e872b0cc775024ff517b77 --- /dev/null +++ b/node_modules/es-abstract/2024/InLeapYear.js @@ -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); +}; diff --git a/node_modules/es-abstract/2024/InstallErrorCause.js b/node_modules/es-abstract/2024/InstallErrorCause.js new file mode 100644 index 0000000000000000000000000000000000000000..c740a5d6c22e58e2c9d630595c0e25ff92f9356e --- /dev/null +++ b/node_modules/es-abstract/2024/InstallErrorCause.js @@ -0,0 +1,21 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var CreateNonEnumerableDataPropertyOrThrow = require('./CreateNonEnumerableDataPropertyOrThrow'); +var Get = require('./Get'); +var HasProperty = require('./HasProperty'); + +// https://262.ecma-international.org/13.0/#sec-installerrorcause + +module.exports = function InstallErrorCause(O, options) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + + if (isObject(options) && HasProperty(options, 'cause')) { + var cause = Get(options, 'cause'); + CreateNonEnumerableDataPropertyOrThrow(O, 'cause', cause); + } +}; diff --git a/node_modules/es-abstract/2024/InstanceofOperator.js b/node_modules/es-abstract/2024/InstanceofOperator.js new file mode 100644 index 0000000000000000000000000000000000000000..5dd7d04a4c16b423b1613070585b864e22b2dc9e --- /dev/null +++ b/node_modules/es-abstract/2024/InstanceofOperator.js @@ -0,0 +1,30 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +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'); + +// https://262.ecma-international.org/6.0/#sec-instanceofoperator + +module.exports = function InstanceofOperator(O, C) { + if (!isObject(O)) { + 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); +}; diff --git a/node_modules/es-abstract/2024/InternalizeJSONProperty.js b/node_modules/es-abstract/2024/InternalizeJSONProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..eabb7caab216526d29423cbfa8d8db23b7d9e593 --- /dev/null +++ b/node_modules/es-abstract/2024/InternalizeJSONProperty.js @@ -0,0 +1,68 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); +var CreateDataProperty = require('./CreateDataProperty'); +var EnumerableOwnProperties = require('./EnumerableOwnProperties'); +var Get = require('./Get'); +var IsArray = require('./IsArray'); +var LengthOfArrayLike = require('./LengthOfArrayLike'); +var ToString = require('./ToString'); + +var forEach = require('../helpers/forEach'); + +// https://262.ecma-international.org/14.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 (!isObject(holder)) { + 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 (isObject(val)) { // step 2 + var isArray = IsArray(val); // step 2.a + if (isArray) { // step 2.b + var I = 0; // step 2.b.i + + var len = LengthOfArrayLike(val); // 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 +}; diff --git a/node_modules/es-abstract/2024/Invoke.js b/node_modules/es-abstract/2024/Invoke.js new file mode 100644 index 0000000000000000000000000000000000000000..57bca8ebc3dcb6172949cb3bef6f134dacabbf4b --- /dev/null +++ b/node_modules/es-abstract/2024/Invoke.js @@ -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('../helpers/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); +}; diff --git a/node_modules/es-abstract/2024/IsAccessorDescriptor.js b/node_modules/es-abstract/2024/IsAccessorDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..f7bf73afb1c1617b04596a6e2af6d1617857bf1e --- /dev/null +++ b/node_modules/es-abstract/2024/IsAccessorDescriptor.js @@ -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; +}; diff --git a/node_modules/es-abstract/2024/IsArray.js b/node_modules/es-abstract/2024/IsArray.js new file mode 100644 index 0000000000000000000000000000000000000000..c2c48c1f233c058c691d45d7587f1b58d3de5eb2 --- /dev/null +++ b/node_modules/es-abstract/2024/IsArray.js @@ -0,0 +1,4 @@ +'use strict'; + +// https://262.ecma-international.org/6.0/#sec-isarray +module.exports = require('../helpers/IsArray'); diff --git a/node_modules/es-abstract/2024/IsArrayBufferViewOutOfBounds.js b/node_modules/es-abstract/2024/IsArrayBufferViewOutOfBounds.js new file mode 100644 index 0000000000000000000000000000000000000000..7b87b06a45b12a752b58853d00724cfed483834b --- /dev/null +++ b/node_modules/es-abstract/2024/IsArrayBufferViewOutOfBounds.js @@ -0,0 +1,30 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var IsViewOutOfBounds = require('./IsViewOutOfBounds'); +var MakeDataViewWithBufferWitnessRecord = require('./MakeDataViewWithBufferWitnessRecord'); +var MakeTypedArrayWithBufferWitnessRecord = require('./MakeTypedArrayWithBufferWitnessRecord'); + +var isDataView = require('is-data-view'); +var isTypedArray = require('is-typed-array'); + +// https://262.ecma-international.org/15.0/#sec-isarraybufferviewoutofbounds + +module.exports = function IsArrayBufferViewOutOfBounds(O) { + var isDV = isDataView(O); + if (!isTypedArray(O) && !isDV) { + throw new $TypeError('Assertion failed: `O` must be a TypedArray or DataView'); + } + + if (isDV) { // step 1 + var viewRecord = MakeDataViewWithBufferWitnessRecord(O, 'SEQ-CST'); // step 1.a + + return IsViewOutOfBounds(viewRecord); // step 1.b + } + + var taRecord = MakeTypedArrayWithBufferWitnessRecord(O, 'SEQ-CST'); // step 2 + + return IsTypedArrayOutOfBounds(taRecord); // step 3 +}; diff --git a/node_modules/es-abstract/2024/IsBigIntElementType.js b/node_modules/es-abstract/2024/IsBigIntElementType.js new file mode 100644 index 0000000000000000000000000000000000000000..484454353fbc96972068cc5c61fd82b5658ea289 --- /dev/null +++ b/node_modules/es-abstract/2024/IsBigIntElementType.js @@ -0,0 +1,7 @@ +'use strict'; + +// https://262.ecma-international.org/15.0/#sec-isbigintelementtype + +module.exports = function IsBigIntElementType(type) { + return type === 'BIGUINT64' || type === 'BIGINT64'; +}; diff --git a/node_modules/es-abstract/2024/IsCallable.js b/node_modules/es-abstract/2024/IsCallable.js new file mode 100644 index 0000000000000000000000000000000000000000..3a69b19267dff33491a84421b667a0d82cba21f9 --- /dev/null +++ b/node_modules/es-abstract/2024/IsCallable.js @@ -0,0 +1,5 @@ +'use strict'; + +// http://262.ecma-international.org/5.1/#sec-9.11 + +module.exports = require('is-callable'); diff --git a/node_modules/es-abstract/2024/IsCompatiblePropertyDescriptor.js b/node_modules/es-abstract/2024/IsCompatiblePropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..48e719f3c1e515175311d0f2fe599b4743f43062 --- /dev/null +++ b/node_modules/es-abstract/2024/IsCompatiblePropertyDescriptor.js @@ -0,0 +1,9 @@ +'use strict'; + +var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); + +// https://262.ecma-international.org/13.0/#sec-iscompatiblepropertydescriptor + +module.exports = function IsCompatiblePropertyDescriptor(Extensible, Desc, Current) { + return ValidateAndApplyPropertyDescriptor(undefined, '', Extensible, Desc, Current); +}; diff --git a/node_modules/es-abstract/2024/IsConcatSpreadable.js b/node_modules/es-abstract/2024/IsConcatSpreadable.js new file mode 100644 index 0000000000000000000000000000000000000000..ace2695309292c91b185505f63da3cc942534bd2 --- /dev/null +++ b/node_modules/es-abstract/2024/IsConcatSpreadable.js @@ -0,0 +1,26 @@ +'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 isObject = require('es-object-atoms/isObject'); + +// https://262.ecma-international.org/6.0/#sec-isconcatspreadable + +module.exports = function IsConcatSpreadable(O) { + if (!isObject(O)) { + return false; + } + if ($isConcatSpreadable) { + var spreadable = Get(O, $isConcatSpreadable); + if (typeof spreadable !== 'undefined') { + return ToBoolean(spreadable); + } + } + return IsArray(O); +}; diff --git a/node_modules/es-abstract/2024/IsConstructor.js b/node_modules/es-abstract/2024/IsConstructor.js new file mode 100644 index 0000000000000000000000000000000000000000..62ac47f6a3d262927a9b147ee0057dfba9664b24 --- /dev/null +++ b/node_modules/es-abstract/2024/IsConstructor.js @@ -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; + }; +} diff --git a/node_modules/es-abstract/2024/IsDataDescriptor.js b/node_modules/es-abstract/2024/IsDataDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..d56bd36d4294369f6486f6dfc5d60dada2cc410a --- /dev/null +++ b/node_modules/es-abstract/2024/IsDataDescriptor.js @@ -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; +}; diff --git a/node_modules/es-abstract/2024/IsDetachedBuffer.js b/node_modules/es-abstract/2024/IsDetachedBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..71c4f6be8d20b02a92a6721c7ae2833adf21150e --- /dev/null +++ b/node_modules/es-abstract/2024/IsDetachedBuffer.js @@ -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-bound'); +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; +}; diff --git a/node_modules/es-abstract/2024/IsExtensible.js b/node_modules/es-abstract/2024/IsExtensible.js new file mode 100644 index 0000000000000000000000000000000000000000..aa19b914c2d3dc31c1215e2b203dc3ffbb78746c --- /dev/null +++ b/node_modules/es-abstract/2024/IsExtensible.js @@ -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); + }; diff --git a/node_modules/es-abstract/2024/IsFixedLengthArrayBuffer.js b/node_modules/es-abstract/2024/IsFixedLengthArrayBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..78fd5c004de315d9dd5ce71eec8da612eaeabb1b --- /dev/null +++ b/node_modules/es-abstract/2024/IsFixedLengthArrayBuffer.js @@ -0,0 +1,29 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +var $arrayBufferResizable = callBound('%ArrayBuffer.prototype.resizable%', true); +var $sharedArrayGrowable = callBound('%SharedArrayBuffer.prototype.growable%', true); + +var isArrayBuffer = require('is-array-buffer'); +var isSharedArrayBuffer = require('is-shared-array-buffer'); + +// https://262.ecma-international.org/15.0/#sec-isfixedlengtharraybuffer + +module.exports = function IsFixedLengthArrayBuffer(arrayBuffer) { + var isAB = isArrayBuffer(arrayBuffer); + var isSAB = isSharedArrayBuffer(arrayBuffer); + if (!isAB && !isSAB) { + throw new $TypeError('Assertion failed: `arrayBuffer` must be an ArrayBuffer or SharedArrayBuffer'); + } + + if (isAB && $arrayBufferResizable) { + return !$arrayBufferResizable(arrayBuffer); // step 1 + } + if (isSAB && $sharedArrayGrowable) { + return !$sharedArrayGrowable(arrayBuffer); // step 1 + } + return true; // step 2 +}; diff --git a/node_modules/es-abstract/2024/IsGenericDescriptor.js b/node_modules/es-abstract/2024/IsGenericDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..9f6ef045ee44e9eaea4506a234f0e41e0bd1bac9 --- /dev/null +++ b/node_modules/es-abstract/2024/IsGenericDescriptor.js @@ -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; +}; diff --git a/node_modules/es-abstract/2024/IsIntegralNumber.js b/node_modules/es-abstract/2024/IsIntegralNumber.js new file mode 100644 index 0000000000000000000000000000000000000000..62e497b40ff7f907d7da1f245c760572712ab4f5 --- /dev/null +++ b/node_modules/es-abstract/2024/IsIntegralNumber.js @@ -0,0 +1,14 @@ +'use strict'; + +var truncate = require('./truncate'); + +var $isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-isintegralnumber + +module.exports = function IsIntegralNumber(argument) { + if (typeof argument !== 'number' || !$isFinite(argument)) { + return false; + } + return truncate(argument) === argument; +}; diff --git a/node_modules/es-abstract/2024/IsLessThan.js b/node_modules/es-abstract/2024/IsLessThan.js new file mode 100644 index 0000000000000000000000000000000000000000..73f6cff9a254af6a6585ae68821c504048d2c192 --- /dev/null +++ b/node_modules/es-abstract/2024/IsLessThan.js @@ -0,0 +1,97 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Number = GetIntrinsic('%Number%'); +var $TypeError = require('es-errors/type'); +var min = require('math-intrinsics/min'); +var $isNaN = require('math-intrinsics/isNaN'); + +var $charCodeAt = require('call-bound')('String.prototype.charCodeAt'); + +var StringToBigInt = require('./StringToBigInt'); +var ToNumeric = require('./ToNumeric'); +var ToPrimitive = require('./ToPrimitive'); + +var BigIntLessThan = require('./BigInt/lessThan'); +var NumberLessThan = require('./Number/lessThan'); + +// https://262.ecma-international.org/14.0/#sec-islessthan + +// eslint-disable-next-line max-statements, max-lines-per-function +module.exports = function IsLessThan(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); + } + + if (typeof px === 'string' && typeof py === 'string') { // step 3 + // a. Let lx be the length of px. + // b. Let ly be the length of py. + // c. For each integer i starting with 0 such that i < min(lx, ly), in ascending order, do + // i. Let cx be the integer that is the numeric value of the code unit at index i within px. + // ii. Let cy be the integer that is the numeric value of the code unit at index i within py. + // iii. If cx < cy, return true. + // iv. If cx > cy, return false. + // d. If lx < ly, return true. Otherwise, return false. + + var lx = px.length; // step 3.a + var ly = py.length; // step 3.b + for (var i = 0; i < min(lx, ly); i++) { // step 3.c + var cx = $charCodeAt(px, i); // step 3.c.i + var cy = $charCodeAt(py, i); // step 3.c.ii + if (cx < cy) { + return true; // step 3.c.iii + } + if (cx > cy) { + return false; // step 3.c.iv + } + } + return lx < ly; // step 3.d + } + + var nx; + var ny; + if (typeof px === 'bigint' && typeof py === 'string') { + ny = StringToBigInt(py); + if (typeof ny === 'undefined') { + return void undefined; + } + return BigIntLessThan(px, ny); + } + if (typeof px === 'string' && typeof py === 'bigint') { + nx = StringToBigInt(px); + if (typeof nx === 'undefined') { + return void undefined; + } + return BigIntLessThan(nx, py); + } + + nx = ToNumeric(px); + ny = ToNumeric(py); + + if (typeof nx === typeof ny) { + return typeof nx === 'number' ? NumberLessThan(nx, ny) : BigIntLessThan(nx, ny); + } + + if ($isNaN(nx) || $isNaN(ny)) { + return void undefined; + } + + if (nx === -Infinity || ny === Infinity) { + return true; + } + if (nx === Infinity || ny === -Infinity) { + return false; + } + + return nx < ny; // by now, these are both finite, and the same type +}; diff --git a/node_modules/es-abstract/2024/IsLooselyEqual.js b/node_modules/es-abstract/2024/IsLooselyEqual.js new file mode 100644 index 0000000000000000000000000000000000000000..c7bb047f55d337b5ca46405cc07a284d5843d71a --- /dev/null +++ b/node_modules/es-abstract/2024/IsLooselyEqual.js @@ -0,0 +1,58 @@ +'use strict'; + +var isFinite = require('math-intrinsics/isFinite'); +var isObject = require('es-object-atoms/isObject'); + +var IsStrictlyEqual = require('./IsStrictlyEqual'); +var StringToBigInt = require('./StringToBigInt'); +var ToNumber = require('./ToNumber'); +var ToPrimitive = require('./ToPrimitive'); + +var isSameType = require('../helpers/isSameType'); + +// https://262.ecma-international.org/13.0/#sec-islooselyequal + +module.exports = function IsLooselyEqual(x, y) { + if (isSameType(x, y)) { + return IsStrictlyEqual(x, y); + } + if (x == null && y == null) { + return true; + } + if (typeof x === 'number' && typeof y === 'string') { + return IsLooselyEqual(x, ToNumber(y)); + } + if (typeof x === 'string' && typeof y === 'number') { + return IsLooselyEqual(ToNumber(x), y); + } + if (typeof x === 'bigint' && typeof y === 'string') { + var n = StringToBigInt(y); + if (typeof n === 'undefined') { + return false; + } + return IsLooselyEqual(x, n); + } + if (typeof x === 'string' && typeof y === 'bigint') { + return IsLooselyEqual(y, x); + } + if (typeof x === 'boolean') { + return IsLooselyEqual(ToNumber(x), y); + } + if (typeof y === 'boolean') { + return IsLooselyEqual(x, ToNumber(y)); + } + if ((typeof x === 'string' || typeof x === 'number' || typeof x === 'symbol' || typeof x === 'bigint') && isObject(y)) { + return IsLooselyEqual(x, ToPrimitive(y)); + } + if (isObject(x) && (typeof y === 'string' || typeof y === 'number' || typeof y === 'symbol' || typeof y === 'bigint')) { + return IsLooselyEqual(ToPrimitive(x), y); + } + if ((typeof x === 'bigint' && typeof y === 'number') || (typeof x === 'number' && typeof y === 'bigint')) { + if (!isFinite(x) || !isFinite(y)) { + return false; + } + // eslint-disable-next-line eqeqeq + return x == y; // shortcut for step 13.b. + } + return false; +}; diff --git a/node_modules/es-abstract/2024/IsNoTearConfiguration.js b/node_modules/es-abstract/2024/IsNoTearConfiguration.js new file mode 100644 index 0000000000000000000000000000000000000000..5156e58d4d4272231dd55d2715eaf46a5146b1f8 --- /dev/null +++ b/node_modules/es-abstract/2024/IsNoTearConfiguration.js @@ -0,0 +1,16 @@ +'use strict'; + +var IsUnclampedIntegerElementType = require('./IsUnclampedIntegerElementType'); +var IsBigIntElementType = require('./IsBigIntElementType'); + +// https://262.ecma-international.org/15.0/#sec-isnotearconfiguration + +module.exports = function IsNoTearConfiguration(type, order) { + if (IsUnclampedIntegerElementType(type)) { + return true; + } + if (IsBigIntElementType(type) && order !== 'INIT' && order !== 'UNORDERED') { + return true; + } + return false; +}; diff --git a/node_modules/es-abstract/2024/IsPromise.js b/node_modules/es-abstract/2024/IsPromise.js new file mode 100644 index 0000000000000000000000000000000000000000..f3d67b1c7045d7657ec74a6d084dc088aadb5ff4 --- /dev/null +++ b/node_modules/es-abstract/2024/IsPromise.js @@ -0,0 +1,24 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $PromiseThen = callBound('Promise.prototype.then', true); + +var isObject = require('es-object-atoms/isObject'); + +// https://262.ecma-international.org/6.0/#sec-ispromise + +module.exports = function IsPromise(x) { + if (!isObject(x)) { + return false; + } + if (!$PromiseThen) { // Promises are not supported + return false; + } + try { + $PromiseThen(x); // throws if not a promise + } catch (e) { + return false; + } + return true; +}; diff --git a/node_modules/es-abstract/2024/IsPropertyKey.js b/node_modules/es-abstract/2024/IsPropertyKey.js new file mode 100644 index 0000000000000000000000000000000000000000..4b1c9c71461ca474f34b517c0bc04e5d700280f2 --- /dev/null +++ b/node_modules/es-abstract/2024/IsPropertyKey.js @@ -0,0 +1,9 @@ +'use strict'; + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/6.0/#sec-ispropertykey + +module.exports = function IsPropertyKey(argument) { + return isPropertyKey(argument); +}; diff --git a/node_modules/es-abstract/2024/IsRegExp.js b/node_modules/es-abstract/2024/IsRegExp.js new file mode 100644 index 0000000000000000000000000000000000000000..8855492d58ded3c061b84be35e962fe32c8de53e --- /dev/null +++ b/node_modules/es-abstract/2024/IsRegExp.js @@ -0,0 +1,25 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $match = GetIntrinsic('%Symbol.match%', true); + +var hasRegExpMatcher = require('is-regex'); +var isObject = require('es-object-atoms/isObject'); + +var ToBoolean = require('./ToBoolean'); + +// https://262.ecma-international.org/6.0/#sec-isregexp + +module.exports = function IsRegExp(argument) { + if (!isObject(argument)) { + return false; + } + if ($match) { + var isRegExp = argument[$match]; + if (typeof isRegExp !== 'undefined') { + return ToBoolean(isRegExp); + } + } + return hasRegExpMatcher(argument); +}; diff --git a/node_modules/es-abstract/2024/IsSharedArrayBuffer.js b/node_modules/es-abstract/2024/IsSharedArrayBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..41d61b116db4b3aabf7dde87e6b46cc5aa378d99 --- /dev/null +++ b/node_modules/es-abstract/2024/IsSharedArrayBuffer.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isSharedArrayBuffer = require('is-shared-array-buffer'); + +// https://262.ecma-international.org/8.0/#sec-issharedarraybuffer + +module.exports = function IsSharedArrayBuffer(obj) { + if (!isObject(obj)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + + return isSharedArrayBuffer(obj); +}; diff --git a/node_modules/es-abstract/2024/IsStrictlyEqual.js b/node_modules/es-abstract/2024/IsStrictlyEqual.js new file mode 100644 index 0000000000000000000000000000000000000000..3bec0744e003db56188fdc5a486bbef3d7338091 --- /dev/null +++ b/node_modules/es-abstract/2024/IsStrictlyEqual.js @@ -0,0 +1,14 @@ +'use strict'; + +var SameValueNonNumber = require('./SameValueNonNumber'); +var Type = require('./Type'); +var NumberEqual = require('./Number/equal'); + +// https://262.ecma-international.org/14.0/#sec-isstrictlyequal + +module.exports = function IsStrictlyEqual(x, y) { + if (Type(x) !== Type(y)) { + return false; + } + return typeof x === 'number' ? NumberEqual(x, y) : SameValueNonNumber(x, y); +}; diff --git a/node_modules/es-abstract/2024/IsStringWellFormedUnicode.js b/node_modules/es-abstract/2024/IsStringWellFormedUnicode.js new file mode 100644 index 0000000000000000000000000000000000000000..d5fa48a69550d7faadb0a377af014cd530a74a87 --- /dev/null +++ b/node_modules/es-abstract/2024/IsStringWellFormedUnicode.js @@ -0,0 +1,23 @@ +'use strict'; + +var CodePointAt = require('./CodePointAt'); + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/14.0/#sec-isstringwellformedunicode + +module.exports = function IsStringWellFormedUnicode(string) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + var len = string.length; // step 1 + var k = 0; // step 2 + while (k < len) { // step 3 + var cp = CodePointAt(string, k); // step 3.a + if (cp['[[IsUnpairedSurrogate]]']) { + return false; // step 3.b + } + k += cp['[[CodeUnitCount]]']; // step 3.c + } + return true; // step 4 +}; diff --git a/node_modules/es-abstract/2024/IsTimeZoneOffsetString.js b/node_modules/es-abstract/2024/IsTimeZoneOffsetString.js new file mode 100644 index 0000000000000000000000000000000000000000..a05ae41b4416d1c83c8a3fe5e72f19c13dfb2a33 --- /dev/null +++ b/node_modules/es-abstract/2024/IsTimeZoneOffsetString.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var regexTester = require('safe-regex-test'); + +// https://tc39.es/ecma262/#sec-istimezoneoffsetstring + +// implementation taken from https://github.com/tc39/proposal-temporal/blob/21ee5b13f0672990c807475ba094092d19dd6dc5/polyfill/lib/ecmascript.mjs#L2140 + +var OFFSET = /^([+\u2212-])([01][0-9]|2[0-3])(?::?([0-5][0-9])(?::?([0-5][0-9])(?:[.,](\d{1,9}))?)?)?$/; + +var testOffset = regexTester(OFFSET); + +module.exports = function IsTimeZoneOffsetString(offsetString) { + if (typeof offsetString !== 'string') { + throw new $TypeError('Assertion failed: `offsetString` must be a String'); + } + return testOffset(offsetString); +}; diff --git a/node_modules/es-abstract/2024/IsTypedArrayOutOfBounds.js b/node_modules/es-abstract/2024/IsTypedArrayOutOfBounds.js new file mode 100644 index 0000000000000000000000000000000000000000..0fac92bd0ebc950ae43290e775814ce1e797018e --- /dev/null +++ b/node_modules/es-abstract/2024/IsTypedArrayOutOfBounds.js @@ -0,0 +1,57 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); + +var isTypedArrayWithBufferWitnessRecord = require('../helpers/records/typed-array-with-buffer-witness-record'); + +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayByteOffset = require('typed-array-byte-offset'); +var typedArrayLength = require('typed-array-length'); + +// https://262.ecma-international.org/15.0/#sec-istypedarrayoutofbounds + +module.exports = function IsTypedArrayOutOfBounds(taRecord) { + if (!isTypedArrayWithBufferWitnessRecord(taRecord)) { + throw new $TypeError('Assertion failed: `taRecord` must be a TypedArray With Buffer Witness Record'); + } + + var O = taRecord['[[Object]]']; // step 1 + + var bufferByteLength = taRecord['[[CachedBufferByteLength]]']; // step 2 + + if (IsDetachedBuffer(typedArrayBuffer(O)) && bufferByteLength !== 'DETACHED') { + throw new $TypeError('Assertion failed: typed array is detached only if the byte length is ~DETACHED~'); // step 3 + } + + if (bufferByteLength === 'DETACHED') { + return true; // step 4 + } + + var byteOffsetStart = typedArrayByteOffset(O); // step 5 + + var isFixed = IsFixedLengthArrayBuffer(typedArrayBuffer(O)); + + var byteOffsetEnd; + var length = isFixed ? typedArrayLength(O) : 'AUTO'; + // TODO: probably use package for array length + // seems to apply when TA is backed by a resizable/growable AB + if (length === 'AUTO') { // step 6 + byteOffsetEnd = bufferByteLength; // step 6.a + } else { + var elementSize = TypedArrayElementSize(O); // step 7.a + + byteOffsetEnd = byteOffsetStart + (length * elementSize); // step 7.b + } + + if (byteOffsetStart > bufferByteLength || byteOffsetEnd > bufferByteLength) { + return true; // step 8 + } + + // 9. NOTE: 0-length TypedArrays are not considered out-of-bounds. + + return false; // step 10 +}; diff --git a/node_modules/es-abstract/2024/IsUnclampedIntegerElementType.js b/node_modules/es-abstract/2024/IsUnclampedIntegerElementType.js new file mode 100644 index 0000000000000000000000000000000000000000..32c43d4741fd2bac60ff9227bcd41d063a7524c6 --- /dev/null +++ b/node_modules/es-abstract/2024/IsUnclampedIntegerElementType.js @@ -0,0 +1,12 @@ +'use strict'; + +// https://262.ecma-international.org/15.0/#sec-isunclampedintegerelementtype + +module.exports = function IsUnclampedIntegerElementType(type) { + return type === 'INT8' + || type === 'UINT8' + || type === 'INT16' + || type === 'UINT16' + || type === 'INT32' + || type === 'UINT32'; +}; diff --git a/node_modules/es-abstract/2024/IsUnsignedElementType.js b/node_modules/es-abstract/2024/IsUnsignedElementType.js new file mode 100644 index 0000000000000000000000000000000000000000..880b25ad38927e806e6c2e6306428573ba7983cf --- /dev/null +++ b/node_modules/es-abstract/2024/IsUnsignedElementType.js @@ -0,0 +1,11 @@ +'use strict'; + +// https://262.ecma-international.org/15.0/#sec-isunsignedelementtype + +module.exports = function IsUnsignedElementType(type) { + return type === 'UINT8' + || type === 'UINT8C' + || type === 'UINT16' + || type === 'UINT32' + || type === 'BIGUINT64'; +}; diff --git a/node_modules/es-abstract/2024/IsValidIntegerIndex.js b/node_modules/es-abstract/2024/IsValidIntegerIndex.js new file mode 100644 index 0000000000000000000000000000000000000000..15130bc3a006693d698dcfc83102b792a227f679 --- /dev/null +++ b/node_modules/es-abstract/2024/IsValidIntegerIndex.js @@ -0,0 +1,43 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var MakeTypedArrayWithBufferWitnessRecord = require('./MakeTypedArrayWithBufferWitnessRecord'); +var TypedArrayLength = require('./TypedArrayLength'); + +var isInteger = require('math-intrinsics/isInteger'); +var isNegativeZero = require('math-intrinsics/isNegativeZero'); + +var isTypedArray = require('is-typed-array'); +var typedArrayBuffer = require('typed-array-buffer'); + +// https://262.ecma-international.org/15.0/#sec-isvalidintegerindex + +module.exports = function IsValidIntegerIndex(O, index) { + if (!isTypedArray(O)) { + throw new $TypeError('Assertion failed: `O` is not a TypedArray object'); + } + if (typeof index !== 'number') { + throw new $TypeError('Assertion failed: `index` is not a Number'); + } + + var buffer = typedArrayBuffer(O); + + if (IsDetachedBuffer(buffer)) { return false; } // step 1 + + if (!isInteger(index)) { return false; } // step 2 + + if (isNegativeZero(index)) { return false; } // step 3 + + var taRecord = MakeTypedArrayWithBufferWitnessRecord(O, 'UNORDERED'); // step 4 + if (IsTypedArrayOutOfBounds(taRecord)) { + return false; // step 6 + } + var length = TypedArrayLength(taRecord); // step 7 + + if (index < 0 || index >= length) { return false; } // step 8 + + return true; // step 9 +}; diff --git a/node_modules/es-abstract/2024/IsViewOutOfBounds.js b/node_modules/es-abstract/2024/IsViewOutOfBounds.js new file mode 100644 index 0000000000000000000000000000000000000000..b0ad8a836df192b22f174ed6f241b6f749118a67 --- /dev/null +++ b/node_modules/es-abstract/2024/IsViewOutOfBounds.js @@ -0,0 +1,48 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); + +var isDataViewWithBufferWitnessRecord = require('../helpers/records/data-view-with-buffer-witness-record'); + +var dataViewBuffer = require('data-view-buffer'); +var dataViewByteLength = require('data-view-byte-length'); +var dataViewByteOffset = require('data-view-byte-offset'); + +// https://262.ecma-international.org/15.0/#sec-isviewoutofbounds + +module.exports = function IsViewOutOfBounds(viewRecord) { + if (!isDataViewWithBufferWitnessRecord(viewRecord)) { + throw new $TypeError('Assertion failed: `viewRecord` must be a DataView With Buffer Witness Record'); + } + + var view = viewRecord['[[Object]]']; // step 1 + + var bufferByteLength = viewRecord['[[CachedBufferByteLength]]']; // step 2 + + if (IsDetachedBuffer(dataViewBuffer(view)) !== (bufferByteLength === 'DETACHED')) { + // step 3 + throw new $TypeError('Assertion failed: `IsDetachedBuffer(dataViewBuffer(view))` must be true if and only if `bufferByteLength === ~DETACHED~'); + } + + if (bufferByteLength === 'DETACHED') { + return true; // step 4 + } + + var byteOffsetStart = dataViewByteOffset(view); // step 5 + + var isFixed = IsFixedLengthArrayBuffer(dataViewBuffer(view)); + + var viewByteLength = isFixed ? dataViewByteLength(view) : 'AUTO'; // view.[[ByteLength]] + var byteOffsetEnd = viewByteLength === 'AUTO' ? bufferByteLength : byteOffsetStart + viewByteLength; // steps 6 - 7 + + if (byteOffsetStart > bufferByteLength || byteOffsetEnd > bufferByteLength) { + return true; // step 8 + } + + // 9. NOTE: 0-length DataViews are not considered out-of-bounds. + + return false; // step 10 +}; diff --git a/node_modules/es-abstract/2024/IsWordChar.js b/node_modules/es-abstract/2024/IsWordChar.js new file mode 100644 index 0000000000000000000000000000000000000000..8a440c3356d46c9a78e37007f82a208b697c75cd --- /dev/null +++ b/node_modules/es-abstract/2024/IsWordChar.js @@ -0,0 +1,42 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $indexOf = callBound('String.prototype.indexOf'); + +var IsArray = require('./IsArray'); +var WordCharacters = require('./WordCharacters'); + +var every = require('../helpers/every'); +var isRegExpRecord = require('../helpers/records/regexp-record'); + +var isChar = function isChar(c) { + return typeof c === 'string'; +}; + +// https://262.ecma-international.org/14.0/#sec-runtime-semantics-iswordchar-abstract-operation + +module.exports = function IsWordChar(rer, Input, e) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + if (!IsArray(Input) || !every(Input, isChar)) { + throw new $TypeError('Assertion failed: `Input` must be a List of characters'); + } + + if (!isInteger(e)) { + throw new $TypeError('Assertion failed: `e` must be an integer'); + } + + var InputLength = Input.length; // step 1 + + if (e === -1 || e === InputLength) { + return false; // step 2 + } + + var c = Input[e]; // step 3 + + return $indexOf(WordCharacters(rer), c) > -1; // steps 4-5 +}; diff --git a/node_modules/es-abstract/2024/IteratorClose.js b/node_modules/es-abstract/2024/IteratorClose.js new file mode 100644 index 0000000000000000000000000000000000000000..22bab4724e61544165143c01e0f196b8d8dd93f0 --- /dev/null +++ b/node_modules/es-abstract/2024/IteratorClose.js @@ -0,0 +1,65 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); +var CompletionRecord = require('./CompletionRecord'); +var GetMethod = require('./GetMethod'); +var IsCallable = require('./IsCallable'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +// https://262.ecma-international.org/15.0/#sec-iteratorclose + +module.exports = function IteratorClose(iteratorRecord, completion) { + if (!isIteratorRecord(iteratorRecord)) { + throw new $TypeError('Assertion failed: `iteratorRecord` must be an Iterator Record'); // step 1 + } + if (!isObject(iteratorRecord['[[Iterator]]'])) { + throw new $TypeError('Assertion failed: iteratorRecord.[[Iterator]] must be an Object'); // step 1 + } + + if (!IsCallable(completion) && !(completion instanceof CompletionRecord)) { // step 2 + 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 iterator = iteratorRecord['[[Iterator]]']; // step 3 + + var iteratorReturn; + try { + iteratorReturn = GetMethod(iterator, 'return'); // step 4 + } catch (e) { + completionThunk(); // throws if `completion` is a throw completion // step 6 + // eslint-disable-next-line no-useless-assignment + completionThunk = null; // ensure it's not called twice. + throw e; // step 7 + } + if (typeof iteratorReturn === 'undefined') { + return completionThunk(); // step 5.a - 5.b + } + + var innerResult; + try { + innerResult = Call(iteratorReturn, iterator, []); + } catch (e) { + // if we hit here, then "e" is the innerResult completion that needs re-throwing + + completionThunk(); // throws if `completion` is a throw completion // step 6 + // eslint-disable-next-line no-useless-assignment + completionThunk = null; // ensure it's not called twice. + + // if not, then return the innerResult completion + throw e; // step 7 + } + var completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does + // eslint-disable-next-line no-useless-assignment + completionThunk = null; // ensure it's not called twice. + + if (!isObject(innerResult)) { + throw new $TypeError('iterator .return must return an object'); + } + + return completionRecord; +}; diff --git a/node_modules/es-abstract/2024/IteratorComplete.js b/node_modules/es-abstract/2024/IteratorComplete.js new file mode 100644 index 0000000000000000000000000000000000000000..c8a0d67c244bbec3d032bb8a4cc5597b7419d97b --- /dev/null +++ b/node_modules/es-abstract/2024/IteratorComplete.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var ToBoolean = require('./ToBoolean'); + +// https://262.ecma-international.org/6.0/#sec-iteratorcomplete + +module.exports = function IteratorComplete(iterResult) { + if (!isObject(iterResult)) { + throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); + } + return ToBoolean(Get(iterResult, 'done')); +}; diff --git a/node_modules/es-abstract/2024/IteratorNext.js b/node_modules/es-abstract/2024/IteratorNext.js new file mode 100644 index 0000000000000000000000000000000000000000..0cc4761ea8fc2eda18e24e864a0f56a05eaa9875 --- /dev/null +++ b/node_modules/es-abstract/2024/IteratorNext.js @@ -0,0 +1,28 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +// https://262.ecma-international.org/15.0/#sec-iteratornext + +module.exports = function IteratorNext(iteratorRecord) { + if (!isIteratorRecord(iteratorRecord)) { + throw new $TypeError('Assertion failed: `iteratorRecord` must be an Iterator Record'); // step 1 + } + + var result; + if (arguments.length < 2) { // step 1 + result = Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]']); // step 1.a + } else { // step 2 + result = Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]'], [arguments[1]]); // step 2.a + } + + if (!isObject(result)) { + throw new $TypeError('iterator next must return an object'); // step 3 + } + return result; // step 4 +}; diff --git a/node_modules/es-abstract/2024/IteratorStep.js b/node_modules/es-abstract/2024/IteratorStep.js new file mode 100644 index 0000000000000000000000000000000000000000..e076fb3fef20fa1e5767dbe0787b5ab44dad61d1 --- /dev/null +++ b/node_modules/es-abstract/2024/IteratorStep.js @@ -0,0 +1,21 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IteratorComplete = require('./IteratorComplete'); +var IteratorNext = require('./IteratorNext'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +// https://262.ecma-international.org/15.0/#sec-iteratorstep + +module.exports = function IteratorStep(iteratorRecord) { + if (!isIteratorRecord(iteratorRecord)) { + throw new $TypeError('Assertion failed: `iteratorRecord` must be an Iterator Record'); // step 1 + } + + var result = IteratorNext(iteratorRecord); // step 1 + var done = IteratorComplete(result); // step 2 + return done === true ? false : result; // steps 3-4 +}; + diff --git a/node_modules/es-abstract/2024/IteratorStepValue.js b/node_modules/es-abstract/2024/IteratorStepValue.js new file mode 100644 index 0000000000000000000000000000000000000000..644f7b652787c941fadbf6eb8d344093293a8bd2 --- /dev/null +++ b/node_modules/es-abstract/2024/IteratorStepValue.js @@ -0,0 +1,49 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Get = require('./Get'); +var IteratorComplete = require('./IteratorComplete'); +var IteratorNext = require('./IteratorNext'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +// https://262.ecma-international.org/15.0/#sec-iteratorstepvalue + +module.exports = function IteratorStepValue(iteratorRecord) { + if (!isIteratorRecord(iteratorRecord)) { + throw new $TypeError('Assertion failed: `iteratorRecord` must be an Iterator Record'); + } + /* eslint no-param-reassign: 0 */ + + var result; + try { + result = IteratorNext(iteratorRecord); // step 1 + } catch (e) { // step 2 + iteratorRecord['[[Done]]'] = true; // step 2.a + throw e; // step 2.b + } + + var done; + try { + done = IteratorComplete(result); // step 4 + } catch (e) { // step 5 + iteratorRecord['[[Done]]'] = true; // step 5.a + throw e; // step 5.b + } + + if (done) { // step 7 + iteratorRecord['[[Done]]'] = true; // step 7.a + return 'DONE'; // step 7.b + } + + var value; + try { + value = Get(result, 'value'); // step 8 + } catch (e) { // step 9 + iteratorRecord['[[Done]]'] = true; // step 9.a + throw e; // step 10 + } + + return value; // step 10 +}; diff --git a/node_modules/es-abstract/2024/IteratorToList.js b/node_modules/es-abstract/2024/IteratorToList.js new file mode 100644 index 0000000000000000000000000000000000000000..9a13a5a5052a4930a2b315c2f8eef95a2d2672de --- /dev/null +++ b/node_modules/es-abstract/2024/IteratorToList.js @@ -0,0 +1,27 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IteratorStep = require('./IteratorStep'); +var IteratorValue = require('./IteratorValue'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +// https://262.ecma-international.org/15.0/#sec-iteratortolist + +module.exports = function IteratorToList(iteratorRecord) { + if (!isIteratorRecord(iteratorRecord)) { + throw new $TypeError('Assertion failed: `iteratorRecord` must be an Iterator Record'); // step 1 + } + + var values = []; // step 1 + var next = true; // step 2 + while (next) { // step 3 + next = IteratorStep(iteratorRecord); // step 3.a + if (next) { + var nextValue = IteratorValue(next); // step 3.b.i + values[values.length] = nextValue; // step 3.b.ii + } + } + return values; // step 4 +}; diff --git a/node_modules/es-abstract/2024/IteratorValue.js b/node_modules/es-abstract/2024/IteratorValue.js new file mode 100644 index 0000000000000000000000000000000000000000..016ddfbd4f01381dd13487740d6806003449d4b1 --- /dev/null +++ b/node_modules/es-abstract/2024/IteratorValue.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); + +// https://262.ecma-international.org/6.0/#sec-iteratorvalue + +module.exports = function IteratorValue(iterResult) { + if (!isObject(iterResult)) { + throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); + } + return Get(iterResult, 'value'); +}; + diff --git a/node_modules/es-abstract/2024/KeyForSymbol.js b/node_modules/es-abstract/2024/KeyForSymbol.js new file mode 100644 index 0000000000000000000000000000000000000000..e0f0f1c881b24881bb47560527efcd160a776cb9 --- /dev/null +++ b/node_modules/es-abstract/2024/KeyForSymbol.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +var $keyFor = callBound('Symbol.keyFor', true); + +// https://262.ecma-international.org/14.0/#sec-keyforsymbol + +module.exports = function KeyForSymbol(sym) { + if (typeof sym !== 'symbol') { + throw new $TypeError('Assertion failed: `sym` must be a Symbol'); + } + return $keyFor(sym); +}; diff --git a/node_modules/es-abstract/2024/LengthOfArrayLike.js b/node_modules/es-abstract/2024/LengthOfArrayLike.js new file mode 100644 index 0000000000000000000000000000000000000000..437bcd86c93b2ea23f727bb18c83ae4b58fe7e2b --- /dev/null +++ b/node_modules/es-abstract/2024/LengthOfArrayLike.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var ToLength = require('./ToLength'); + +// https://262.ecma-international.org/11.0/#sec-lengthofarraylike + +module.exports = function LengthOfArrayLike(obj) { + if (!isObject(obj)) { + throw new $TypeError('Assertion failed: `obj` must be an Object'); + } + return ToLength(Get(obj, 'length')); +}; + +// TODO: use this all over diff --git a/node_modules/es-abstract/2024/MakeDataViewWithBufferWitnessRecord.js b/node_modules/es-abstract/2024/MakeDataViewWithBufferWitnessRecord.js new file mode 100644 index 0000000000000000000000000000000000000000..a53353020978ff3286d1f5c23103545058105c54 --- /dev/null +++ b/node_modules/es-abstract/2024/MakeDataViewWithBufferWitnessRecord.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ArrayBufferByteLength = require('./ArrayBufferByteLength'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); + +var dataViewBuffer = require('data-view-buffer'); +var isDataView = require('is-data-view'); + +// https://262.ecma-international.org/15.0/#sec-makedataviewwithbufferwitnessrecord + +module.exports = function MakeDataViewWithBufferWitnessRecord(obj, order) { + if (!isDataView(obj)) { + throw new $TypeError('MakeDataViewWithBufferWitnessRecord called with non-DataView'); + } + if (order !== 'SEQ-CST' && order !== 'UNORDERED') { + throw new $TypeError('Assertion failed: `order` must be ~SEQ-CST~ or ~UNORDERED~'); + } + + var buffer = dataViewBuffer(obj); // step 1 + + var byteLength = IsDetachedBuffer(buffer) ? 'DETACHED' : ArrayBufferByteLength(buffer, order); // steps 2 - 3 + + return { '[[Object]]': obj, '[[CachedBufferByteLength]]': byteLength }; // step 4 +}; diff --git a/node_modules/es-abstract/2024/MakeDate.js b/node_modules/es-abstract/2024/MakeDate.js new file mode 100644 index 0000000000000000000000000000000000000000..3256ae1092afd21a469f4ca086dc028a73ecaa52 --- /dev/null +++ b/node_modules/es-abstract/2024/MakeDate.js @@ -0,0 +1,14 @@ +'use strict'; + +var $isFinite = require('math-intrinsics/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; +}; diff --git a/node_modules/es-abstract/2024/MakeDay.js b/node_modules/es-abstract/2024/MakeDay.js new file mode 100644 index 0000000000000000000000000000000000000000..3e5a91e6d1696ed0b1ede1140b517182ab10c84a --- /dev/null +++ b/node_modules/es-abstract/2024/MakeDay.js @@ -0,0 +1,36 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $DateUTC = GetIntrinsic('%Date.UTC%'); + +var $isFinite = require('math-intrinsics/isFinite'); + +var DateFromTime = require('./DateFromTime'); +var Day = require('./Day'); +var floor = require('./floor'); +var modulo = require('./modulo'); +var MonthFromTime = require('./MonthFromTime'); +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); +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 = ToIntegerOrInfinity(year); + var m = ToIntegerOrInfinity(month); + var dt = ToIntegerOrInfinity(date); + var ym = y + floor(m / 12); + if (!$isFinite(ym)) { + return NaN; + } + 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; +}; diff --git a/node_modules/es-abstract/2024/MakeFullYear.js b/node_modules/es-abstract/2024/MakeFullYear.js new file mode 100644 index 0000000000000000000000000000000000000000..3e18c272b25fc43540db2df065ab405e66f25153 --- /dev/null +++ b/node_modules/es-abstract/2024/MakeFullYear.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); + +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/15.0/#sec-makefullyear + +module.exports = function MakeFullYear(year) { + if (typeof year !== 'number') { + throw new $TypeError('Assertion failed: `year` must be a Number'); + } + + if (isNaN(year)) { + return NaN; // step 1 + } + + var truncated = ToIntegerOrInfinity(year); // step 2 + if (0 <= truncated && truncated <= 99) { + return 1900 + truncated; // step 3 + } + + return truncated; // step 4 +}; diff --git a/node_modules/es-abstract/2024/MakeMatchIndicesIndexPairArray.js b/node_modules/es-abstract/2024/MakeMatchIndicesIndexPairArray.js new file mode 100644 index 0000000000000000000000000000000000000000..eeb5b39020f0188982d6924e7d7479df06aa39c6 --- /dev/null +++ b/node_modules/es-abstract/2024/MakeMatchIndicesIndexPairArray.js @@ -0,0 +1,66 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ArrayCreate = require('./ArrayCreate'); +var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); +var GetMatchIndexPair = require('./GetMatchIndexPair'); +var IsArray = require('./IsArray'); +var OrdinaryObjectCreate = require('./OrdinaryObjectCreate'); +var ToString = require('./ToString'); + +var every = require('../helpers/every'); +var isMatchRecord = require('../helpers/records/match-record'); + +var isStringOrUndefined = function isStringOrUndefined(s) { + return typeof s === 'undefined' || typeof s === 'string'; +}; + +var isMatchRecordOrUndefined = function isMatchRecordOrUndefined(m) { + return typeof m === 'undefined' || isMatchRecord(m); +}; + +var MAX_ARRAY_LENGTH = require('math-intrinsics/constants/maxArrayLength'); + +// https://262.ecma-international.org/13.0/#sec-getmatchindexpair + +module.exports = function MakeMatchIndicesIndexPairArray(S, indices, groupNames, hasGroups) { + if (typeof S !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + if (!IsArray(indices) || !every(indices, isMatchRecordOrUndefined)) { + throw new $TypeError('Assertion failed: `indices` must be a List of either Match Records or `undefined`'); + } + if (!IsArray(groupNames) || !every(groupNames, isStringOrUndefined)) { + throw new $TypeError('Assertion failed: `groupNames` must be a List of either Strings or `undefined`'); + } + if (typeof hasGroups !== 'boolean') { + throw new $TypeError('Assertion failed: `hasGroups` must be a Boolean'); + } + + var n = indices.length; // step 1 + if (!(n < MAX_ARRAY_LENGTH)) { + throw new $TypeError('Assertion failed: `indices` length must be less than the max array size, 2**32 - 1'); + } + if (groupNames.length !== n - 1) { + throw new $TypeError('Assertion failed: `groupNames` must have exactly one fewer item than `indices`'); + } + + var A = ArrayCreate(n); // step 5 + var groups = hasGroups ? OrdinaryObjectCreate(null) : void undefined; // step 6-7 + CreateDataPropertyOrThrow(A, 'groups', groups); // step 8 + + for (var i = 0; i < n; i += 1) { // step 9 + var matchIndices = indices[i]; // step 9.a + // eslint-disable-next-line no-negated-condition + var matchIndexPair = typeof matchIndices !== 'undefined' ? GetMatchIndexPair(S, matchIndices) : void undefined; // step 9.b-9.c + CreateDataPropertyOrThrow(A, ToString(i), matchIndexPair); // step 9.d + if (i > 0 && typeof groupNames[i - 1] !== 'undefined') { // step 9.e + if (!groups) { + throw new $TypeError('if `hasGroups` is `false`, `groupNames` can only contain `undefined` values'); + } + CreateDataPropertyOrThrow(groups, groupNames[i - 1], matchIndexPair); // step 9.e.i + } + } + return A; // step 10 +}; diff --git a/node_modules/es-abstract/2024/MakeTime.js b/node_modules/es-abstract/2024/MakeTime.js new file mode 100644 index 0000000000000000000000000000000000000000..ac7d81f7aeb735f350796f6f1e12bce24c8eb114 --- /dev/null +++ b/node_modules/es-abstract/2024/MakeTime.js @@ -0,0 +1,23 @@ +'use strict'; + +var $isFinite = require('math-intrinsics/isFinite'); +var timeConstants = require('../helpers/timeConstants'); +var msPerSecond = timeConstants.msPerSecond; +var msPerMinute = timeConstants.msPerMinute; +var msPerHour = timeConstants.msPerHour; + +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); + +// https://262.ecma-international.org/12.0/#sec-maketime + +module.exports = function MakeTime(hour, min, sec, ms) { + if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { + return NaN; + } + var h = ToIntegerOrInfinity(hour); + var m = ToIntegerOrInfinity(min); + var s = ToIntegerOrInfinity(sec); + var milli = ToIntegerOrInfinity(ms); + var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; + return t; +}; diff --git a/node_modules/es-abstract/2024/MakeTypedArrayWithBufferWitnessRecord.js b/node_modules/es-abstract/2024/MakeTypedArrayWithBufferWitnessRecord.js new file mode 100644 index 0000000000000000000000000000000000000000..2643599bfb0886bcbfac047131017438374c76e9 --- /dev/null +++ b/node_modules/es-abstract/2024/MakeTypedArrayWithBufferWitnessRecord.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ArrayBufferByteLength = require('./ArrayBufferByteLength'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); + +var isTypedArray = require('is-typed-array'); +var typedArrayBuffer = require('typed-array-buffer'); + +// https://262.ecma-international.org/15.0/#sec-maketypedarraywithbufferwitnessrecord + +module.exports = function MakeTypedArrayWithBufferWitnessRecord(obj, order) { + if (!isTypedArray(obj)) { + throw new $TypeError('Assertion failed: `obj` must be a Typed Array'); + } + if (order !== 'SEQ-CST' && order !== 'UNORDERED') { + throw new $TypeError('Assertion failed: `order` must be ~SEQ-CST~ or ~UNORDERED~'); + } + + var buffer = typedArrayBuffer(obj); // step 1 + + var byteLength = IsDetachedBuffer(buffer) ? 'DETACHED' : ArrayBufferByteLength(buffer, order); // steps 2 - 3 + + return { '[[Object]]': obj, '[[CachedBufferByteLength]]': byteLength }; // step 4 +}; diff --git a/node_modules/es-abstract/2024/MinFromTime.js b/node_modules/es-abstract/2024/MinFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..a0c631d4cc56cb21e15712def6008d5623edd0f9 --- /dev/null +++ b/node_modules/es-abstract/2024/MinFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/2024/MonthFromTime.js b/node_modules/es-abstract/2024/MonthFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..e551ee2be6da5cc49c7da94be78095c0803c53d9 --- /dev/null +++ b/node_modules/es-abstract/2024/MonthFromTime.js @@ -0,0 +1,51 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); + +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; + } + + throw new $RangeError('Assertion failed: `day` is out of range'); +}; diff --git a/node_modules/es-abstract/2024/NewPromiseCapability.js b/node_modules/es-abstract/2024/NewPromiseCapability.js new file mode 100644 index 0000000000000000000000000000000000000000..893266fe9f8da7b032d6fc835750a07c30086179 --- /dev/null +++ b/node_modules/es-abstract/2024/NewPromiseCapability.js @@ -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 +}; diff --git a/node_modules/es-abstract/2024/NormalCompletion.js b/node_modules/es-abstract/2024/NormalCompletion.js new file mode 100644 index 0000000000000000000000000000000000000000..1e429dd65cfaded0bd09155819605198a45c628d --- /dev/null +++ b/node_modules/es-abstract/2024/NormalCompletion.js @@ -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); +}; diff --git a/node_modules/es-abstract/2024/Number/add.js b/node_modules/es-abstract/2024/Number/add.js new file mode 100644 index 0000000000000000000000000000000000000000..eead1f19fec68bed3c141340b4318116f7e9ec06 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/add.js @@ -0,0 +1,31 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isFinite = require('math-intrinsics/isFinite'); +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-add + +module.exports = function NumberAdd(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + if (isNaN(x) || isNaN(y) || (x === Infinity && y === -Infinity) || (x === -Infinity && y === Infinity)) { + return NaN; + } + + if (!isFinite(x)) { + return x; + } + if (!isFinite(y)) { + return y; + } + + if (x === y && x === 0) { // both zeroes + return Infinity / x === -Infinity && Infinity / y === -Infinity ? -0 : +0; + } + + // shortcut for the actual spec mechanics + return x + y; +}; diff --git a/node_modules/es-abstract/2024/Number/bitwiseAND.js b/node_modules/es-abstract/2024/Number/bitwiseAND.js new file mode 100644 index 0000000000000000000000000000000000000000..d85d0f6f6a657b4afcbb3abd8c655d9e5a247400 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/bitwiseAND.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var NumberBitwiseOp = require('../NumberBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseAND + +module.exports = function NumberBitwiseAND(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + return NumberBitwiseOp('&', x, y); +}; diff --git a/node_modules/es-abstract/2024/Number/bitwiseNOT.js b/node_modules/es-abstract/2024/Number/bitwiseNOT.js new file mode 100644 index 0000000000000000000000000000000000000000..7e3035e879df0d334dab28b00d3f07c1583c0429 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/bitwiseNOT.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('../ToInt32'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseNOT + +module.exports = function NumberBitwiseNOT(x) { + if (typeof x !== 'number') { + throw new $TypeError('Assertion failed: `x` argument must be a Number'); + } + var oldValue = ToInt32(x); + // Return the result of applying the bitwise operator op to lnum and rnum. The result is a signed 32-bit integer. + return ~oldValue; +}; diff --git a/node_modules/es-abstract/2024/Number/bitwiseOR.js b/node_modules/es-abstract/2024/Number/bitwiseOR.js new file mode 100644 index 0000000000000000000000000000000000000000..2930a61222f9cc53559ffceac2865b5fdabfeea4 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/bitwiseOR.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var NumberBitwiseOp = require('../NumberBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseOR + +module.exports = function NumberBitwiseOR(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + return NumberBitwiseOp('|', x, y); +}; diff --git a/node_modules/es-abstract/2024/Number/bitwiseXOR.js b/node_modules/es-abstract/2024/Number/bitwiseXOR.js new file mode 100644 index 0000000000000000000000000000000000000000..fab4baae216a9c35ef1eb20fc941aca98028cb21 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/bitwiseXOR.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var NumberBitwiseOp = require('../NumberBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseXOR + +module.exports = function NumberBitwiseXOR(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + return NumberBitwiseOp('^', x, y); +}; diff --git a/node_modules/es-abstract/2024/Number/divide.js b/node_modules/es-abstract/2024/Number/divide.js new file mode 100644 index 0000000000000000000000000000000000000000..12ec011c993217453e4633d626e47d3baf134beb --- /dev/null +++ b/node_modules/es-abstract/2024/Number/divide.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isFinite = require('math-intrinsics/isFinite'); +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-divide + +module.exports = function NumberDivide(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + if (isNaN(x) || isNaN(y) || (!isFinite(x) && !isFinite(y))) { + return NaN; + } + // shortcut for the actual spec mechanics + return x / y; +}; diff --git a/node_modules/es-abstract/2024/Number/equal.js b/node_modules/es-abstract/2024/Number/equal.js new file mode 100644 index 0000000000000000000000000000000000000000..ebd9f7463a062a0b95d80a80e4ef2cbd8efc648e --- /dev/null +++ b/node_modules/es-abstract/2024/Number/equal.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-equal + +module.exports = function NumberEqual(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + if (isNaN(x) || isNaN(y)) { + return false; + } + // shortcut for the actual spec mechanics + return x === y; +}; diff --git a/node_modules/es-abstract/2024/Number/exponentiate.js b/node_modules/es-abstract/2024/Number/exponentiate.js new file mode 100644 index 0000000000000000000000000000000000000000..37812d85bccd0b0438c66595e1e6d5aef4c94bc7 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/exponentiate.js @@ -0,0 +1,74 @@ +'use strict'; + +// var isNegativeZero = require('math-intrinsics/isNegativeZero'); +var $pow = require('math-intrinsics/pow'); + +var $TypeError = require('es-errors/type'); + +/* +var abs = require('math-intrinsics/abs'); +var isFinite = require('math-intrinsics/isFinite'); +var isNaN = require('math-intrinsics/isNaN'); + +var IsInteger = require('math-intrinsics/isInteger'); +*/ + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-exponentiate + +/* eslint max-lines-per-function: 0, max-statements: 0 */ + +module.exports = function NumberExponentiate(base, exponent) { + if (typeof base !== 'number' || typeof exponent !== 'number') { + throw new $TypeError('Assertion failed: `base` and `exponent` arguments must be Numbers'); + } + return $pow(base, exponent); + /* + if (isNaN(exponent)) { + return NaN; + } + if (exponent === 0) { + return 1; + } + if (isNaN(base)) { + return NaN; + } + var aB = abs(base); + if (aB > 1 && exponent === Infinity) { + return Infinity; + } + if (aB > 1 && exponent === -Infinity) { + return 0; + } + if (aB === 1 && (exponent === Infinity || exponent === -Infinity)) { + return NaN; + } + if (aB < 1 && exponent === Infinity) { + return +0; + } + if (aB < 1 && exponent === -Infinity) { + return Infinity; + } + if (base === Infinity) { + return exponent > 0 ? Infinity : 0; + } + if (base === -Infinity) { + var isOdd = true; + if (exponent > 0) { + return isOdd ? -Infinity : Infinity; + } + return isOdd ? -0 : 0; + } + if (exponent > 0) { + return isNegativeZero(base) ? Infinity : 0; + } + if (isNegativeZero(base)) { + if (exponent > 0) { + return isOdd ? -0 : 0; + } + return isOdd ? -Infinity : Infinity; + } + if (base < 0 && isFinite(base) && isFinite(exponent) && !IsInteger(exponent)) { + return NaN; + } + */ +}; diff --git a/node_modules/es-abstract/2024/Number/index.js b/node_modules/es-abstract/2024/Number/index.js new file mode 100644 index 0000000000000000000000000000000000000000..63ec52da69e285d605f9f5db2ffe69ed4af591f2 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/index.js @@ -0,0 +1,43 @@ +'use strict'; + +var add = require('./add'); +var bitwiseAND = require('./bitwiseAND'); +var bitwiseNOT = require('./bitwiseNOT'); +var bitwiseOR = require('./bitwiseOR'); +var bitwiseXOR = require('./bitwiseXOR'); +var divide = require('./divide'); +var equal = require('./equal'); +var exponentiate = require('./exponentiate'); +var leftShift = require('./leftShift'); +var lessThan = require('./lessThan'); +var multiply = require('./multiply'); +var remainder = require('./remainder'); +var sameValue = require('./sameValue'); +var sameValueZero = require('./sameValueZero'); +var signedRightShift = require('./signedRightShift'); +var subtract = require('./subtract'); +var toString = require('./toString'); +var unaryMinus = require('./unaryMinus'); +var unsignedRightShift = require('./unsignedRightShift'); + +module.exports = { + add: add, + bitwiseAND: bitwiseAND, + bitwiseNOT: bitwiseNOT, + bitwiseOR: bitwiseOR, + bitwiseXOR: bitwiseXOR, + divide: divide, + equal: equal, + exponentiate: exponentiate, + leftShift: leftShift, + lessThan: lessThan, + multiply: multiply, + remainder: remainder, + sameValue: sameValue, + sameValueZero: sameValueZero, + signedRightShift: signedRightShift, + subtract: subtract, + toString: toString, + unaryMinus: unaryMinus, + unsignedRightShift: unsignedRightShift +}; diff --git a/node_modules/es-abstract/2024/Number/leftShift.js b/node_modules/es-abstract/2024/Number/leftShift.js new file mode 100644 index 0000000000000000000000000000000000000000..bbaffae5d3e3bca167fbf5e501f43beece5b2e7f --- /dev/null +++ b/node_modules/es-abstract/2024/Number/leftShift.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('../ToInt32'); +var ToUint32 = require('../ToUint32'); +var modulo = require('../modulo'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-leftShift + +module.exports = function NumberLeftShift(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + var lnum = ToInt32(x); + var rnum = ToUint32(y); + + var shiftCount = modulo(rnum, 32); + + return lnum << shiftCount; +}; diff --git a/node_modules/es-abstract/2024/Number/lessThan.js b/node_modules/es-abstract/2024/Number/lessThan.js new file mode 100644 index 0000000000000000000000000000000000000000..538174306dd342a14dc82f25f2b8e5a56c9e6a32 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/lessThan.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-lessThan + +module.exports = function NumberLessThan(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + // If x is NaN, return undefined. + // If y is NaN, return undefined. + if (isNaN(x) || isNaN(y)) { + return void undefined; + } + + // shortcut for the actual spec mechanics + return x < y; +}; diff --git a/node_modules/es-abstract/2024/Number/multiply.js b/node_modules/es-abstract/2024/Number/multiply.js new file mode 100644 index 0000000000000000000000000000000000000000..318787cbab9b472dca1f47e18c0faec44c4da1c3 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/multiply.js @@ -0,0 +1,29 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-multiply + +module.exports = function NumberMultiply(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + if (isNaN(x) || isNaN(y) || (x === 0 && !isFinite(y)) || (!isFinite(x) && y === 0)) { + return NaN; + } + if (!isFinite(x) && !isFinite(y)) { + return x === y ? Infinity : -Infinity; + } + if (!isFinite(x) && y !== 0) { + return x > 0 ? Infinity : -Infinity; + } + if (!isFinite(y) && x !== 0) { + return y > 0 ? Infinity : -Infinity; + } + + // shortcut for the actual spec mechanics + return x * y; +}; diff --git a/node_modules/es-abstract/2024/Number/remainder.js b/node_modules/es-abstract/2024/Number/remainder.js new file mode 100644 index 0000000000000000000000000000000000000000..9390586ae1b15382f226bd8c2b18bacd8a8898b4 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/remainder.js @@ -0,0 +1,38 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isNaN = require('math-intrinsics/isNaN'); +var isFinite = require('math-intrinsics/isFinite'); + +var truncate = require('../truncate'); + +// https://262.ecma-international.org/14.0/#sec-numeric-types-number-remainder + +module.exports = function NumberRemainder(n, d) { + if (typeof n !== 'number' || typeof d !== 'number') { + throw new $TypeError('Assertion failed: `n` and `d` arguments must be Numbers'); + } + + // If either operand is NaN, the result is NaN. + // If the dividend is an infinity, or the divisor is a zero, or both, the result is NaN. + if (isNaN(n) || isNaN(d) || !isFinite(n) || d === 0) { + return NaN; + } + + // If the dividend is finite and the divisor is an infinity, the result equals the dividend. + // If the dividend is a zero and the divisor is nonzero and finite, the result is the same as the dividend. + if (!isFinite(d) || n === 0) { + return n; + } + + if (!isFinite(n) || !isFinite(d) || n === 0 || d === 0) { + throw new $TypeError('Assertion failed: `n` and `d` arguments must be finite and nonzero'); + } + var quotient = n / d; + var q = truncate(quotient); + var r = n - (d * q); + if (r === 0 && n < 0) { + return -0; + } + return r; +}; diff --git a/node_modules/es-abstract/2024/Number/sameValue.js b/node_modules/es-abstract/2024/Number/sameValue.js new file mode 100644 index 0000000000000000000000000000000000000000..f7c6f78a4afc352f3ead59cd4ffc866dadc74130 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/sameValue.js @@ -0,0 +1,18 @@ +'use strict'; + +var isNegativeZero = require('math-intrinsics/isNegativeZero'); +var $TypeError = require('es-errors/type'); + +var NumberSameValueZero = require('./sameValueZero'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-sameValue + +module.exports = function NumberSameValue(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + if (x === 0 && y === 0) { + return !(isNegativeZero(x) ^ isNegativeZero(y)); + } + return NumberSameValueZero(x, y); +}; diff --git a/node_modules/es-abstract/2024/Number/sameValueZero.js b/node_modules/es-abstract/2024/Number/sameValueZero.js new file mode 100644 index 0000000000000000000000000000000000000000..383ab82f70c8612fed5287ec4b0b0b5814f48750 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/sameValueZero.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-sameValueZero + +module.exports = function NumberSameValueZero(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + var xNaN = isNaN(x); + var yNaN = isNaN(y); + if (xNaN || yNaN) { + return xNaN === yNaN; + } + return x === y; +}; diff --git a/node_modules/es-abstract/2024/Number/signedRightShift.js b/node_modules/es-abstract/2024/Number/signedRightShift.js new file mode 100644 index 0000000000000000000000000000000000000000..b22775b14f06bec9ec6e4e1b53096d9e69740327 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/signedRightShift.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('../ToInt32'); +var ToUint32 = require('../ToUint32'); +var modulo = require('../modulo'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-signedRightShift + +module.exports = function NumberSignedRightShift(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + var lnum = ToInt32(x); + var rnum = ToUint32(y); + + var shiftCount = modulo(rnum, 32); + + return lnum >> shiftCount; +}; diff --git a/node_modules/es-abstract/2024/Number/subtract.js b/node_modules/es-abstract/2024/Number/subtract.js new file mode 100644 index 0000000000000000000000000000000000000000..9f66df451ff8029461369d79f81debc17766379a --- /dev/null +++ b/node_modules/es-abstract/2024/Number/subtract.js @@ -0,0 +1,15 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var NumberAdd = require('./add'); +var NumberUnaryMinus = require('./unaryMinus'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-subtract + +module.exports = function NumberSubtract(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + return NumberAdd(x, NumberUnaryMinus(y)); +}; diff --git a/node_modules/es-abstract/2024/Number/toString.js b/node_modules/es-abstract/2024/Number/toString.js new file mode 100644 index 0000000000000000000000000000000000000000..4864dc4d6d04742a32680b559826d424cafd4362 --- /dev/null +++ b/node_modules/es-abstract/2024/Number/toString.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $numberToString = callBound('Number.prototype.toString'); + +// https://262.ecma-international.org/14.0/#sec-numeric-types-number-tostring + +module.exports = function NumberToString(x, radix) { + if (typeof x !== 'number') { + throw new $TypeError('Assertion failed: `x` must be a Number'); + } + if (!isInteger(radix) || radix < 2 || radix > 36) { + throw new $TypeError('Assertion failed: `radix` must be an integer >= 2 and <= 36'); + } + + return $numberToString(x, radix); // steps 1 - 12 +}; diff --git a/node_modules/es-abstract/2024/Number/unaryMinus.js b/node_modules/es-abstract/2024/Number/unaryMinus.js new file mode 100644 index 0000000000000000000000000000000000000000..ab4ed98b2db294cfcd12edd31d9a7fd06649b9dd --- /dev/null +++ b/node_modules/es-abstract/2024/Number/unaryMinus.js @@ -0,0 +1,17 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-unaryMinus + +module.exports = function NumberUnaryMinus(x) { + if (typeof x !== 'number') { + throw new $TypeError('Assertion failed: `x` argument must be a Number'); + } + if (isNaN(x)) { + return NaN; + } + return -x; +}; diff --git a/node_modules/es-abstract/2024/Number/unsignedRightShift.js b/node_modules/es-abstract/2024/Number/unsignedRightShift.js new file mode 100644 index 0000000000000000000000000000000000000000..70334bd60c5a4417c07b2a5f51ba942fc8731d8f --- /dev/null +++ b/node_modules/es-abstract/2024/Number/unsignedRightShift.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('../ToInt32'); +var ToUint32 = require('../ToUint32'); +var modulo = require('../modulo'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-unsignedRightShift + +module.exports = function NumberUnsignedRightShift(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + var lnum = ToInt32(x); + var rnum = ToUint32(y); + + var shiftCount = modulo(rnum, 32); + + return lnum >>> shiftCount; +}; diff --git a/node_modules/es-abstract/2024/NumberBitwiseOp.js b/node_modules/es-abstract/2024/NumberBitwiseOp.js new file mode 100644 index 0000000000000000000000000000000000000000..769d1fa15aee1ba5ee58abd4f96579f9ba38138f --- /dev/null +++ b/node_modules/es-abstract/2024/NumberBitwiseOp.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('./ToInt32'); +var ToUint32 = require('./ToUint32'); + +// https://262.ecma-international.org/11.0/#sec-numberbitwiseop + +module.exports = function NumberBitwiseOp(op, x, y) { + if (op !== '&' && op !== '|' && op !== '^') { + throw new $TypeError('Assertion failed: `op` must be `&`, `|`, or `^`'); + } + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + var lnum = ToInt32(x); + var rnum = ToUint32(y); + if (op === '&') { + return lnum & rnum; + } + if (op === '|') { + return lnum | rnum; + } + return lnum ^ rnum; +}; diff --git a/node_modules/es-abstract/2024/NumberToBigInt.js b/node_modules/es-abstract/2024/NumberToBigInt.js new file mode 100644 index 0000000000000000000000000000000000000000..27fb6682301aaeb4a93dfad4ed9bcbdbaa24f6c2 --- /dev/null +++ b/node_modules/es-abstract/2024/NumberToBigInt.js @@ -0,0 +1,25 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $RangeError = require('es-errors/range'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var isInteger = require('math-intrinsics/isInteger'); + +// https://262.ecma-international.org/12.0/#sec-numbertobigint + +module.exports = function NumberToBigInt(number) { + if (typeof number !== 'number') { + throw new $TypeError('Assertion failed: `number` must be a String'); + } + if (!isInteger(number)) { + throw new $RangeError('The number ' + number + ' cannot be converted to a BigInt because it is not an integer'); + } + if (!$BigInt) { + throw new $SyntaxError('BigInts are not supported in this environment'); + } + return $BigInt(number); +}; diff --git a/node_modules/es-abstract/2024/NumericToRawBytes.js b/node_modules/es-abstract/2024/NumericToRawBytes.js new file mode 100644 index 0000000000000000000000000000000000000000..3ae32ed74de0552580a33872ca877a0044a9836f --- /dev/null +++ b/node_modules/es-abstract/2024/NumericToRawBytes.js @@ -0,0 +1,62 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var hasOwnProperty = require('./HasOwnProperty'); +var ToBigInt64 = require('./ToBigInt64'); +var ToBigUint64 = require('./ToBigUint64'); +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 tableTAO = require('./tables/typed-array-objects'); + +// https://262.ecma-international.org/15.0/#table-the-typedarray-constructors +var TypeToAO = { + __proto__: null, + $INT8: ToInt8, + $UINT8: ToUint8, + $UINT8C: ToUint8Clamp, + $INT16: ToInt16, + $UINT16: ToUint16, + $INT32: ToInt32, + $UINT32: ToUint32, + $BIGINT64: ToBigInt64, + $BIGUINT64: ToBigUint64 +}; + +// https://262.ecma-international.org/15.0/#sec-numerictorawbytes + +module.exports = function NumericToRawBytes(type, value, isLittleEndian) { + if (typeof type !== 'string' || !hasOwnProperty(tableTAO.size, '$' + type)) { + throw new $TypeError('Assertion failed: `type` must be a TypedArray element type'); + } + if (typeof value !== 'number' && typeof value !== 'bigint') { + throw new $TypeError('Assertion failed: `value` must be a Number or a BigInt'); + } + 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 = tableTAO.size['$' + 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 +}; diff --git a/node_modules/es-abstract/2024/ObjectDefineProperties.js b/node_modules/es-abstract/2024/ObjectDefineProperties.js new file mode 100644 index 0000000000000000000000000000000000000000..1df7c688399fe01ca080d3a551ab66f82ee0a751 --- /dev/null +++ b/node_modules/es-abstract/2024/ObjectDefineProperties.js @@ -0,0 +1,33 @@ +'use strict'; + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); +var Get = require('./Get'); +var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); +var ToObject = require('./ToObject'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +var forEach = require('../helpers/forEach'); +var OwnPropertyKeys = require('own-keys'); + +// https://262.ecma-international.org/15.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 = OrdinaryGetOwnProperty(props, nextKey); // 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 + descriptors[descriptors.length] = { '[[Key]]': nextKey, '[[Descriptor]]': desc }; // step 4.b.iii + } + }); + + forEach(descriptors, function (pair) { // step 5 + DefinePropertyOrThrow(O, pair['[[Key]]'], pair['[[Descriptor]]']); // step 5.c + }); + + return O; // step 6 +}; diff --git a/node_modules/es-abstract/2024/OrdinaryCreateFromConstructor.js b/node_modules/es-abstract/2024/OrdinaryCreateFromConstructor.js new file mode 100644 index 0000000000000000000000000000000000000000..ac997c828209e0a91a21801f62f206d4dd642c29 --- /dev/null +++ b/node_modules/es-abstract/2024/OrdinaryCreateFromConstructor.js @@ -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 OrdinaryObjectCreate = require('./OrdinaryObjectCreate'); + +// 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 OrdinaryObjectCreate(proto, slots); +}; diff --git a/node_modules/es-abstract/2024/OrdinaryDefineOwnProperty.js b/node_modules/es-abstract/2024/OrdinaryDefineOwnProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..1a61488c6311f778620cdccb377e0b377040b055 --- /dev/null +++ b/node_modules/es-abstract/2024/OrdinaryDefineOwnProperty.js @@ -0,0 +1,54 @@ +'use strict'; + +var $gOPD = require('gopd'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyDescriptor = require('../helpers/records/property-descriptor'); + +var IsAccessorDescriptor = require('./IsAccessorDescriptor'); +var IsExtensible = require('./IsExtensible'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); +var SameValue = require('./SameValue'); +var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-ordinarydefineownproperty + +module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { + if (!isObject(O)) { + 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); +}; diff --git a/node_modules/es-abstract/2024/OrdinaryGetOwnProperty.js b/node_modules/es-abstract/2024/OrdinaryGetOwnProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..e0c9cb1a595d9273e0bbea4f0b6a99918320b7fd --- /dev/null +++ b/node_modules/es-abstract/2024/OrdinaryGetOwnProperty.js @@ -0,0 +1,41 @@ +'use strict'; + +var $gOPD = require('gopd'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var callBound = require('call-bound'); + +var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); + +var hasOwn = require('hasown'); + +var IsArray = require('./IsArray'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var IsRegExp = require('./IsRegExp'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-ordinarygetownproperty + +module.exports = function OrdinaryGetOwnProperty(O, P) { + if (!isObject(O)) { + 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)); +}; diff --git a/node_modules/es-abstract/2024/OrdinaryGetPrototypeOf.js b/node_modules/es-abstract/2024/OrdinaryGetPrototypeOf.js new file mode 100644 index 0000000000000000000000000000000000000000..7ef8bee34617c4ecaa2bd4b55cf1eb6a6665fe50 --- /dev/null +++ b/node_modules/es-abstract/2024/OrdinaryGetPrototypeOf.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var $getProto = require('get-proto'); + +// https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof + +module.exports = function OrdinaryGetPrototypeOf(O) { + if (!isObject(O)) { + 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); +}; diff --git a/node_modules/es-abstract/2024/OrdinaryHasInstance.js b/node_modules/es-abstract/2024/OrdinaryHasInstance.js new file mode 100644 index 0000000000000000000000000000000000000000..a0a83e6733a49e898d0f9db5df20a54028ad69e3 --- /dev/null +++ b/node_modules/es-abstract/2024/OrdinaryHasInstance.js @@ -0,0 +1,23 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); + +// https://262.ecma-international.org/6.0/#sec-ordinaryhasinstance + +module.exports = function OrdinaryHasInstance(C, O) { + if (!IsCallable(C)) { + return false; + } + if (!isObject(O)) { + return false; + } + var P = Get(C, 'prototype'); + if (!isObject(P)) { + throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); + } + return O instanceof C; +}; diff --git a/node_modules/es-abstract/2024/OrdinaryHasProperty.js b/node_modules/es-abstract/2024/OrdinaryHasProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..c6c5c11961374a2c3c4beb751aca52a9973093d6 --- /dev/null +++ b/node_modules/es-abstract/2024/OrdinaryHasProperty.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/6.0/#sec-ordinaryhasproperty + +module.exports = function OrdinaryHasProperty(O, P) { + if (!isObject(O)) { + 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; +}; diff --git a/node_modules/es-abstract/2024/OrdinaryObjectCreate.js b/node_modules/es-abstract/2024/OrdinaryObjectCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..aca0ac014fead59cc298b13659179c082a4ae82a --- /dev/null +++ b/node_modules/es-abstract/2024/OrdinaryObjectCreate.js @@ -0,0 +1,56 @@ +'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 isObject = require('es-object-atoms/isObject'); + +var IsArray = require('./IsArray'); + +var forEach = require('../helpers/forEach'); + +var SLOT = require('internal-slot'); + +var hasProto = require('has-proto')(); + +// https://262.ecma-international.org/11.0/#sec-objectcreate + +module.exports = function OrdinaryObjectCreate(proto) { + if (proto !== null && !isObject(proto)) { + throw new $TypeError('Assertion failed: `proto` must be null or an object'); + } + var additionalInternalSlotsList = arguments.length < 2 ? [] : arguments[1]; + if (!IsArray(additionalInternalSlotsList)) { + throw new $TypeError('Assertion failed: `additionalInternalSlotsList` must be an Array'); + } + + // var internalSlotsList = ['[[Prototype]]', '[[Extensible]]']; // step 1 + // internalSlotsList.push(...additionalInternalSlotsList); // step 2 + // var O = MakeBasicObject(internalSlotsList); // step 3 + // setProto(O, proto); // step 4 + // return O; // step 5 + + var O; + if (hasProto) { + O = { __proto__: proto }; + } else if ($ObjectCreate) { + O = $ObjectCreate(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 (additionalInternalSlotsList.length > 0) { + forEach(additionalInternalSlotsList, function (slot) { + SLOT.set(O, slot, void undefined); + }); + } + + return O; +}; diff --git a/node_modules/es-abstract/2024/OrdinarySetPrototypeOf.js b/node_modules/es-abstract/2024/OrdinarySetPrototypeOf.js new file mode 100644 index 0000000000000000000000000000000000000000..b493a442ddd22b125fde2ed40eeebddf2d080a2d --- /dev/null +++ b/node_modules/es-abstract/2024/OrdinarySetPrototypeOf.js @@ -0,0 +1,50 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var $setProto = require('set-proto'); +var isObject = require('es-object-atoms/isObject'); + +var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); + +// https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof + +module.exports = function OrdinarySetPrototypeOf(O, V) { + if (V !== null && !isObject(V)) { + 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; + */ +}; diff --git a/node_modules/es-abstract/2024/OrdinaryToPrimitive.js b/node_modules/es-abstract/2024/OrdinaryToPrimitive.js new file mode 100644 index 0000000000000000000000000000000000000000..5feb5694e8aba94591eac365aa6bd8a6b985f305 --- /dev/null +++ b/node_modules/es-abstract/2024/OrdinaryToPrimitive.js @@ -0,0 +1,36 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); + +var inspect = require('object-inspect'); + +// https://262.ecma-international.org/8.0/#sec-ordinarytoprimitive + +module.exports = function OrdinaryToPrimitive(O, hint) { + if (!isObject(O)) { + 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 (!isObject(result)) { + return result; + } + } + } + + throw new $TypeError('No primitive value for ' + inspect(O)); +}; diff --git a/node_modules/es-abstract/2024/ParseHexOctet.js b/node_modules/es-abstract/2024/ParseHexOctet.js new file mode 100644 index 0000000000000000000000000000000000000000..0c55b32dc9dc4d81fdacaf100e6db71957afd79f --- /dev/null +++ b/node_modules/es-abstract/2024/ParseHexOctet.js @@ -0,0 +1,40 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var substring = require('./substring'); + +var isInteger = require('math-intrinsics/isInteger'); +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/14.0/#sec-parsehexoctet + +module.exports = function ParseHexOctet(string, position) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + if (!isInteger(position) || position < 0) { + throw new $TypeError('Assertion failed: `position` must be a nonnegative integer'); + } + + var len = string.length; // step 1 + if ((position + 2) > len) { // step 2 + var error = new $SyntaxError('requested a position on a string that does not contain 2 characters at that position'); // step 2.a + return [error]; // step 2.b + } + var hexDigits = substring(string, position, position + 2); // step 3 + + var n = +('0x' + hexDigits); + if (isNaN(n)) { + return [new $SyntaxError('Invalid hexadecimal characters')]; + } + return n; + + /* + 4. Let _parseResult_ be ParseText(StringToCodePoints(_hexDigits_), |HexDigits[~Sep]|). + 5. If _parseResult_ is not a Parse Node, return _parseResult_. + 6. Let _n_ be the unsigned 8-bit value corresponding with the MV of _parseResult_. + 7. Return _n_. + */ +}; diff --git a/node_modules/es-abstract/2024/PromiseResolve.js b/node_modules/es-abstract/2024/PromiseResolve.js new file mode 100644 index 0000000000000000000000000000000000000000..dfb7d82fd2e9a378da3188a73ff006a06ce14463 --- /dev/null +++ b/node_modules/es-abstract/2024/PromiseResolve.js @@ -0,0 +1,18 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBind = require('call-bind'); +var $SyntaxError = require('es-errors/syntax'); + +var $resolve = GetIntrinsic('%Promise.resolve%', true); +var $PromiseResolve = $resolve && callBind($resolve); + +// https://262.ecma-international.org/9.0/#sec-promise-resolve + +module.exports = function PromiseResolve(C, x) { + if (!$PromiseResolve) { + throw new $SyntaxError('This environment does not support Promises.'); + } + return $PromiseResolve(C, x); +}; + diff --git a/node_modules/es-abstract/2024/QuoteJSONString.js b/node_modules/es-abstract/2024/QuoteJSONString.js new file mode 100644 index 0000000000000000000000000000000000000000..2e0c15b64451c199fdd125d63946025921d9a329 --- /dev/null +++ b/node_modules/es-abstract/2024/QuoteJSONString.js @@ -0,0 +1,52 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); +var forEach = require('../helpers/forEach'); +var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); +var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); + +var $charCodeAt = callBound('String.prototype.charCodeAt'); +var $strSplit = callBound('String.prototype.split'); + +var StringToCodePoints = require('./StringToCodePoints'); +var UnicodeEscape = require('./UnicodeEscape'); +var UTF16EncodeCodePoint = require('./UTF16EncodeCodePoint'); + +var hasOwn = require('hasown'); + +// https://262.ecma-international.org/12.0/#sec-quotejsonstring + +var escapes = { + '\u0008': '\\b', + '\u0009': '\\t', + '\u000A': '\\n', + '\u000C': '\\f', + '\u000D': '\\r', + '\u0022': '\\"', + '\u005c': '\\\\' +}; + +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(StringToCodePoints(value), ''), function (C) { + if (hasOwn(escapes, C)) { + product += escapes[C]; + } else { + var cCharCode = $charCodeAt(C, 0); + if (cCharCode < 0x20 || isLeadingSurrogate(cCharCode) || isTrailingSurrogate(cCharCode)) { + product += UnicodeEscape(C); + } else { + product += UTF16EncodeCodePoint(cCharCode); + } + } + }); + } + product += '"'; + return product; +}; diff --git a/node_modules/es-abstract/2024/RawBytesToNumeric.js b/node_modules/es-abstract/2024/RawBytesToNumeric.js new file mode 100644 index 0000000000000000000000000000000000000000..44c1c6319a1ef0d62c81d5b94443ed7d96467f53 --- /dev/null +++ b/node_modules/es-abstract/2024/RawBytesToNumeric.js @@ -0,0 +1,67 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); + +var $RangeError = require('es-errors/range'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var $BigInt = GetIntrinsic('%BigInt%', true); + +var hasOwnProperty = require('./HasOwnProperty'); +var IsArray = require('./IsArray'); +var IsBigIntElementType = require('./IsBigIntElementType'); +var IsUnsignedElementType = require('./IsUnsignedElementType'); + +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 $reverse = callBound('Array.prototype.reverse'); +var $slice = callBound('Array.prototype.slice'); + +var tableTAO = require('./tables/typed-array-objects'); + +// https://262.ecma-international.org/15.0/#sec-rawbytestonumeric + +module.exports = function RawBytesToNumeric(type, rawBytes, isLittleEndian) { + if (!hasOwnProperty(tableTAO.size, '$' + type)) { + throw new $TypeError('Assertion failed: `type` must be a TypedArray element type'); + } + 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 = tableTAO.size['$' + 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); + } + + var isBigInt = IsBigIntElementType(type); + if (isBigInt && !$BigInt) { + throw new $SyntaxError('this environment does not support BigInts'); + } + + // 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, IsUnsignedElementType(type), isBigInt); +}; diff --git a/node_modules/es-abstract/2024/RegExpCreate.js b/node_modules/es-abstract/2024/RegExpCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..68e31605ed1764b9e1addddc5b910e9c9d73fba2 --- /dev/null +++ b/node_modules/es-abstract/2024/RegExpCreate.js @@ -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); +}; diff --git a/node_modules/es-abstract/2024/RegExpExec.js b/node_modules/es-abstract/2024/RegExpExec.js new file mode 100644 index 0000000000000000000000000000000000000000..15762b8343aa380c2c90257eef552a87c56745ae --- /dev/null +++ b/node_modules/es-abstract/2024/RegExpExec.js @@ -0,0 +1,29 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var regexExec = require('call-bound')('RegExp.prototype.exec'); + +var Call = require('./Call'); +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); + +// https://262.ecma-international.org/6.0/#sec-regexpexec + +module.exports = function RegExpExec(R, S) { + if (!isObject(R)) { + 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 (result === null || isObject(result)) { + return result; + } + throw new $TypeError('"exec" method must return `null` or an Object'); + } + return regexExec(R, S); +}; diff --git a/node_modules/es-abstract/2024/RegExpHasFlag.js b/node_modules/es-abstract/2024/RegExpHasFlag.js new file mode 100644 index 0000000000000000000000000000000000000000..a1f06ce29172dfbdb155c0307a422851141db649 --- /dev/null +++ b/node_modules/es-abstract/2024/RegExpHasFlag.js @@ -0,0 +1,38 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $RegExpPrototype = GetIntrinsic('%RegExp.prototype%'); + +var SameValue = require('./SameValue'); + +var $indexOf = callBound('String.prototype.indexOf'); + +var hasRegExpMatcher = require('is-regex'); +var getFlags = require('regexp.prototype.flags'); + +// https://262.ecma-international.org/13.0/#sec-regexphasflag + +module.exports = function RegExpHasFlag(R, codeUnit) { + if (typeof codeUnit !== 'string' || codeUnit.length !== 1) { + throw new $TypeError('Assertion failed: `string` must be a code unit - a String of length 1'); + } + + if (!isObject(R)) { + throw new $TypeError('Assertion failed: Type(R) is not Object'); + } + + if (!hasRegExpMatcher(R)) { // step 2 + if (SameValue(R, $RegExpPrototype)) { + return void undefined; // step 2.a + } + throw new $TypeError('`R` must be a RegExp object'); // step 2.b + } + + var flags = getFlags(R); // step 3 + + return $indexOf(flags, codeUnit) > -1; // steps 4-5 +}; diff --git a/node_modules/es-abstract/2024/RequireObjectCoercible.js b/node_modules/es-abstract/2024/RequireObjectCoercible.js new file mode 100644 index 0000000000000000000000000000000000000000..b816d1f34b01a80352e783672836a17c49cc06f0 --- /dev/null +++ b/node_modules/es-abstract/2024/RequireObjectCoercible.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('es-object-atoms/RequireObjectCoercible'); diff --git a/node_modules/es-abstract/2024/SameValue.js b/node_modules/es-abstract/2024/SameValue.js new file mode 100644 index 0000000000000000000000000000000000000000..d07bbb8a8f3fec5ad22ffdfb617245331fcff412 --- /dev/null +++ b/node_modules/es-abstract/2024/SameValue.js @@ -0,0 +1,13 @@ +'use strict'; + +var $isNaN = require('math-intrinsics/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); +}; diff --git a/node_modules/es-abstract/2024/SameValueNonNumber.js b/node_modules/es-abstract/2024/SameValueNonNumber.js new file mode 100644 index 0000000000000000000000000000000000000000..4097ad4ecdcdadef3e903b726e88292827894da7 --- /dev/null +++ b/node_modules/es-abstract/2024/SameValueNonNumber.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var SameValue = require('./SameValue'); +var Type = require('./Type'); + +// https://262.ecma-international.org/14.0/#sec-samevaluenonnumeric + +module.exports = function SameValueNonNumber(x, y) { + if (typeof x === 'number') { + throw new $TypeError('Assertion failed: SameValueNonNumber does not accept Number values'); + } + if (Type(x) !== Type(y)) { + throw new $TypeError('SameValueNonNumber requires two non-Number values of the same type.'); + } + return SameValue(x, y); +}; diff --git a/node_modules/es-abstract/2024/SameValueZero.js b/node_modules/es-abstract/2024/SameValueZero.js new file mode 100644 index 0000000000000000000000000000000000000000..8880e915941eeae2d890f2bdeb1bd057516e3d50 --- /dev/null +++ b/node_modules/es-abstract/2024/SameValueZero.js @@ -0,0 +1,9 @@ +'use strict'; + +var $isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/6.0/#sec-samevaluezero + +module.exports = function SameValueZero(x, y) { + return (x === y) || ($isNaN(x) && $isNaN(y)); +}; diff --git a/node_modules/es-abstract/2024/SecFromTime.js b/node_modules/es-abstract/2024/SecFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..fc2e44560240f134cf345e63ab69d5f8a2d8cec1 --- /dev/null +++ b/node_modules/es-abstract/2024/SecFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/2024/Set.js b/node_modules/es-abstract/2024/Set.js new file mode 100644 index 0000000000000000000000000000000000000000..f814076a8fb813648eb16093fe86a46182c0fccf --- /dev/null +++ b/node_modules/es-abstract/2024/Set.js @@ -0,0 +1,45 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); +var SameValue = require('./SameValue'); + +// 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 (!isObject(O)) { + 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; + } + +}; diff --git a/node_modules/es-abstract/2024/SetFunctionLength.js b/node_modules/es-abstract/2024/SetFunctionLength.js new file mode 100644 index 0000000000000000000000000000000000000000..193be1c6a6d343f59353756163216d4fae5a57ff --- /dev/null +++ b/node_modules/es-abstract/2024/SetFunctionLength.js @@ -0,0 +1,28 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); +var HasOwnProperty = require('./HasOwnProperty'); +var IsExtensible = require('./IsExtensible'); + +// https://262.ecma-international.org/12.0/#sec-setfunctionlength + +module.exports = function SetFunctionLength(F, length) { + if (typeof F !== 'function' || !IsExtensible(F) || HasOwnProperty(F, 'length')) { + throw new $TypeError('Assertion failed: `F` must be an extensible function and lack an own `length` property'); + } + if (typeof length !== 'number') { + throw new $TypeError('Assertion failed: `length` must be a Number'); + } + if (length !== Infinity && (!isInteger(length) || length < 0)) { + throw new $TypeError('Assertion failed: `length` must be ∞, or an integer >= 0'); + } + return DefinePropertyOrThrow(F, 'length', { + '[[Configurable]]': true, + '[[Enumerable]]': false, + '[[Value]]': length, + '[[Writable]]': false + }); +}; diff --git a/node_modules/es-abstract/2024/SetFunctionName.js b/node_modules/es-abstract/2024/SetFunctionName.js new file mode 100644 index 0000000000000000000000000000000000000000..9e8511fd46bc115d0459cc66f44bb6560ba2bc3a --- /dev/null +++ b/node_modules/es-abstract/2024/SetFunctionName.js @@ -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 + }); +}; diff --git a/node_modules/es-abstract/2024/SetIntegrityLevel.js b/node_modules/es-abstract/2024/SetIntegrityLevel.js new file mode 100644 index 0000000000000000000000000000000000000000..ad92fb99b004f2b05e23fa0b2ef45dfc3775025e --- /dev/null +++ b/node_modules/es-abstract/2024/SetIntegrityLevel.js @@ -0,0 +1,57 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $gOPD = require('gopd'); +var $preventExtensions = GetIntrinsic('%Object.preventExtensions%', true); +var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true); + +var forEach = require('../helpers/forEach'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); +var IsAccessorDescriptor = require('./IsAccessorDescriptor'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-setintegritylevel + +module.exports = function SetIntegrityLevel(O, level) { + if (!isObject(O)) { + 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; +}; diff --git a/node_modules/es-abstract/2024/SetTypedArrayFromArrayLike.js b/node_modules/es-abstract/2024/SetTypedArrayFromArrayLike.js new file mode 100644 index 0000000000000000000000000000000000000000..a11b34ad56589df6f320acebb093a82be9624768 --- /dev/null +++ b/node_modules/es-abstract/2024/SetTypedArrayFromArrayLike.js @@ -0,0 +1,64 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); + +var isTypedArray = require('is-typed-array'); +var whichTypedArray = require('which-typed-array'); + +var Get = require('./Get'); +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var LengthOfArrayLike = require('./LengthOfArrayLike'); +var MakeTypedArrayWithBufferWitnessRecord = require('./MakeTypedArrayWithBufferWitnessRecord'); +var ToObject = require('./ToObject'); +var ToString = require('./ToString'); +var TypedArrayLength = require('./TypedArrayLength'); +var TypedArraySetElement = require('./TypedArraySetElement'); + +// https://262.ecma-international.org/15.0/#sec-settypedarrayfromarraylike + +module.exports = function SetTypedArrayFromArrayLike(target, targetOffset, source) { + var whichTarget = whichTypedArray(target); + if (!whichTarget) { + throw new $TypeError('Assertion failed: `target` must be a Typed Array'); + } + + if (targetOffset !== Infinity && (!isInteger(targetOffset) || targetOffset < 0)) { + throw new $TypeError('Assertion failed: `targetOffset` must be a non-negative integer or +Infinity'); + } + + if (isTypedArray(source)) { + throw new $TypeError('Assertion failed: `source` must not be a Typed Array'); + } + + var targetRecord = MakeTypedArrayWithBufferWitnessRecord(target, 'SEQ-CST'); // step 1 + + if (IsTypedArrayOutOfBounds(targetRecord)) { + throw new $TypeError('target is out of bounds'); // step 2 + } + + var targetLength = TypedArrayLength(targetRecord); // step 3 + + var src = ToObject(source); // step 4 + + var srcLength = LengthOfArrayLike(src); // step 5 + + if (targetOffset === Infinity) { + throw new $RangeError('targetOffset must be a finite integer'); // step 6 + } + + if (srcLength + targetOffset > targetLength) { + throw new $RangeError('targetOffset + srcLength must be <= target.length'); // step 7 + } + + var k = 0; // step 8 + + while (k < srcLength) { // step 9 + var Pk = ToString(k); // step 9.a + var value = Get(src, Pk); // step 9.b + var targetIndex = targetOffset + k; // step 9.c + TypedArraySetElement(target, targetIndex, value); // step 9.d + k += 1; // step 9.e + } +}; diff --git a/node_modules/es-abstract/2024/SetTypedArrayFromTypedArray.js b/node_modules/es-abstract/2024/SetTypedArrayFromTypedArray.js new file mode 100644 index 0000000000000000000000000000000000000000..0cc2b6662d15392aa366c3b7e96bd208643f993c --- /dev/null +++ b/node_modules/es-abstract/2024/SetTypedArrayFromTypedArray.js @@ -0,0 +1,133 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var CloneArrayBuffer = require('./CloneArrayBuffer'); +var GetValueFromBuffer = require('./GetValueFromBuffer'); +var IsSharedArrayBuffer = require('./IsSharedArrayBuffer'); +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var MakeTypedArrayWithBufferWitnessRecord = require('./MakeTypedArrayWithBufferWitnessRecord'); +var SameValue = require('./SameValue'); +var SetValueInBuffer = require('./SetValueInBuffer'); +var TypedArrayByteLength = require('./TypedArrayByteLength'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); +var TypedArrayElementType = require('./TypedArrayElementType'); +var TypedArrayLength = require('./TypedArrayLength'); + +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayByteOffset = require('typed-array-byte-offset'); +var whichTypedArray = require('which-typed-array'); +var GetIntrinsic = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $ArrayBuffer = GetIntrinsic('%ArrayBuffer%', true); + +// https://262.ecma-international.org/15.0/#sec-settypedarrayfromtypedarray + +module.exports = function SetTypedArrayFromTypedArray(target, targetOffset, source) { + var whichTarget = whichTypedArray(target); + if (!whichTarget) { + throw new $TypeError('Assertion failed: `target` must be a Typed Array'); + } + + if (targetOffset !== Infinity && (!isInteger(targetOffset) || targetOffset < 0)) { + throw new $TypeError('Assertion failed: `targetOffset` must be a non-negative integer or +Infinity'); + } + + var whichSource = whichTypedArray(source); + if (!whichSource) { + throw new $TypeError('Assertion failed: `source` must be a Typed Array'); + } + + var targetBuffer = typedArrayBuffer(target); // step 1 + + var targetRecord = MakeTypedArrayWithBufferWitnessRecord(target, 'SEQ-CST'); // step 2 + + if (IsTypedArrayOutOfBounds(targetRecord)) { + throw new $TypeError('target is out of bounds'); // step 3 + } + + var targetLength = TypedArrayLength(targetRecord); // step 4 + + var srcBuffer = typedArrayBuffer(source); // step 5 + + var srcRecord = MakeTypedArrayWithBufferWitnessRecord(source, 'SEQ-CST'); // step 6 + + if (IsTypedArrayOutOfBounds(srcRecord)) { + throw new $TypeError('target is out of bounds'); // step 7 + } + + var srcLength = TypedArrayLength(srcRecord); // step 8 + + var targetType = TypedArrayElementType(target); // step 9 + + var targetElementSize = TypedArrayElementSize(target); // step 10 + + var targetByteOffset = typedArrayByteOffset(target); // step 11 + + var srcType = TypedArrayElementType(source); // step 12 + + var srcElementSize = TypedArrayElementSize(source); // step 13 + + var srcByteOffset = typedArrayByteOffset(source); // step 14 + + if (targetOffset === Infinity) { + throw new $RangeError('targetOffset must be a non-negative integer or +Infinity'); // step 15 + } + + if (srcLength + targetOffset > targetLength) { + throw new $RangeError('targetOffset + source.length must not be greater than target.length'); // step 16 + } + + var targetContentType = whichTarget === 'BigInt64Array' || whichTarget === 'BigUint64Array' ? 'BIGINT' : 'NUMBER'; + var sourceContentType = whichSource === 'BigInt64Array' || whichSource === 'BigUint64Array' ? 'BIGINT' : 'NUMBER'; + if (targetContentType !== sourceContentType) { + throw new $TypeError('source and target must have the same content type'); // step 17 + } + + var sameSharedArrayBuffer = false; + if (IsSharedArrayBuffer(srcBuffer) && IsSharedArrayBuffer(targetBuffer)) { // step 18 + // a. If srcBuffer.[[ArrayBufferData]] and targetBuffer.[[ArrayBufferData]] are the same Shared Data Block values, let same be true; else let same be false. + throw new $SyntaxError('SharedArrayBuffer is not supported by this implementation'); + } + + var srcByteIndex; + if (SameValue(srcBuffer, targetBuffer) || sameSharedArrayBuffer) { // step 19 + var srcByteLength = TypedArrayByteLength(srcRecord); // step 19.a + srcBuffer = CloneArrayBuffer(srcBuffer, srcByteOffset, srcByteLength, $ArrayBuffer); // step 19.b + srcByteIndex = 0; // step 19.c + } else { // step 20 + srcByteIndex = srcByteOffset; // step 20.a + } + + var targetByteIndex = (targetOffset * targetElementSize) + targetByteOffset; // step 21 + + var limit = targetByteIndex + (targetElementSize * srcLength); // step 22 + + var value; + if (srcType === targetType) { // step 23 + // a. NOTE: The transfer must be performed in a manner that preserves the bit-level encoding of the source data. + + while (targetByteIndex < limit) { // step 23.b + value = GetValueFromBuffer(srcBuffer, srcByteIndex, 'UINT8', true, 'UNORDERED'); // step 23.b.i + + SetValueInBuffer(targetBuffer, targetByteIndex, 'UINT8', value, true, 'UNORDERED'); // step 23.b.ii + + srcByteIndex += 1; // step 23.b.iii + + targetByteIndex += 1; // step 23.b.iv + } + } else { // step 24 + while (targetByteIndex < limit) { // step 24.a + value = GetValueFromBuffer(srcBuffer, srcByteIndex, srcType, true, 'UNORDERED'); // step 24.a.i + + SetValueInBuffer(targetBuffer, targetByteIndex, targetType, value, true, 'UNORDERED'); // step 24.a.ii + + srcByteIndex += srcElementSize; // step 24.a.iii + + targetByteIndex += targetElementSize; // step 24.a.iv + } + } +}; diff --git a/node_modules/es-abstract/2024/SetValueInBuffer.js b/node_modules/es-abstract/2024/SetValueInBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..039579e331472771f1e947611332addaca718595 --- /dev/null +++ b/node_modules/es-abstract/2024/SetValueInBuffer.js @@ -0,0 +1,92 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var $Uint8Array = GetIntrinsic('%Uint8Array%', true); + +var IsBigIntElementType = require('./IsBigIntElementType'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var NumericToRawBytes = require('./NumericToRawBytes'); + +var isArrayBuffer = require('is-array-buffer'); +var isSharedArrayBuffer = require('is-shared-array-buffer'); +var hasOwn = require('hasown'); + +var tableTAO = require('./tables/typed-array-objects'); + +var defaultEndianness = require('../helpers/defaultEndianness'); +var forEach = require('../helpers/forEach'); + +// https://262.ecma-international.org/15.0/#sec-setvalueinbuffer + +/* eslint max-params: 0 */ + +module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value, 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) || byteIndex < 0) { + throw new $TypeError('Assertion failed: `byteIndex` must be a non-negative integer'); + } + + if (typeof type !== 'string' || !hasOwn(tableTAO.size, '$' + type)) { + throw new $TypeError('Assertion failed: `type` must be one of ' + tableTAO.choices); + } + + if (typeof value !== 'number' && typeof value !== 'bigint') { + throw new $TypeError('Assertion failed: `value` must be a Number or a BigInt'); + } + + if (typeof isTypedArray !== 'boolean') { + throw new $TypeError('Assertion failed: `isTypedArray` must be a boolean'); + } + if (order !== 'SEQ-CST' && order !== 'UNORDERED' && order !== 'INIT') { + throw new $TypeError('Assertion failed: `order` must be `"SEQ-CST"`, `"UNORDERED"`, or `"INIT"`'); + } + + if (arguments.length > 6 && typeof arguments[6] !== '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 (IsBigIntElementType(type) ? typeof value !== 'bigint' : typeof value !== 'number') { // step 3 + throw new $TypeError('Assertion failed: `value` must be a BigInt if type is ~BIGINT64~ or ~BIGUINT64~, otherwise a Number'); + } + + // 4. Let block be arrayBuffer’s [[ArrayBufferData]] internal slot. + + var elementSize = tableTAO.size['$' + type]; // step 5 + + // 6. 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 > 6 ? arguments[6] : defaultEndianness === 'little'; // step 6 + + var rawBytes = NumericToRawBytes(type, value, isLittleEndian); // step 7 + + if (isSAB) { // step 8 + /* + Let execution be the [[CandidateExecution]] field of the surrounding agent's Agent Record. + Let eventList be the [[EventList]] field of the element in execution.[[EventsRecords]] whose [[AgentSignifier]] is AgentSignifier(). + If isTypedArray is true and IsNoTearConfiguration(type, order) is true, let noTear be true; otherwise let noTear be false. + Append WriteSharedMemory { [[Order]]: order, [[NoTear]]: noTear, [[Block]]: block, [[ByteIndex]]: byteIndex, [[ElementSize]]: elementSize, [[Payload]]: rawBytes } to eventList. + */ + throw new $SyntaxError('SharedArrayBuffer is not supported by this implementation'); + } else { + // 9. 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; + }); + } + + // 10. Return NormalCompletion(undefined). +}; diff --git a/node_modules/es-abstract/2024/SortIndexedProperties.js b/node_modules/es-abstract/2024/SortIndexedProperties.js new file mode 100644 index 0000000000000000000000000000000000000000..7d80fee7aaa4f7b17c9cf6dde1c1c84318e6e8d2 --- /dev/null +++ b/node_modules/es-abstract/2024/SortIndexedProperties.js @@ -0,0 +1,49 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var HasProperty = require('./HasProperty'); +var ToString = require('./ToString'); + +var isAbstractClosure = require('../helpers/isAbstractClosure'); + +var $sort = callBound('Array.prototype.sort'); + +// https://262.ecma-international.org/14.0/#sec-sortindexedproperties + +module.exports = function SortIndexedProperties(obj, len, SortCompare, holes) { + if (!isObject(obj)) { + throw new $TypeError('Assertion failed: Type(obj) is not Object'); + } + if (!isInteger(len) || len < 0) { + throw new $TypeError('Assertion failed: `len` must be an integer >= 0'); + } + if (!isAbstractClosure(SortCompare) || SortCompare.length !== 2) { + throw new $TypeError('Assertion failed: `SortCompare` must be an abstract closure taking 2 arguments'); + } + if (holes !== 'skip-holes' && holes !== 'read-through-holes') { + throw new $TypeError('Assertion failed: `holes` must be either ~skip-holes~ or ~read-through-holes~'); + } + + var items = []; // step 1 + + var k = 0; // step 2 + + while (k < len) { // step 3 + var Pk = ToString(k); + var kRead = holes === 'skip-holes' ? HasProperty(obj, Pk) : true; // step 3.b - 3.c + if (kRead) { // step 3.d + var kValue = Get(obj, Pk); + items[items.length] = kValue; + } + k += 1; // step 3.e + } + + $sort(items, SortCompare); // step 4 + + return items; // step 5 +}; diff --git a/node_modules/es-abstract/2024/SpeciesConstructor.js b/node_modules/es-abstract/2024/SpeciesConstructor.js new file mode 100644 index 0000000000000000000000000000000000000000..23e32b443ef3655f56639920d5cf58474500bf67 --- /dev/null +++ b/node_modules/es-abstract/2024/SpeciesConstructor.js @@ -0,0 +1,32 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $species = GetIntrinsic('%Symbol.species%', true); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var IsConstructor = require('./IsConstructor'); + +// https://262.ecma-international.org/6.0/#sec-speciesconstructor + +module.exports = function SpeciesConstructor(O, defaultConstructor) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + var C = O.constructor; + if (typeof C === 'undefined') { + return defaultConstructor; + } + if (!isObject(C)) { + throw new $TypeError('O.constructor is not an Object'); + } + var S = $species ? C[$species] : void 0; + if (S == null) { + return defaultConstructor; + } + if (IsConstructor(S)) { + return S; + } + throw new $TypeError('no constructor found'); +}; diff --git a/node_modules/es-abstract/2024/StringCreate.js b/node_modules/es-abstract/2024/StringCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..3e2aa43c50d8aa6317c0eef7eaf0b87e32916d4d --- /dev/null +++ b/node_modules/es-abstract/2024/StringCreate.js @@ -0,0 +1,38 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Object = require('es-object-atoms'); +var $StringPrototype = GetIntrinsic('%String.prototype%'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var setProto = require('set-proto'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); + +// https://262.ecma-international.org/6.0/#sec-stringcreate + +module.exports = function StringCreate(value, prototype) { + if (typeof value !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + + var S = $Object(value); + if (prototype !== $StringPrototype) { + if (setProto) { + setProto(S, prototype); + } else { + throw new $SyntaxError('StringCreate: a `proto` argument that is not `String.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); + } + } + + var length = value.length; + DefinePropertyOrThrow(S, 'length', { + '[[Configurable]]': false, + '[[Enumerable]]': false, + '[[Value]]': length, + '[[Writable]]': false + }); + + return S; +}; diff --git a/node_modules/es-abstract/2024/StringGetOwnProperty.js b/node_modules/es-abstract/2024/StringGetOwnProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..59e8a23f8969db47a1f1eae85a542594c4b64406 --- /dev/null +++ b/node_modules/es-abstract/2024/StringGetOwnProperty.js @@ -0,0 +1,46 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isNegativeZero = require('math-intrinsics/isNegativeZero'); +var isObject = require('es-object-atoms/isObject'); + +var callBound = require('call-bound'); +var $charAt = callBound('String.prototype.charAt'); +var $stringToString = callBound('String.prototype.toString'); + +var CanonicalNumericIndexString = require('./CanonicalNumericIndexString'); + +var isPropertyKey = require('../helpers/isPropertyKey'); +var isInteger = require('math-intrinsics/isInteger'); + +// https://262.ecma-international.org/12.0/#sec-stringgetownproperty + +module.exports = function StringGetOwnProperty(S, P) { + var str; + if (isObject(S)) { + try { + str = $stringToString(S); + } catch (e) { /**/ } + } + if (typeof str !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a boxed string object'); + } + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + if (typeof P !== 'string') { + return void undefined; + } + var index = CanonicalNumericIndexString(P); + var len = str.length; + if (typeof index === 'undefined' || !isInteger(index) || isNegativeZero(index) || index < 0 || len <= index) { + return void undefined; + } + var resultStr = $charAt(S, index); + return { + '[[Configurable]]': false, + '[[Enumerable]]': true, + '[[Value]]': resultStr, + '[[Writable]]': false + }; +}; diff --git a/node_modules/es-abstract/2024/StringIndexOf.js b/node_modules/es-abstract/2024/StringIndexOf.js new file mode 100644 index 0000000000000000000000000000000000000000..a1fce808019201ec1c5689884e822860c1c75472 --- /dev/null +++ b/node_modules/es-abstract/2024/StringIndexOf.js @@ -0,0 +1,36 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); + +var $slice = callBound('String.prototype.slice'); + +// https://262.ecma-international.org/12.0/#sec-stringindexof + +module.exports = function StringIndexOf(string, searchValue, fromIndex) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + if (typeof searchValue !== 'string') { + throw new $TypeError('Assertion failed: `searchValue` must be a String'); + } + if (!isInteger(fromIndex) || fromIndex < 0) { + throw new $TypeError('Assertion failed: `fromIndex` must be a non-negative integer'); + } + + var len = string.length; + if (searchValue === '' && fromIndex <= len) { + return fromIndex; + } + + var searchLen = searchValue.length; + for (var i = fromIndex; i <= (len - searchLen); i += 1) { + var candidate = $slice(string, i, i + searchLen); + if (candidate === searchValue) { + return i; + } + } + return -1; +}; diff --git a/node_modules/es-abstract/2024/StringPad.js b/node_modules/es-abstract/2024/StringPad.js new file mode 100644 index 0000000000000000000000000000000000000000..3a317469d67a9eb39e22ff4f839024623aaa87c0 --- /dev/null +++ b/node_modules/es-abstract/2024/StringPad.js @@ -0,0 +1,43 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $strSlice = callBound('String.prototype.slice'); + +// https://262.ecma-international.org/15.0/#sec-stringpad + +module.exports = function StringPad(S, maxLength, fillString, placement) { + if (typeof S !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + if (!isInteger(maxLength) || maxLength < 0) { + throw new $TypeError('Assertion failed: `maxLength` must be a non-negative integer'); + } + if (typeof fillString !== 'string') { + throw new $TypeError('Assertion failed: `fillString` must be a String'); + } + if (placement !== 'start' && placement !== 'end' && placement !== 'START' && placement !== 'END') { + throw new $TypeError('Assertion failed: `placement` must be ~START~ or ~END~'); + } + + var stringLength = S.length; // step 1 + + if (maxLength <= stringLength) { return S; } // step 2 + + if (fillString === '') { return S; } // step 3 + + var fillLen = maxLength - stringLength; // step 4 + + // 5. Let _truncatedStringFiller_ be the String value consisting of repeated concatenations of _fillString_ truncated to length _fillLen_. + var truncatedStringFiller = ''; + while (truncatedStringFiller.length < fillLen) { + truncatedStringFiller += fillString; + } + truncatedStringFiller = $strSlice(truncatedStringFiller, 0, fillLen); + + if (placement === 'start' || placement === 'START') { return truncatedStringFiller + S; } // step 6 + + return S + truncatedStringFiller; // step 7 +}; diff --git a/node_modules/es-abstract/2024/StringPaddingBuiltinsImpl.js b/node_modules/es-abstract/2024/StringPaddingBuiltinsImpl.js new file mode 100644 index 0000000000000000000000000000000000000000..bfd84ca4d12ff773636291485e6595fafbd13d61 --- /dev/null +++ b/node_modules/es-abstract/2024/StringPaddingBuiltinsImpl.js @@ -0,0 +1,27 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var StringPad = require('./StringPad'); +var ToLength = require('./ToLength'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/15.0/#sec-stringpaddingbuiltinsimpl + +module.exports = function StringPaddingBuiltinsImpl(O, maxLength, fillString, placement) { + if (placement !== 'start' && placement !== 'end' && placement !== 'START' && placement !== 'END') { + throw new $TypeError('Assertion failed: `placement` must be ~START~ or ~END~'); + } + + var S = ToString(O); // step 1 + + var intMaxLength = ToLength(maxLength); // step 2 + + var stringLength = S.length; // step 3 + + if (intMaxLength <= stringLength) { return S; } // step 4 + + var filler = typeof fillString === 'undefined' ? ' ' : ToString(fillString); // steps 5-6 + + return StringPad(S, intMaxLength, filler, placement); // step 7 +}; diff --git a/node_modules/es-abstract/2024/StringToBigInt.js b/node_modules/es-abstract/2024/StringToBigInt.js new file mode 100644 index 0000000000000000000000000000000000000000..1cf9856a24538efe8dbefd9374da40dacebcd008 --- /dev/null +++ b/node_modules/es-abstract/2024/StringToBigInt.js @@ -0,0 +1,23 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $TypeError = require('es-errors/type'); +var $SyntaxError = require('es-errors/syntax'); + +// https://262.ecma-international.org/14.0/#sec-stringtobigint + +module.exports = function StringToBigInt(argument) { + if (typeof argument !== 'string') { + throw new $TypeError('`argument` must be a string'); + } + if (!$BigInt) { + throw new $SyntaxError('BigInts are not supported in this environment'); + } + try { + return $BigInt(argument); + } catch (e) { + return void undefined; + } +}; diff --git a/node_modules/es-abstract/2024/StringToCodePoints.js b/node_modules/es-abstract/2024/StringToCodePoints.js new file mode 100644 index 0000000000000000000000000000000000000000..9a104c41ac2fb5b9d3181d23172df9430c7a3827 --- /dev/null +++ b/node_modules/es-abstract/2024/StringToCodePoints.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CodePointAt = require('./CodePointAt'); + +// https://262.ecma-international.org/12.0/#sec-stringtocodepoints + +module.exports = function StringToCodePoints(string) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + var codePoints = []; + var size = string.length; + var position = 0; + while (position < size) { + var cp = CodePointAt(string, position); + codePoints[codePoints.length] = cp['[[CodePoint]]']; + position += cp['[[CodeUnitCount]]']; + } + return codePoints; +}; diff --git a/node_modules/es-abstract/2024/StringToNumber.js b/node_modules/es-abstract/2024/StringToNumber.js new file mode 100644 index 0000000000000000000000000000000000000000..e9b4a8b3368ac9f42ea786e90828a27733c259cd --- /dev/null +++ b/node_modules/es-abstract/2024/StringToNumber.js @@ -0,0 +1,42 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $RegExp = GetIntrinsic('%RegExp%'); +var $TypeError = require('es-errors/type'); +var $parseInteger = GetIntrinsic('%parseInt%'); + +var callBound = require('call-bound'); +var regexTester = require('safe-regex-test'); + +var $strSlice = callBound('String.prototype.slice'); +var isBinary = regexTester(/^0b[01]+$/i); +var isOctal = regexTester(/^0o[0-7]+$/i); +var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); +var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); +var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); +var hasNonWS = regexTester(nonWSregex); + +var $trim = require('string.prototype.trim'); + +// https://262.ecma-international.org/13.0/#sec-stringtonumber + +module.exports = function StringToNumber(argument) { + if (typeof argument !== 'string') { + throw new $TypeError('Assertion failed: `argument` is not a String'); + } + if (isBinary(argument)) { + return +$parseInteger($strSlice(argument, 2), 2); + } + if (isOctal(argument)) { + return +$parseInteger($strSlice(argument, 2), 8); + } + if (hasNonWS(argument) || isInvalidHexLiteral(argument)) { + return NaN; + } + var trimmed = $trim(argument); + if (trimmed !== argument) { + return StringToNumber(trimmed); + } + return +argument; +}; diff --git a/node_modules/es-abstract/2024/SymbolDescriptiveString.js b/node_modules/es-abstract/2024/SymbolDescriptiveString.js new file mode 100644 index 0000000000000000000000000000000000000000..444e3f70004626a3053f672a290e5e81b0f5cf51 --- /dev/null +++ b/node_modules/es-abstract/2024/SymbolDescriptiveString.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +var $SymbolToString = callBound('Symbol.prototype.toString', true); + +// https://262.ecma-international.org/6.0/#sec-symboldescriptivestring + +module.exports = function SymbolDescriptiveString(sym) { + if (typeof sym !== 'symbol') { + throw new $TypeError('Assertion failed: `sym` must be a Symbol'); + } + return $SymbolToString(sym); +}; diff --git a/node_modules/es-abstract/2024/SystemTimeZoneIdentifier.js b/node_modules/es-abstract/2024/SystemTimeZoneIdentifier.js new file mode 100644 index 0000000000000000000000000000000000000000..c2f366be30a39890932b18d72d7d48a59cd3aa42 --- /dev/null +++ b/node_modules/es-abstract/2024/SystemTimeZoneIdentifier.js @@ -0,0 +1,18 @@ +'use strict'; + +var callBind = require('call-bind'); + +var I402 = typeof Intl === 'undefined' ? null : Intl; +var DateTimeFormat = !!I402 && I402.DateTimeFormat; +var resolvedOptions = !!DateTimeFormat && callBind(DateTimeFormat.prototype.resolvedOptions); + +// https://262.ecma-international.org/15.0/#sec-systemtimezoneidentifier + +module.exports = function SystemTimeZoneIdentifier() { + if (DateTimeFormat && resolvedOptions) { + return resolvedOptions(new DateTimeFormat()).timeZone; // steps 2 - 3 + + } + + return 'UTC'; // step 1 +}; diff --git a/node_modules/es-abstract/2024/TestIntegrityLevel.js b/node_modules/es-abstract/2024/TestIntegrityLevel.js new file mode 100644 index 0000000000000000000000000000000000000000..0e802f42786f89bac378b6a58e6009c9620be721 --- /dev/null +++ b/node_modules/es-abstract/2024/TestIntegrityLevel.js @@ -0,0 +1,40 @@ +'use strict'; + +var $gOPD = require('gopd'); +var $TypeError = require('es-errors/type'); + +var every = require('../helpers/every'); +var OwnPropertyKeys = require('own-keys'); +var isObject = require('es-object-atoms/isObject'); + +var IsDataDescriptor = require('./IsDataDescriptor'); +var IsExtensible = require('./IsExtensible'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-testintegritylevel + +module.exports = function TestIntegrityLevel(O, level) { + if (!isObject(O)) { + 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"`'); + } + var status = IsExtensible(O); + if (status || !$gOPD) { + return false; + } + var theKeys = OwnPropertyKeys(O); + return theKeys.length === 0 || every(theKeys, function (k) { + var currentDesc = $gOPD(O, k); + if (typeof currentDesc !== 'undefined') { + if (currentDesc.configurable) { + return false; + } + if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { + return false; + } + } + return true; + }); +}; diff --git a/node_modules/es-abstract/2024/ThisBigIntValue.js b/node_modules/es-abstract/2024/ThisBigIntValue.js new file mode 100644 index 0000000000000000000000000000000000000000..caf8989bcd0557ba533fb3954393ae940a7b0917 --- /dev/null +++ b/node_modules/es-abstract/2024/ThisBigIntValue.js @@ -0,0 +1,20 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $SyntaxError = require('es-errors/syntax'); +var $bigIntValueOf = callBound('BigInt.prototype.valueOf', true); + +// https://262.ecma-international.org/15.0/#sec-thisbigintvalue + +module.exports = function ThisBigIntValue(value) { + if (typeof value === 'bigint') { + return value; + } + + if (!$bigIntValueOf) { + throw new $SyntaxError('BigInt is not supported'); + } + + return $bigIntValueOf(value); +}; diff --git a/node_modules/es-abstract/2024/ThisBooleanValue.js b/node_modules/es-abstract/2024/ThisBooleanValue.js new file mode 100644 index 0000000000000000000000000000000000000000..ae592bb10be81147bf69e136838d315349e6aeac --- /dev/null +++ b/node_modules/es-abstract/2024/ThisBooleanValue.js @@ -0,0 +1,13 @@ +'use strict'; + +var $BooleanValueOf = require('call-bound')('Boolean.prototype.valueOf'); + +// https://262.ecma-international.org/15.0/#sec-properties-of-the-boolean-prototype-object + +module.exports = function ThisBooleanValue(value) { + if (typeof value === 'boolean') { + return value; + } + + return $BooleanValueOf(value); +}; diff --git a/node_modules/es-abstract/2024/ThisNumberValue.js b/node_modules/es-abstract/2024/ThisNumberValue.js new file mode 100644 index 0000000000000000000000000000000000000000..f3da1422f0b0acd47844b1444722f221fdd87562 --- /dev/null +++ b/node_modules/es-abstract/2024/ThisNumberValue.js @@ -0,0 +1,15 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $NumberValueOf = callBound('Number.prototype.valueOf'); + +// https://262.ecma-international.org/15.0/#sec-thisnumbervalue + +module.exports = function ThisNumberValue(value) { + if (typeof value === 'number') { + return value; + } + + return $NumberValueOf(value); +}; diff --git a/node_modules/es-abstract/2024/ThisStringValue.js b/node_modules/es-abstract/2024/ThisStringValue.js new file mode 100644 index 0000000000000000000000000000000000000000..cfe618d764bda27107aeb52118faaefcd71bc20c --- /dev/null +++ b/node_modules/es-abstract/2024/ThisStringValue.js @@ -0,0 +1,13 @@ +'use strict'; + +var $StringValueOf = require('call-bound')('String.prototype.valueOf'); + +// https://262.ecma-international.org/15.0/#sec-properties-of-the-string-prototype-object + +module.exports = function ThisStringValue(value) { + if (typeof value === 'string') { + return value; + } + + return $StringValueOf(value); +}; diff --git a/node_modules/es-abstract/2024/ThisSymbolValue.js b/node_modules/es-abstract/2024/ThisSymbolValue.js new file mode 100644 index 0000000000000000000000000000000000000000..0cf6e0ed7ce7499169fa16302c592a86e2ed632f --- /dev/null +++ b/node_modules/es-abstract/2024/ThisSymbolValue.js @@ -0,0 +1,20 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var callBound = require('call-bound'); + +var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true); + +// https://262.ecma-international.org/15.0/#sec-thissymbolvalue + +module.exports = function ThisSymbolValue(value) { + if (typeof value === 'symbol') { + return value; + } + + if (!$SymbolValueOf) { + throw new $SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object'); + } + + return $SymbolValueOf(value); +}; diff --git a/node_modules/es-abstract/2024/ThrowCompletion.js b/node_modules/es-abstract/2024/ThrowCompletion.js new file mode 100644 index 0000000000000000000000000000000000000000..b7d388a35292e2a9faf88d4808b74e2c4878bbe7 --- /dev/null +++ b/node_modules/es-abstract/2024/ThrowCompletion.js @@ -0,0 +1,9 @@ +'use strict'; + +var CompletionRecord = require('./CompletionRecord'); + +// https://262.ecma-international.org/9.0/#sec-throwcompletion + +module.exports = function ThrowCompletion(argument) { + return new CompletionRecord('throw', argument); +}; diff --git a/node_modules/es-abstract/2024/TimeClip.js b/node_modules/es-abstract/2024/TimeClip.js new file mode 100644 index 0000000000000000000000000000000000000000..77c8dd4226c4765855024b1784b842f869fa5bfe --- /dev/null +++ b/node_modules/es-abstract/2024/TimeClip.js @@ -0,0 +1,20 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Date = GetIntrinsic('%Date%'); + +var $isFinite = require('math-intrinsics/isFinite'); +var abs = require('math-intrinsics/abs'); + +var ToNumber = require('./ToNumber'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.14 + +module.exports = function TimeClip(time) { + if (!$isFinite(time) || abs(time) > 8.64e15) { + return NaN; + } + return +new $Date(ToNumber(time)); +}; + diff --git a/node_modules/es-abstract/2024/TimeFromYear.js b/node_modules/es-abstract/2024/TimeFromYear.js new file mode 100644 index 0000000000000000000000000000000000000000..f3518a41a19146c9ba59e1362c3fb33f800daaa1 --- /dev/null +++ b/node_modules/es-abstract/2024/TimeFromYear.js @@ -0,0 +1,11 @@ +'use strict'; + +var msPerDay = require('../helpers/timeConstants').msPerDay; + +var DayFromYear = require('./DayFromYear'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.3 + +module.exports = function TimeFromYear(y) { + return msPerDay * DayFromYear(y); +}; diff --git a/node_modules/es-abstract/2024/TimeString.js b/node_modules/es-abstract/2024/TimeString.js new file mode 100644 index 0000000000000000000000000000000000000000..4cc6c6acdc23bda39dc6fe862f23aa35dcfbfb6b --- /dev/null +++ b/node_modules/es-abstract/2024/TimeString.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var $isNaN = require('math-intrinsics/isNaN'); + +var HourFromTime = require('./HourFromTime'); +var MinFromTime = require('./MinFromTime'); +var SecFromTime = require('./SecFromTime'); +var ToZeroPaddedDecimalString = require('./ToZeroPaddedDecimalString'); + +// https://262.ecma-international.org/13.0/#sec-timestring + +module.exports = function TimeString(tv) { + if (typeof tv !== 'number' || $isNaN(tv)) { + throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); + } + + var hour = ToZeroPaddedDecimalString(HourFromTime(tv), 2); // step 1 + + var minute = ToZeroPaddedDecimalString(MinFromTime(tv), 2); // step 2 + + var second = ToZeroPaddedDecimalString(SecFromTime(tv), 2); // step 3 + + return hour + ':' + minute + ':' + second + ' GMT'; // step 4 +}; diff --git a/node_modules/es-abstract/2024/TimeWithinDay.js b/node_modules/es-abstract/2024/TimeWithinDay.js new file mode 100644 index 0000000000000000000000000000000000000000..2bba83386c141873d3b603ed19d0f37069d1016a --- /dev/null +++ b/node_modules/es-abstract/2024/TimeWithinDay.js @@ -0,0 +1,12 @@ +'use strict'; + +var modulo = require('./modulo'); + +var msPerDay = require('../helpers/timeConstants').msPerDay; + +// https://262.ecma-international.org/5.1/#sec-15.9.1.2 + +module.exports = function TimeWithinDay(t) { + return modulo(t, msPerDay); +}; + diff --git a/node_modules/es-abstract/2024/TimeZoneString.js b/node_modules/es-abstract/2024/TimeZoneString.js new file mode 100644 index 0000000000000000000000000000000000000000..2333632760e7bfab41881dbadb4de71f53148431 --- /dev/null +++ b/node_modules/es-abstract/2024/TimeZoneString.js @@ -0,0 +1,41 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Date = GetIntrinsic('%Date%'); +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $indexOf = callBound('String.prototype.indexOf'); +var $slice = callBound('String.prototype.slice'); +var $toTimeString = callBound('Date.prototype.toTimeString'); + +// https://262.ecma-international.org/14.0/#sec-timezoneestring + +module.exports = function TimeZoneString(tv) { + if (!isInteger(tv)) { + throw new $TypeError('Assertion failed: `tv` must be an integral Number'); + } + + // 1. Let localTimeZone be DefaultTimeZone(). + // 2. If IsTimeZoneOffsetString(localTimeZone) is true, then + // a. Let offsetNs be ParseTimeZoneOffsetString(localTimeZone). + // 3. Else, + // a. Let offsetNs be GetNamedTimeZoneOffsetNanoseconds(localTimeZone, ℤ(ℝ(tv) × 106)). + // 4. Let offset be 𝔽(truncate(offsetNs / 106)). + // 5. If offset is +0𝔽 or offset > +0𝔽, then + // a. Let offsetSign be "+". + // b. Let absOffset be offset. + // 6. Else, + // a. Let offsetSign be "-". + // b. Let absOffset be -offset. + // 7. Let offsetMin be ToZeroPaddedDecimalString(ℝ(MinFromTime(absOffset)), 2). + // 8. Let offsetHour be ToZeroPaddedDecimalString(ℝ(HourFromTime(absOffset)), 2). + // 9. Let tzName be an implementation-defined string that is either the empty String or the string-concatenation of the code unit 0x0020 (SPACE), the code unit 0x0028 (LEFT PARENTHESIS), an implementation-defined timezone name, and the code unit 0x0029 (RIGHT PARENTHESIS). + // 10. Return the string-concatenation of offsetSign, offsetHour, offsetMin, and tzName. + + // hack until DefaultTimeZone, IsTimeZoneOffsetString, ParseTimeZoneOffsetString, GetNamedTimeZoneOffsetNanoseconds, and "implementation-defined string" are available + var ts = $toTimeString(new $Date(tv)); + return $slice(ts, $indexOf(ts, '(') + 1, $indexOf(ts, ')')); +}; diff --git a/node_modules/es-abstract/2024/ToBigInt.js b/node_modules/es-abstract/2024/ToBigInt.js new file mode 100644 index 0000000000000000000000000000000000000000..d6638104de25470c4bbc8a8102c8cd35617eebb6 --- /dev/null +++ b/node_modules/es-abstract/2024/ToBigInt.js @@ -0,0 +1,51 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $Number = GetIntrinsic('%Number%'); +var $TypeError = require('es-errors/type'); +var $SyntaxError = require('es-errors/syntax'); + +var StringToBigInt = require('./StringToBigInt'); +var ToPrimitive = require('./ToPrimitive'); + +// https://262.ecma-international.org/13.0/#sec-tobigint + +module.exports = function ToBigInt(argument) { + if (!$BigInt) { + throw new $SyntaxError('BigInts are not supported in this environment'); + } + + var prim = ToPrimitive(argument, $Number); + + if (prim == null) { + throw new $TypeError('Cannot convert null or undefined to a BigInt'); + } + + if (typeof prim === 'boolean') { + return prim ? $BigInt(1) : $BigInt(0); + } + + if (typeof prim === 'number') { + throw new $TypeError('Cannot convert a Number value to a BigInt'); + } + + if (typeof prim === 'string') { + var n = StringToBigInt(prim); + if (typeof n === 'undefined') { + throw new $TypeError('Failed to parse String to BigInt'); + } + return n; + } + + if (typeof prim === 'symbol') { + throw new $TypeError('Cannot convert a Symbol value to a BigInt'); + } + + if (typeof prim !== 'bigint') { + throw new $SyntaxError('Assertion failed: unknown primitive type'); + } + + return prim; +}; diff --git a/node_modules/es-abstract/2024/ToBigInt64.js b/node_modules/es-abstract/2024/ToBigInt64.js new file mode 100644 index 0000000000000000000000000000000000000000..627acba3d06e0e6d1e8b0b91088efbc7d6d42b0a --- /dev/null +++ b/node_modules/es-abstract/2024/ToBigInt64.js @@ -0,0 +1,25 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $pow = require('math-intrinsics/pow'); + +var ToBigInt = require('./ToBigInt'); +var BigIntRemainder = require('./BigInt/remainder'); + +var modBigInt = require('../helpers/modBigInt'); + +// BigInt(2**63), but node v10.4-v10.8 have a bug where you can't `BigInt(x)` anything larger than MAX_SAFE_INTEGER +var twoSixtyThree = $BigInt && (BigInt($pow(2, 32)) * BigInt($pow(2, 31))); + +// BigInt(2**64), but node v10.4-v10.8 have a bug where you can't `BigInt(x)` anything larger than MAX_SAFE_INTEGER +var twoSixtyFour = $BigInt && (BigInt($pow(2, 32)) * BigInt($pow(2, 32))); + +// https://262.ecma-international.org/11.0/#sec-tobigint64 + +module.exports = function ToBigInt64(argument) { + var n = ToBigInt(argument); + var int64bit = modBigInt(BigIntRemainder, n, twoSixtyFour); + return int64bit >= twoSixtyThree ? int64bit - twoSixtyFour : int64bit; +}; diff --git a/node_modules/es-abstract/2024/ToBigUint64.js b/node_modules/es-abstract/2024/ToBigUint64.js new file mode 100644 index 0000000000000000000000000000000000000000..f4038dc7bcaceb9b24157f6e6bcdfa286138f785 --- /dev/null +++ b/node_modules/es-abstract/2024/ToBigUint64.js @@ -0,0 +1,23 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); + +var $pow = require('math-intrinsics/pow'); + +var ToBigInt = require('./ToBigInt'); +var BigIntRemainder = require('./BigInt/remainder'); + +var modBigInt = require('../helpers/modBigInt'); + +// BigInt(2**64), but node v10.4-v10.8 have a bug where you can't `BigInt(x)` anything larger than MAX_SAFE_INTEGER +var twoSixtyFour = $BigInt && (BigInt($pow(2, 32)) * BigInt($pow(2, 32))); + +// https://262.ecma-international.org/11.0/#sec-tobiguint64 + +module.exports = function ToBigUint64(argument) { + var n = ToBigInt(argument); + var int64bit = modBigInt(BigIntRemainder, n, twoSixtyFour); + return int64bit; +}; diff --git a/node_modules/es-abstract/2024/ToBoolean.js b/node_modules/es-abstract/2024/ToBoolean.js new file mode 100644 index 0000000000000000000000000000000000000000..466404bf9992f0ba636249264c620d6c56215d6a --- /dev/null +++ b/node_modules/es-abstract/2024/ToBoolean.js @@ -0,0 +1,5 @@ +'use strict'; + +// http://262.ecma-international.org/5.1/#sec-9.2 + +module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/es-abstract/2024/ToDateString.js b/node_modules/es-abstract/2024/ToDateString.js new file mode 100644 index 0000000000000000000000000000000000000000..d9bb434185ca0adfa055d91bf592efdce3ed1d94 --- /dev/null +++ b/node_modules/es-abstract/2024/ToDateString.js @@ -0,0 +1,21 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $Date = GetIntrinsic('%Date%'); +var $String = GetIntrinsic('%String%'); + +var $isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/6.0/#sec-todatestring + +module.exports = function ToDateString(tv) { + if (typeof tv !== 'number') { + throw new $TypeError('Assertion failed: `tv` must be a Number'); + } + if ($isNaN(tv)) { + return 'Invalid Date'; + } + return $String(new $Date(tv)); +}; diff --git a/node_modules/es-abstract/2024/ToIndex.js b/node_modules/es-abstract/2024/ToIndex.js new file mode 100644 index 0000000000000000000000000000000000000000..0bd5ba24abec4f8863da452e6715f1abdb28f7ed --- /dev/null +++ b/node_modules/es-abstract/2024/ToIndex.js @@ -0,0 +1,20 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); + +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); + +var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger'); + +// https://262.ecma-international.org/15.0/#sec-toindex + +module.exports = function ToIndex(value) { + if (typeof value === 'undefined') { + return 0; + } + var integer = ToIntegerOrInfinity(value); + if (integer < 0 || integer >= MAX_SAFE_INTEGER) { + throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1'); + } + return integer; +}; diff --git a/node_modules/es-abstract/2024/ToInt16.js b/node_modules/es-abstract/2024/ToInt16.js new file mode 100644 index 0000000000000000000000000000000000000000..84440f91783cef9a41c10cbf7cd4249049161c1f --- /dev/null +++ b/node_modules/es-abstract/2024/ToInt16.js @@ -0,0 +1,21 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-toint16 + +var two16 = 0x10000; // Math.pow(2, 16); + +module.exports = function ToInt16(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int16bit = modulo(int, two16); + return int16bit >= 0x8000 ? int16bit - two16 : int16bit; +}; diff --git a/node_modules/es-abstract/2024/ToInt32.js b/node_modules/es-abstract/2024/ToInt32.js new file mode 100644 index 0000000000000000000000000000000000000000..f1317fb70bcf7c53e4c4c11d5a94e348d8171d8c --- /dev/null +++ b/node_modules/es-abstract/2024/ToInt32.js @@ -0,0 +1,23 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-toint32 + +var two31 = 0x80000000; // Math.pow(2, 31); +var two32 = 0x100000000; // Math.pow(2, 32); + +module.exports = function ToInt32(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int32bit = modulo(int, two32); + var result = int32bit >= two31 ? int32bit - two32 : int32bit; + return result === 0 ? 0 : result; // in the spec, these are math values, so we filter out -0 here +}; diff --git a/node_modules/es-abstract/2024/ToInt8.js b/node_modules/es-abstract/2024/ToInt8.js new file mode 100644 index 0000000000000000000000000000000000000000..c2bd91fa022ae1604ec87d037d4f28718a67da49 --- /dev/null +++ b/node_modules/es-abstract/2024/ToInt8.js @@ -0,0 +1,19 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-toint8 + +module.exports = function ToInt8(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int8bit = modulo(int, 0x100); + return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; +}; diff --git a/node_modules/es-abstract/2024/ToIntegerOrInfinity.js b/node_modules/es-abstract/2024/ToIntegerOrInfinity.js new file mode 100644 index 0000000000000000000000000000000000000000..425feed5421d76b210a013080d2fedb88cc4d662 --- /dev/null +++ b/node_modules/es-abstract/2024/ToIntegerOrInfinity.js @@ -0,0 +1,16 @@ +'use strict'; + +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var $isNaN = require('math-intrinsics/isNaN'); +var $isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-tointegerorinfinity + +module.exports = function ToIntegerOrInfinity(value) { + var number = ToNumber(value); + if ($isNaN(number) || number === 0) { return 0; } + if (!$isFinite(number)) { return number; } + return truncate(number); +}; diff --git a/node_modules/es-abstract/2024/ToLength.js b/node_modules/es-abstract/2024/ToLength.js new file mode 100644 index 0000000000000000000000000000000000000000..12c9aac8680d49bfe8591a9a5a4a645d6ca9d18e --- /dev/null +++ b/node_modules/es-abstract/2024/ToLength.js @@ -0,0 +1,14 @@ +'use strict'; + +var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger'); + +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); + +// https://262.ecma-international.org/12.0/#sec-tolength + +module.exports = function ToLength(argument) { + var len = ToIntegerOrInfinity(argument); + if (len <= 0) { return 0; } // includes converting -0 to +0 + if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } + return len; +}; diff --git a/node_modules/es-abstract/2024/ToNumber.js b/node_modules/es-abstract/2024/ToNumber.js new file mode 100644 index 0000000000000000000000000000000000000000..2e7dc51676b6f2dcbaead28a8b7b6a2abcb1685e --- /dev/null +++ b/node_modules/es-abstract/2024/ToNumber.js @@ -0,0 +1,26 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $Number = GetIntrinsic('%Number%'); +var isPrimitive = require('../helpers/isPrimitive'); + +var ToPrimitive = require('./ToPrimitive'); +var StringToNumber = require('./StringToNumber'); + +// https://262.ecma-international.org/13.0/#sec-tonumber + +module.exports = function ToNumber(argument) { + var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); + if (typeof value === 'symbol') { + throw new $TypeError('Cannot convert a Symbol value to a number'); + } + if (typeof value === 'bigint') { + throw new $TypeError('Conversion from \'BigInt\' to \'number\' is not allowed.'); + } + if (typeof value === 'string') { + return StringToNumber(value); + } + return +value; +}; diff --git a/node_modules/es-abstract/2024/ToNumeric.js b/node_modules/es-abstract/2024/ToNumeric.js new file mode 100644 index 0000000000000000000000000000000000000000..00a436dc0848803af47df54584e7d851dfe1b4a0 --- /dev/null +++ b/node_modules/es-abstract/2024/ToNumeric.js @@ -0,0 +1,20 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Number = GetIntrinsic('%Number%'); + +var isPrimitive = require('../helpers/isPrimitive'); + +var ToPrimitive = require('./ToPrimitive'); +var ToNumber = require('./ToNumber'); + +// https://262.ecma-international.org/11.0/#sec-tonumeric + +module.exports = function ToNumeric(argument) { + var primValue = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); + if (typeof primValue === 'bigint') { + return primValue; + } + return ToNumber(primValue); +}; diff --git a/node_modules/es-abstract/2024/ToObject.js b/node_modules/es-abstract/2024/ToObject.js new file mode 100644 index 0000000000000000000000000000000000000000..70226aaa331e7fd7aa487e680d4aca6bb6874f5b --- /dev/null +++ b/node_modules/es-abstract/2024/ToObject.js @@ -0,0 +1,5 @@ +'use strict'; + +// https://262.ecma-international.org/6.0/#sec-toobject + +module.exports = require('es-object-atoms/ToObject'); diff --git a/node_modules/es-abstract/2024/ToPrimitive.js b/node_modules/es-abstract/2024/ToPrimitive.js new file mode 100644 index 0000000000000000000000000000000000000000..56bcf1aa9eb269d753119497686556384800b092 --- /dev/null +++ b/node_modules/es-abstract/2024/ToPrimitive.js @@ -0,0 +1,12 @@ +'use strict'; + +var toPrimitive = require('es-to-primitive/es2015'); + +// https://262.ecma-international.org/6.0/#sec-toprimitive + +module.exports = function ToPrimitive(input) { + if (arguments.length > 1) { + return toPrimitive(input, arguments[1]); + } + return toPrimitive(input); +}; diff --git a/node_modules/es-abstract/2024/ToPropertyDescriptor.js b/node_modules/es-abstract/2024/ToPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..017350d593b202573a928ccefeacc7472c803a5e --- /dev/null +++ b/node_modules/es-abstract/2024/ToPropertyDescriptor.js @@ -0,0 +1,50 @@ +'use strict'; + +var hasOwn = require('hasown'); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var IsCallable = require('./IsCallable'); +var ToBoolean = require('./ToBoolean'); + +// https://262.ecma-international.org/5.1/#sec-8.10.5 + +module.exports = function ToPropertyDescriptor(Obj) { + if (!isObject(Obj)) { + throw new $TypeError('ToPropertyDescriptor requires an object'); + } + + var desc = {}; + if (hasOwn(Obj, 'enumerable')) { + desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); + } + if (hasOwn(Obj, 'configurable')) { + desc['[[Configurable]]'] = ToBoolean(Obj.configurable); + } + if (hasOwn(Obj, 'value')) { + desc['[[Value]]'] = Obj.value; + } + if (hasOwn(Obj, 'writable')) { + desc['[[Writable]]'] = ToBoolean(Obj.writable); + } + if (hasOwn(Obj, 'get')) { + var getter = Obj.get; + if (typeof getter !== 'undefined' && !IsCallable(getter)) { + throw new $TypeError('getter must be a function'); + } + desc['[[Get]]'] = getter; + } + if (hasOwn(Obj, 'set')) { + var setter = Obj.set; + if (typeof setter !== 'undefined' && !IsCallable(setter)) { + throw new $TypeError('setter must be a function'); + } + desc['[[Set]]'] = setter; + } + + if ((hasOwn(desc, '[[Get]]') || hasOwn(desc, '[[Set]]')) && (hasOwn(desc, '[[Value]]') || hasOwn(desc, '[[Writable]]'))) { + throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); + } + return desc; +}; diff --git a/node_modules/es-abstract/2024/ToPropertyKey.js b/node_modules/es-abstract/2024/ToPropertyKey.js new file mode 100644 index 0000000000000000000000000000000000000000..e363cd93b1722ddcff99896fb5667079bb95c932 --- /dev/null +++ b/node_modules/es-abstract/2024/ToPropertyKey.js @@ -0,0 +1,15 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $String = GetIntrinsic('%String%'); + +var ToPrimitive = require('./ToPrimitive'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/6.0/#sec-topropertykey + +module.exports = function ToPropertyKey(argument) { + var key = ToPrimitive(argument, $String); + return typeof key === 'symbol' ? key : ToString(key); +}; diff --git a/node_modules/es-abstract/2024/ToString.js b/node_modules/es-abstract/2024/ToString.js new file mode 100644 index 0000000000000000000000000000000000000000..16b4ccf893640ee9162ff07ad484038311e6210d --- /dev/null +++ b/node_modules/es-abstract/2024/ToString.js @@ -0,0 +1,15 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $String = GetIntrinsic('%String%'); +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/6.0/#sec-tostring + +module.exports = function ToString(argument) { + if (typeof argument === 'symbol') { + throw new $TypeError('Cannot convert a Symbol value to a string'); + } + return $String(argument); +}; diff --git a/node_modules/es-abstract/2024/ToUint16.js b/node_modules/es-abstract/2024/ToUint16.js new file mode 100644 index 0000000000000000000000000000000000000000..9e09a6c5986f42aa89de68ec64eddff522e57024 --- /dev/null +++ b/node_modules/es-abstract/2024/ToUint16.js @@ -0,0 +1,21 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-touint16 + +var two16 = 0x10000; // Math.pow(2, 16) + +module.exports = function ToUint16(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int16bit = modulo(int, two16); + return int16bit === 0 ? 0 : int16bit; // in the spec, these are math values, so we filter out -0 here +}; diff --git a/node_modules/es-abstract/2024/ToUint32.js b/node_modules/es-abstract/2024/ToUint32.js new file mode 100644 index 0000000000000000000000000000000000000000..98f7c7fb676eb8dd37dcc7e76bf5966765e32d08 --- /dev/null +++ b/node_modules/es-abstract/2024/ToUint32.js @@ -0,0 +1,21 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-touint32 + +var two32 = 0x100000000; // Math.pow(2, 32); + +module.exports = function ToUint32(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int32bit = modulo(int, two32); + return int32bit === 0 ? 0 : int32bit; // in the spec, these are math values, so we filter out -0 here +}; diff --git a/node_modules/es-abstract/2024/ToUint8.js b/node_modules/es-abstract/2024/ToUint8.js new file mode 100644 index 0000000000000000000000000000000000000000..991af3667ca7ce7cdae085c398f581b7ae641390 --- /dev/null +++ b/node_modules/es-abstract/2024/ToUint8.js @@ -0,0 +1,19 @@ +'use strict'; + +var isFinite = require('math-intrinsics/isFinite'); + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +// https://262.ecma-international.org/14.0/#sec-touint8 + +module.exports = function ToUint8(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int8bit = modulo(int, 0x100); + return int8bit; +}; diff --git a/node_modules/es-abstract/2024/ToUint8Clamp.js b/node_modules/es-abstract/2024/ToUint8Clamp.js new file mode 100644 index 0000000000000000000000000000000000000000..d7132d9d733b0c5fd1b8d324d033fab694f44d44 --- /dev/null +++ b/node_modules/es-abstract/2024/ToUint8Clamp.js @@ -0,0 +1,26 @@ +'use strict'; + +var clamp = require('./clamp'); + +var ToNumber = require('./ToNumber'); +var floor = require('./floor'); + +var $isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/15.0/#sec-touint8clamp + +module.exports = function ToUint8Clamp(argument) { + var number = ToNumber(argument); // step 1 + + if ($isNaN(number)) { return 0; } // step 2 + + var clamped = clamp(number, 0, 255); // step 4 + + var f = floor(clamped); // step 5 + + if (clamped < (f + 0.5)) { return f; } // step 6 + + if (clamped > (f + 0.5)) { return f + 1; } // step 7 + + return f % 2 === 0 ? f : f + 1; // step 8 +}; diff --git a/node_modules/es-abstract/2024/ToZeroPaddedDecimalString.js b/node_modules/es-abstract/2024/ToZeroPaddedDecimalString.js new file mode 100644 index 0000000000000000000000000000000000000000..899863782f720219d850860c324f360d729f2fd3 --- /dev/null +++ b/node_modules/es-abstract/2024/ToZeroPaddedDecimalString.js @@ -0,0 +1,19 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $String = GetIntrinsic('%String%'); +var $RangeError = require('es-errors/range'); +var isInteger = require('math-intrinsics/isInteger'); + +var StringPad = require('./StringPad'); + +// https://262.ecma-international.org/13.0/#sec-tozeropaddeddecimalstring + +module.exports = function ToZeroPaddedDecimalString(n, minLength) { + if (!isInteger(n) || n < 0) { + throw new $RangeError('Assertion failed: `q` must be a non-negative integer'); + } + var S = $String(n); + return StringPad(S, minLength, '0', 'start'); +}; diff --git a/node_modules/es-abstract/2024/TrimString.js b/node_modules/es-abstract/2024/TrimString.js new file mode 100644 index 0000000000000000000000000000000000000000..516ef254819cc6b4d11788176a2e90b7ca18b7e4 --- /dev/null +++ b/node_modules/es-abstract/2024/TrimString.js @@ -0,0 +1,27 @@ +'use strict'; + +var trimStart = require('string.prototype.trimstart'); +var trimEnd = require('string.prototype.trimend'); + +var $TypeError = require('es-errors/type'); + +var RequireObjectCoercible = require('./RequireObjectCoercible'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/10.0/#sec-trimstring + +module.exports = function TrimString(string, where) { + var str = RequireObjectCoercible(string); + var S = ToString(str); + var T; + if (where === 'start') { + T = trimStart(S); + } else if (where === 'end') { + T = trimEnd(S); + } else if (where === 'start+end') { + T = trimStart(trimEnd(S)); + } else { + throw new $TypeError('Assertion failed: invalid `where` value; must be "start", "end", or "start+end"'); + } + return T; +}; diff --git a/node_modules/es-abstract/2024/Type.js b/node_modules/es-abstract/2024/Type.js new file mode 100644 index 0000000000000000000000000000000000000000..555ca74ea51969958716accd635da40009319542 --- /dev/null +++ b/node_modules/es-abstract/2024/Type.js @@ -0,0 +1,15 @@ +'use strict'; + +var ES5Type = require('../5/Type'); + +// https://262.ecma-international.org/11.0/#sec-ecmascript-data-types-and-values + +module.exports = function Type(x) { + if (typeof x === 'symbol') { + return 'Symbol'; + } + if (typeof x === 'bigint') { + return 'BigInt'; + } + return ES5Type(x); +}; diff --git a/node_modules/es-abstract/2024/TypedArrayByteLength.js b/node_modules/es-abstract/2024/TypedArrayByteLength.js new file mode 100644 index 0000000000000000000000000000000000000000..703ef0ab6a47caa476d9f54d50ce01c0ccb7a39e --- /dev/null +++ b/node_modules/es-abstract/2024/TypedArrayByteLength.js @@ -0,0 +1,43 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); +var TypedArrayLength = require('./TypedArrayLength'); + +var isTypedArrayWithBufferWitnessRecord = require('../helpers/records/typed-array-with-buffer-witness-record'); + +var typedArrayByffer = require('typed-array-buffer'); +var typedArrayByteLength = require('typed-array-byte-length'); + +// https://262.ecma-international.org/15.0/#sec-typedarraybytelength + +module.exports = function TypedArrayByteLength(taRecord) { + if (!isTypedArrayWithBufferWitnessRecord(taRecord)) { + throw new $TypeError('Assertion failed: `taRecord` must be a TypedArray With Buffer Witness Record'); + } + + if (IsTypedArrayOutOfBounds(taRecord)) { + return 0; // step 1 + } + var length = TypedArrayLength(taRecord); // step 2 + + if (length === 0) { + return 0; // step 3 + } + + var O = taRecord['[[Object]]']; // step 4 + + var isFixed = IsFixedLengthArrayBuffer(typedArrayByffer(O)); + + var byteLength = isFixed ? typedArrayByteLength(O) : 'AUTO'; + if (byteLength !== 'AUTO') { + return byteLength; // step 5 + } + + var elementSize = TypedArrayElementSize(O); // step 6 + + return length * elementSize; // step 7 +}; diff --git a/node_modules/es-abstract/2024/TypedArrayCreateFromConstructor.js b/node_modules/es-abstract/2024/TypedArrayCreateFromConstructor.js new file mode 100644 index 0000000000000000000000000000000000000000..32ead21a896eb4d27d195bfe12e6ecd105908785 --- /dev/null +++ b/node_modules/es-abstract/2024/TypedArrayCreateFromConstructor.js @@ -0,0 +1,52 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var IsArray = require('./IsArray'); +var IsConstructor = require('./IsConstructor'); +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var TypedArrayLength = require('./TypedArrayLength'); +var ValidateTypedArray = require('./ValidateTypedArray'); + +var availableTypedArrays = require('available-typed-arrays')(); + +// https://262.ecma-international.org/15.0/#typedarraycreatefromconstructor + +module.exports = function TypedArrayCreateFromConstructor(constructor, argumentList) { + if (!IsConstructor(constructor)) { + throw new $TypeError('Assertion failed: `constructor` must be a constructor'); + } + if (!IsArray(argumentList)) { + throw new $TypeError('Assertion failed: `argumentList` must be a List'); + } + if (availableTypedArrays.length === 0) { + throw new $SyntaxError('Assertion failed: Typed Arrays are not supported in this environment'); + } + + // var newTypedArray = Construct(constructor, argumentList); // step 1 + var newTypedArray; + if (argumentList.length === 0) { + newTypedArray = new constructor(); + } else if (argumentList.length === 1) { + newTypedArray = new constructor(argumentList[0]); + } else if (argumentList.length === 2) { + newTypedArray = new constructor(argumentList[0], argumentList[1]); + } else { + newTypedArray = new constructor(argumentList[0], argumentList[1], argumentList[2]); + } + + var taRecord = ValidateTypedArray(newTypedArray, 'SEQ-CST'); // step 2 + + if (argumentList.length === 1 && typeof argumentList[0] === 'number') { // step 3 + if (IsTypedArrayOutOfBounds(taRecord)) { + throw new $TypeError('new Typed Array is out of bounds'); // step 3.a + } + var length = TypedArrayLength(taRecord); // step 3.b + if (length < argumentList[0]) { + throw new $TypeError('`argumentList[0]` must be <= `newTypedArray.length`'); // step 3.c + } + } + + return newTypedArray; // step 4 +}; diff --git a/node_modules/es-abstract/2024/TypedArrayCreateSameType.js b/node_modules/es-abstract/2024/TypedArrayCreateSameType.js new file mode 100644 index 0000000000000000000000000000000000000000..5c47d3d737e06f5d8c740528541889594f3a426a --- /dev/null +++ b/node_modules/es-abstract/2024/TypedArrayCreateSameType.js @@ -0,0 +1,35 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var whichTypedArray = require('which-typed-array'); +var availableTypedArrays = require('available-typed-arrays')(); + +var IsArray = require('./IsArray'); +var TypedArrayCreateFromConstructor = require('./TypedArrayCreateFromConstructor'); + +var getConstructor = require('../helpers/typedArrayConstructors'); + +// https://262.ecma-international.org/15.0/#sec-typedarray-create-same-type + +module.exports = function TypedArrayCreateSameType(exemplar, argumentList) { + if (availableTypedArrays.length === 0) { + throw new $SyntaxError('Assertion failed: Typed Arrays are not supported in this environment'); + } + + var kind = whichTypedArray(exemplar); + if (!kind) { + throw new $TypeError('Assertion failed: exemplar must be a TypedArray'); // step 1 + } + if (!IsArray(argumentList)) { + throw new $TypeError('Assertion failed: `argumentList` must be a List'); // step 1 + } + + var constructor = getConstructor(kind); // step 2 + if (typeof constructor !== 'function') { + throw new $SyntaxError('Assertion failed: `constructor` of `exemplar` (' + kind + ') must exist. Please report this!'); + } + + return TypedArrayCreateFromConstructor(constructor, argumentList); // steps 3 - 6 +}; diff --git a/node_modules/es-abstract/2024/TypedArrayElementSize.js b/node_modules/es-abstract/2024/TypedArrayElementSize.js new file mode 100644 index 0000000000000000000000000000000000000000..1885af5141b51dd024c1230408987d8bf870d98d --- /dev/null +++ b/node_modules/es-abstract/2024/TypedArrayElementSize.js @@ -0,0 +1,23 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var whichTypedArray = require('which-typed-array'); + +// https://262.ecma-international.org/13.0/#sec-typedarrayelementsize + +var tableTAO = require('./tables/typed-array-objects'); + +module.exports = function TypedArrayElementSize(O) { + var type = whichTypedArray(O); + if (!type) { + throw new $TypeError('Assertion failed: `O` must be a TypedArray'); + } + var size = tableTAO.size['$' + tableTAO.name['$' + type]]; + if (!isInteger(size) || size < 0) { + throw new $SyntaxError('Assertion failed: Unknown TypedArray type `' + type + '`'); + } + + return size; +}; diff --git a/node_modules/es-abstract/2024/TypedArrayElementType.js b/node_modules/es-abstract/2024/TypedArrayElementType.js new file mode 100644 index 0000000000000000000000000000000000000000..0e9abe6a1d3807172b157a934f20fb4e8a4dca81 --- /dev/null +++ b/node_modules/es-abstract/2024/TypedArrayElementType.js @@ -0,0 +1,23 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var whichTypedArray = require('which-typed-array'); + +// https://262.ecma-international.org/13.0/#sec-typedarrayelementtype + +var tableTAO = require('./tables/typed-array-objects'); + +module.exports = function TypedArrayElementType(O) { + var type = whichTypedArray(O); + if (!type) { + throw new $TypeError('Assertion failed: `O` must be a TypedArray'); + } + var result = tableTAO.name['$' + type]; + if (typeof result !== 'string') { + throw new $SyntaxError('Assertion failed: Unknown TypedArray type `' + type + '`'); + } + + return result; +}; diff --git a/node_modules/es-abstract/2024/TypedArrayGetElement.js b/node_modules/es-abstract/2024/TypedArrayGetElement.js new file mode 100644 index 0000000000000000000000000000000000000000..437069adba75cb9df4fa5cfc88ff09e83b986116 --- /dev/null +++ b/node_modules/es-abstract/2024/TypedArrayGetElement.js @@ -0,0 +1,37 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var GetValueFromBuffer = require('./GetValueFromBuffer'); +var IsValidIntegerIndex = require('./IsValidIntegerIndex'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); +var TypedArrayElementType = require('./TypedArrayElementType'); + +var isTypedArray = require('is-typed-array'); +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayByteOffset = require('typed-array-byte-offset'); + +// https://262.ecma-international.org/15.0/#sec-typedarraygetelement + +module.exports = function TypedArrayGetElement(O, index) { + if (!isTypedArray(O)) { + throw new $TypeError('Assertion failed: `O` must be a TypedArray instance'); + } + if (typeof index !== 'number') { + throw new $TypeError('Assertion failed: `index` must be a Number'); + } + + if (!IsValidIntegerIndex(O, index)) { + return undefined; // step 1 + } + + var offset = typedArrayByteOffset(O); // step 2 + + var elementSize = TypedArrayElementSize(O); // step 3 + + var byteIndexInBuffer = (index * elementSize) + offset; // step 4 + + var elementType = TypedArrayElementType(O); // step 5 + + return GetValueFromBuffer(typedArrayBuffer(O), byteIndexInBuffer, elementType, true, 'UNORDERED'); // step 6 +}; diff --git a/node_modules/es-abstract/2024/TypedArrayLength.js b/node_modules/es-abstract/2024/TypedArrayLength.js new file mode 100644 index 0000000000000000000000000000000000000000..30b21acd8fd813cebea1baa7aa6a55b271326195 --- /dev/null +++ b/node_modules/es-abstract/2024/TypedArrayLength.js @@ -0,0 +1,51 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var floor = require('./floor'); +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); + +var isTypedArrayWithBufferWitnessRecord = require('../helpers/records/typed-array-with-buffer-witness-record'); + +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayByteOffset = require('typed-array-byte-offset'); +var typedArrayLength = require('typed-array-length'); + +// https://www.ecma-international.org/ecma-262/15.0/#sec-typedarraylength + +module.exports = function TypedArrayLength(taRecord) { + if (!isTypedArrayWithBufferWitnessRecord(taRecord)) { + throw new $TypeError('Assertion failed: `taRecord` must be a TypedArray With Buffer Witness Record'); + } + + if (IsTypedArrayOutOfBounds(taRecord)) { + throw new $TypeError('Assertion failed: `taRecord` is out of bounds'); // step 1 + } + + var O = taRecord['[[Object]]']; // step 2 + + var isFixed = IsFixedLengthArrayBuffer(typedArrayBuffer(O)); + + var length = isFixed ? typedArrayLength(O) : 'AUTO'; + if (length !== 'AUTO') { + return length; // step 3 + } + + if (isFixed) { + throw new $TypeError('Assertion failed: array buffer is not fixed length'); // step 4 + } + + var byteOffset = typedArrayByteOffset(O); // step 5 + + var elementSize = TypedArrayElementSize(O); // step 6 + + var byteLength = taRecord['[[CachedBufferByteLength]]']; // step 7 + + if (byteLength === 'DETACHED') { + throw new $TypeError('Assertion failed: typed array is detached'); // step 8 + } + + return floor((byteLength - byteOffset) / elementSize); // step 9 +}; diff --git a/node_modules/es-abstract/2024/TypedArraySetElement.js b/node_modules/es-abstract/2024/TypedArraySetElement.js new file mode 100644 index 0000000000000000000000000000000000000000..abbc1dfd06f2ede6f66779a15f378a679c701148 --- /dev/null +++ b/node_modules/es-abstract/2024/TypedArraySetElement.js @@ -0,0 +1,42 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsValidIntegerIndex = require('./IsValidIntegerIndex'); +var SetValueInBuffer = require('./SetValueInBuffer'); +var ToBigInt = require('./ToBigInt'); +var ToNumber = require('./ToNumber'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); +var TypedArrayElementType = require('./TypedArrayElementType'); + +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayByteOffset = require('typed-array-byte-offset'); +var whichTypedArray = require('which-typed-array'); + +// http://www.ecma-international.org/ecma-262/15.0/#sec-typedarraysetelement + +module.exports = function TypedArraySetElement(O, index, value) { + var which = whichTypedArray(O); + if (!which) { + throw new $TypeError('Assertion failed: `O` must be a Typed Array'); + } + if (typeof index !== 'number') { + throw new $TypeError('Assertion failed: `index` must be a Number'); + } + + var contentType = which === 'BigInt64Array' || which === 'BigUint64Array' ? 'BIGINT' : 'NUMBER'; + + var numValue = contentType === 'BIGINT' ? ToBigInt(value) : ToNumber(value); // steps 1 - 2 + + if (IsValidIntegerIndex(O, index)) { // step 3 + var offset = typedArrayByteOffset(O); // step 3.a + + var elementSize = TypedArrayElementSize(O); // step 3.b + + var byteIndexInBuffer = (index * elementSize) + offset; // step 3.c + + var elementType = TypedArrayElementType(O); // step 3.d + + SetValueInBuffer(typedArrayBuffer(O), byteIndexInBuffer, elementType, numValue, true, 'UNORDERED'); // step 3.e + } +}; diff --git a/node_modules/es-abstract/2024/TypedArraySpeciesCreate.js b/node_modules/es-abstract/2024/TypedArraySpeciesCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..85730ee9ffa79253db7c4c1c92121cd2f1f0cd4f --- /dev/null +++ b/node_modules/es-abstract/2024/TypedArraySpeciesCreate.js @@ -0,0 +1,37 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var whichTypedArray = require('which-typed-array'); +var availableTypedArrays = require('available-typed-arrays')(); + +var IsArray = require('./IsArray'); +var SpeciesConstructor = require('./SpeciesConstructor'); +var TypedArrayCreateFromConstructor = require('./TypedArrayCreateFromConstructor'); + +var getConstructor = require('../helpers/typedArrayConstructors'); + +// https://262.ecma-international.org/15.0/#typedarray-species-create + +module.exports = function TypedArraySpeciesCreate(exemplar, argumentList) { + if (availableTypedArrays.length === 0) { + throw new $SyntaxError('Assertion failed: Typed Arrays are not supported in this environment'); + } + + var kind = whichTypedArray(exemplar); + if (!kind) { + throw new $TypeError('Assertion failed: exemplar must be a TypedArray'); // step 1 + } + if (!IsArray(argumentList)) { + throw new $TypeError('Assertion failed: `argumentList` must be a List'); // step 1 + } + + var defaultConstructor = getConstructor(kind); // step 2 + if (typeof defaultConstructor !== 'function') { + throw new $SyntaxError('Assertion failed: `constructor` of `exemplar` (' + kind + ') must exist. Please report this!'); + } + var constructor = SpeciesConstructor(exemplar, defaultConstructor); // step 3 + + return TypedArrayCreateFromConstructor(constructor, argumentList); // step 4 +}; diff --git a/node_modules/es-abstract/2024/UTF16EncodeCodePoint.js b/node_modules/es-abstract/2024/UTF16EncodeCodePoint.js new file mode 100644 index 0000000000000000000000000000000000000000..a35458039fc824e81d2832ac91d1fdb2e67bb621 --- /dev/null +++ b/node_modules/es-abstract/2024/UTF16EncodeCodePoint.js @@ -0,0 +1,25 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); + +var floor = require('./floor'); +var modulo = require('./modulo'); + +var isCodePoint = require('../helpers/isCodePoint'); + +// https://262.ecma-international.org/12.0/#sec-utf16encoding + +module.exports = function UTF16EncodeCodePoint(cp) { + if (!isCodePoint(cp)) { + throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); + } + if (cp <= 65535) { + return $fromCharCode(cp); + } + var cu1 = $fromCharCode(floor((cp - 65536) / 1024) + 0xD800); + var cu2 = $fromCharCode(modulo(cp - 65536, 1024) + 0xDC00); + return cu1 + cu2; +}; diff --git a/node_modules/es-abstract/2024/UTF16SurrogatePairToCodePoint.js b/node_modules/es-abstract/2024/UTF16SurrogatePairToCodePoint.js new file mode 100644 index 0000000000000000000000000000000000000000..d08f7be46a27b03ae34ddb71ef37571ea8f72531 --- /dev/null +++ b/node_modules/es-abstract/2024/UTF16SurrogatePairToCodePoint.js @@ -0,0 +1,19 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); + +var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); +var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); + +// https://262.ecma-international.org/12.0/#sec-utf16decodesurrogatepair + +module.exports = function UTF16SurrogatePairToCodePoint(lead, trail) { + if (!isLeadingSurrogate(lead) || !isTrailingSurrogate(trail)) { + throw new $TypeError('Assertion failed: `lead` must be a leading surrogate char code, and `trail` must be a trailing surrogate char code'); + } + // var cp = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; + return $fromCharCode(lead) + $fromCharCode(trail); +}; diff --git a/node_modules/es-abstract/2024/UnicodeEscape.js b/node_modules/es-abstract/2024/UnicodeEscape.js new file mode 100644 index 0000000000000000000000000000000000000000..739602cc8352d251c3d89180f3042bb397dabb76 --- /dev/null +++ b/node_modules/es-abstract/2024/UnicodeEscape.js @@ -0,0 +1,25 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +var $charCodeAt = callBound('String.prototype.charCodeAt'); +var $numberToString = callBound('Number.prototype.toString'); +var $toLowerCase = callBound('String.prototype.toLowerCase'); + +var StringPad = require('./StringPad'); + +// https://262.ecma-international.org/11.0/#sec-unicodeescape + +module.exports = function UnicodeEscape(C) { + if (typeof C !== 'string' || C.length !== 1) { + throw new $TypeError('Assertion failed: `C` must be a single code unit'); + } + var n = $charCodeAt(C, 0); + if (n > 0xFFFF) { + throw new $TypeError('`Assertion failed: numeric value of `C` must be <= 0xFFFF'); + } + + return '\\u' + StringPad($toLowerCase($numberToString(n, 16)), 4, '0', 'start'); +}; diff --git a/node_modules/es-abstract/2024/ValidateAndApplyPropertyDescriptor.js b/node_modules/es-abstract/2024/ValidateAndApplyPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..6aed0594a2548a610be2a9a812760645bd13c4e2 --- /dev/null +++ b/node_modules/es-abstract/2024/ValidateAndApplyPropertyDescriptor.js @@ -0,0 +1,171 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var DefineOwnProperty = require('../helpers/DefineOwnProperty'); +var isFullyPopulatedPropertyDescriptor = require('../helpers/isFullyPopulatedPropertyDescriptor'); +var isPropertyDescriptor = require('../helpers/records/property-descriptor'); + +var FromPropertyDescriptor = require('./FromPropertyDescriptor'); +var IsAccessorDescriptor = require('./IsAccessorDescriptor'); +var IsDataDescriptor = require('./IsDataDescriptor'); +var IsGenericDescriptor = require('./IsGenericDescriptor'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var SameValue = require('./SameValue'); + +// https://262.ecma-international.org/13.0/#sec-validateandapplypropertydescriptor + +// see https://github.com/tc39/ecma262/pull/2468 for ES2022 changes + +// eslint-disable-next-line max-lines-per-function, max-statements +module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { + if (typeof O !== 'undefined' && !isObject(O)) { + throw new $TypeError('Assertion failed: O must be undefined or an Object'); + } + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P must be a Property Key'); + } + if (typeof extensible !== 'boolean') { + throw new $TypeError('Assertion failed: extensible must be a Boolean'); + } + if (!isPropertyDescriptor(Desc)) { + throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); + } + if (typeof current !== 'undefined' && !isPropertyDescriptor(current)) { + throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); + } + + if (typeof current === 'undefined') { // step 2 + if (!extensible) { + return false; // step 2.a + } + if (typeof O === 'undefined') { + return true; // step 2.b + } + if (IsAccessorDescriptor(Desc)) { // step 2.c + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + Desc + ); + } + // step 2.d + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + { + '[[Configurable]]': !!Desc['[[Configurable]]'], + '[[Enumerable]]': !!Desc['[[Enumerable]]'], + '[[Value]]': Desc['[[Value]]'], + '[[Writable]]': !!Desc['[[Writable]]'] + } + ); + } + + // 3. Assert: current is a fully populated Property Descriptor. + if ( + !isFullyPopulatedPropertyDescriptor( + { + IsAccessorDescriptor: IsAccessorDescriptor, + IsDataDescriptor: IsDataDescriptor + }, + current + ) + ) { + throw new $TypeError('`current`, when present, must be a fully populated and valid Property Descriptor'); + } + + // 4. If every field in Desc is absent, return true. + // this can't really match the assertion that it's a Property Descriptor in our JS implementation + + // 5. If current.[[Configurable]] is false, then + if (!current['[[Configurable]]']) { + if ('[[Configurable]]' in Desc && Desc['[[Configurable]]']) { + // step 5.a + return false; + } + if ('[[Enumerable]]' in Desc && !SameValue(Desc['[[Enumerable]]'], current['[[Enumerable]]'])) { + // step 5.b + return false; + } + if (!IsGenericDescriptor(Desc) && !SameValue(IsAccessorDescriptor(Desc), IsAccessorDescriptor(current))) { + // step 5.c + return false; + } + if (IsAccessorDescriptor(current)) { // step 5.d + if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { + return false; + } + if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { + return false; + } + } else if (!current['[[Writable]]']) { // step 5.e + if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { + return false; + } + if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { + return false; + } + } + } + + // 6. If O is not undefined, then + if (typeof O !== 'undefined') { + var configurable; + var enumerable; + if (IsDataDescriptor(current) && IsAccessorDescriptor(Desc)) { // step 6.a + configurable = ('[[Configurable]]' in Desc ? Desc : current)['[[Configurable]]']; + enumerable = ('[[Enumerable]]' in Desc ? Desc : current)['[[Enumerable]]']; + // Replace the property named P of object O with an accessor property having [[Configurable]] and [[Enumerable]] attributes as described by current and each other attribute set to its default value. + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + { + '[[Configurable]]': !!configurable, + '[[Enumerable]]': !!enumerable, + '[[Get]]': ('[[Get]]' in Desc ? Desc : current)['[[Get]]'], + '[[Set]]': ('[[Set]]' in Desc ? Desc : current)['[[Set]]'] + } + ); + } else if (IsAccessorDescriptor(current) && IsDataDescriptor(Desc)) { + configurable = ('[[Configurable]]' in Desc ? Desc : current)['[[Configurable]]']; + enumerable = ('[[Enumerable]]' in Desc ? Desc : current)['[[Enumerable]]']; + // i. Replace the property named P of object O with a data property having [[Configurable]] and [[Enumerable]] attributes as described by current and each other attribute set to its default value. + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + { + '[[Configurable]]': !!configurable, + '[[Enumerable]]': !!enumerable, + '[[Value]]': ('[[Value]]' in Desc ? Desc : current)['[[Value]]'], + '[[Writable]]': !!('[[Writable]]' in Desc ? Desc : current)['[[Writable]]'] + } + ); + } + + // For each field of Desc that is present, set the corresponding attribute of the property named P of object O to the value of the field. + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + Desc + ); + } + + return true; // step 7 +}; diff --git a/node_modules/es-abstract/2024/ValidateAtomicAccess.js b/node_modules/es-abstract/2024/ValidateAtomicAccess.js new file mode 100644 index 0000000000000000000000000000000000000000..b1457e2fa85069465d1b4a353ff5fda5942e3327 --- /dev/null +++ b/node_modules/es-abstract/2024/ValidateAtomicAccess.js @@ -0,0 +1,43 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); + +var ToIndex = require('./ToIndex'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); +var TypedArrayLength = require('./TypedArrayLength'); + +var isTypedArrayWithBufferWitnessRecord = require('../helpers/records/typed-array-with-buffer-witness-record'); + +var typedArrayByteOffset = require('typed-array-byte-offset'); + +// https://262.ecma-international.org/15.0/#sec-validateatomicaccess + +module.exports = function ValidateAtomicAccess(taRecord, requestIndex) { + if (!isTypedArrayWithBufferWitnessRecord(taRecord)) { + throw new $TypeError('Assertion failed: `taRecord` must be a TypedArray With Buffer Witness Record'); + } + + var length = TypedArrayLength(taRecord); // step 1 + + var accessIndex = ToIndex(requestIndex); // step 2 + + /* + // this assertion can never be reached + if (!(accessIndex >= 0)) { + throw new $TypeError('Assertion failed: accessIndex >= 0'); // step 4 + } + */ + + if (accessIndex >= length) { + throw new $RangeError('index out of range'); // step 4 + } + + var typedArray = taRecord['[[Object]]']; // step 5 + + var elementSize = TypedArrayElementSize(typedArray); // step 6 + + var offset = typedArrayByteOffset(typedArray); // step 7 + + return (accessIndex * elementSize) + offset; // step 8 +}; diff --git a/node_modules/es-abstract/2024/ValidateAtomicAccessOnIntegerTypedArray.js b/node_modules/es-abstract/2024/ValidateAtomicAccessOnIntegerTypedArray.js new file mode 100644 index 0000000000000000000000000000000000000000..d17509caa5ec414a6f2332832e68735be8d4e1d5 --- /dev/null +++ b/node_modules/es-abstract/2024/ValidateAtomicAccessOnIntegerTypedArray.js @@ -0,0 +1,19 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ValidateAtomicAccess = require('./ValidateAtomicAccess'); +var ValidateIntegerTypedArray = require('./ValidateIntegerTypedArray'); + +// https://262.ecma-international.org/15.0/#sec-availablenamedtimezoneidentifiers + +module.exports = function ValidateAtomicAccessOnIntegerTypedArray(typedArray, requestIndex) { + var waitable = arguments.length > 2 ? arguments[2] : false; // step 1 + + if (typeof waitable !== 'boolean') { + throw new $TypeError('waitable must be a boolean'); + } + + var taRecord = ValidateIntegerTypedArray(typedArray, waitable); // step 2 + return ValidateAtomicAccess(taRecord, requestIndex); // step 3 +}; diff --git a/node_modules/es-abstract/2024/ValidateIntegerTypedArray.js b/node_modules/es-abstract/2024/ValidateIntegerTypedArray.js new file mode 100644 index 0000000000000000000000000000000000000000..838db2ddcc5eb93838f3fd0c1cab365d191e0bed --- /dev/null +++ b/node_modules/es-abstract/2024/ValidateIntegerTypedArray.js @@ -0,0 +1,31 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsBigIntElementType = require('./IsBigIntElementType'); +var IsUnclampedIntegerElementType = require('./IsUnclampedIntegerElementType'); +var TypedArrayElementType = require('./TypedArrayElementType'); +var ValidateTypedArray = require('./ValidateTypedArray'); + +// https://262.ecma-international.org/15.0/#sec-validateintegertypedarray + +module.exports = function ValidateIntegerTypedArray(typedArray, waitable) { + if (typeof waitable !== 'boolean') { + throw new $TypeError('Assertion failed: `waitable` must be a Boolean'); + } + + var taRecord = ValidateTypedArray(typedArray, 'UNORDERED'); // step 1 + + // 2. NOTE: Bounds checking is not a synchronizing operation when typedArray's backing buffer is a growable SharedArrayBuffer. + + var type = TypedArrayElementType(typedArray); // step 4.a + if (waitable) { // step 3 + if (type !== 'INT32' && type !== 'BIGINT64') { + throw new $TypeError('Assertion failed: `typedArray` must be an Int32Array or BigInt64Array when `waitable` is true'); // step 5.a + } + } else if (!IsUnclampedIntegerElementType(type) && !IsBigIntElementType(type)) { // step 4 + throw new $TypeError('Assertion failed: `typedArray` must be an integer TypedArray'); // step 4.b + } + + return taRecord; // step 5 +}; diff --git a/node_modules/es-abstract/2024/ValidateTypedArray.js b/node_modules/es-abstract/2024/ValidateTypedArray.js new file mode 100644 index 0000000000000000000000000000000000000000..4c17e52e1e21637c603466829b6b35cfae7bd425 --- /dev/null +++ b/node_modules/es-abstract/2024/ValidateTypedArray.js @@ -0,0 +1,32 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var MakeTypedArrayWithBufferWitnessRecord = require('./MakeTypedArrayWithBufferWitnessRecord'); + +var isTypedArray = require('is-typed-array'); + +// https://262.ecma-international.org/15.0/#sec-validatetypedarray + +module.exports = function ValidateTypedArray(O, order) { + if (order !== 'SEQ-CST' && order !== 'UNORDERED') { + throw new $TypeError('Assertion failed: `order` must be ~SEQ-CST~ or ~UNORDERED~'); + } + + if (!isObject(O)) { + throw new $TypeError('Assertion failed: `O` must be an Object'); // step 1 + } + if (!isTypedArray(O)) { + throw new $TypeError('Assertion failed: `O` must be a Typed Array'); // steps 1 - 2 + } + + var taRecord = MakeTypedArrayWithBufferWitnessRecord(O, order); // step 3 + + if (IsTypedArrayOutOfBounds(taRecord)) { + throw new $TypeError('`O` must be in-bounds and backed by a non-detached buffer'); // step 4 + } + + return taRecord; // step 5 +}; diff --git a/node_modules/es-abstract/2024/WeakRefDeref.js b/node_modules/es-abstract/2024/WeakRefDeref.js new file mode 100644 index 0000000000000000000000000000000000000000..195b654b653be3eb14c01787a9c185e4cea2e5ac --- /dev/null +++ b/node_modules/es-abstract/2024/WeakRefDeref.js @@ -0,0 +1,23 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $TypeError = require('es-errors/type'); +var $deref = callBound('WeakRef.prototype.deref', true); + +var isWeakRef = require('is-weakref'); + +var AddToKeptObjects = require('./AddToKeptObjects'); + +// https://262.ecma-international.org/12.0/#sec-weakrefderef + +module.exports = function WeakRefDeref(weakRef) { + if (!isWeakRef(weakRef)) { + throw new $TypeError('Assertion failed: `weakRef` must be a WeakRef'); + } + var target = $deref(weakRef); + if (target) { + AddToKeptObjects(target); + } + return target; +}; diff --git a/node_modules/es-abstract/2024/WeekDay.js b/node_modules/es-abstract/2024/WeekDay.js new file mode 100644 index 0000000000000000000000000000000000000000..17cf94ca34ce0aae649c1e0236cd18f248d54e3d --- /dev/null +++ b/node_modules/es-abstract/2024/WeekDay.js @@ -0,0 +1,10 @@ +'use strict'; + +var Day = require('./Day'); +var modulo = require('./modulo'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.6 + +module.exports = function WeekDay(t) { + return modulo(Day(t) + 4, 7); +}; diff --git a/node_modules/es-abstract/2024/WordCharacters.js b/node_modules/es-abstract/2024/WordCharacters.js new file mode 100644 index 0000000000000000000000000000000000000000..488b213b05a139c789b1dd8e433da8c4e046c11f --- /dev/null +++ b/node_modules/es-abstract/2024/WordCharacters.js @@ -0,0 +1,47 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); +var $indexOf = callBound('String.prototype.indexOf'); + +var Canonicalize = require('./Canonicalize'); + +var caseFolding = require('../helpers/caseFolding.json'); +var forEach = require('../helpers/forEach'); +var isRegExpRecord = require('../helpers/records/regexp-record'); +var OwnPropertyKeys = require('own-keys'); + +var basicWordChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'; // step 1 + +// https://262.ecma-international.org/14.0/#sec-runtime-semantics-wordcharacters-abstract-operation + +module.exports = function WordCharacters(rer) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + + var extraWordChars = ''; + forEach(OwnPropertyKeys(caseFolding.C), function (c) { + if ( + $indexOf(basicWordChars, c) === -1 // c not in A + && $indexOf(basicWordChars, Canonicalize(rer, c)) > -1 // canonicalized c IS in A + ) { + extraWordChars += caseFolding.C[c]; // step 3 + } + }); + forEach(OwnPropertyKeys(caseFolding.S), function (c) { + if ( + $indexOf(basicWordChars, c) === -1 // c not in A + && $indexOf(basicWordChars, Canonicalize(rer, c)) > -1 // canonicalized c IS in A + ) { + extraWordChars += caseFolding.S[c]; // step 3 + } + }); + + if ((!rer['[[Unicode]]'] || !rer['[[IgnoreCase]]']) && extraWordChars.length > 0) { + throw new $TypeError('Assertion failed: `extraWordChars` must be empty when `rer.[[IgnoreCase]]` and `rer.[[Unicode]]` are not both true'); // step 3 + } + + return basicWordChars + extraWordChars; // step 4 +}; diff --git a/node_modules/es-abstract/2024/YearFromTime.js b/node_modules/es-abstract/2024/YearFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..18958182021b0ecc71645057fe8ed826ef786586 --- /dev/null +++ b/node_modules/es-abstract/2024/YearFromTime.js @@ -0,0 +1,16 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Date = GetIntrinsic('%Date%'); + +var callBound = require('call-bound'); + +var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.3 + +module.exports = function YearFromTime(t) { + // largest y such that this.TimeFromYear(y) <= t + return $getUTCFullYear(new $Date(t)); +}; diff --git a/node_modules/es-abstract/2024/abs.js b/node_modules/es-abstract/2024/abs.js new file mode 100644 index 0000000000000000000000000000000000000000..457f2a4a3d48f83c061c763cd26724fd8d4297f3 --- /dev/null +++ b/node_modules/es-abstract/2024/abs.js @@ -0,0 +1,9 @@ +'use strict'; + +var $abs = require('math-intrinsics/abs'); + +// https://262.ecma-international.org/11.0/#eqn-abs + +module.exports = function abs(x) { + return typeof x === 'bigint' ? BigInt($abs(Number(x))) : $abs(x); +}; diff --git a/node_modules/es-abstract/2024/clamp.js b/node_modules/es-abstract/2024/clamp.js new file mode 100644 index 0000000000000000000000000000000000000000..3fda648424302a451ffa63433b7f7933dcc6d13e --- /dev/null +++ b/node_modules/es-abstract/2024/clamp.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var max = require('math-intrinsics/max'); +var min = require('math-intrinsics/min'); + +// https://262.ecma-international.org/12.0/#clamping + +module.exports = function clamp(x, lower, upper) { + if (typeof x !== 'number' || typeof lower !== 'number' || typeof upper !== 'number' || !(lower <= upper)) { + throw new $TypeError('Assertion failed: all three arguments must be MVs, and `lower` must be `<= upper`'); + } + return min(max(lower, x), upper); +}; diff --git a/node_modules/es-abstract/2024/floor.js b/node_modules/es-abstract/2024/floor.js new file mode 100644 index 0000000000000000000000000000000000000000..eece19b5cbf2bd71a7655ea6d2f329cc8cd1a11d --- /dev/null +++ b/node_modules/es-abstract/2024/floor.js @@ -0,0 +1,14 @@ +'use strict'; + +// var modulo = require('./modulo'); +var $floor = require('math-intrinsics/floor'); + +// http://262.ecma-international.org/11.0/#eqn-floor + +module.exports = function floor(x) { + // return x - modulo(x, 1); + if (typeof x === 'bigint') { + return x; + } + return $floor(x); +}; diff --git a/node_modules/es-abstract/2024/max.js b/node_modules/es-abstract/2024/max.js new file mode 100644 index 0000000000000000000000000000000000000000..f83b038a221fed3a500c72b41f5fdc31e1100827 --- /dev/null +++ b/node_modules/es-abstract/2024/max.js @@ -0,0 +1,5 @@ +'use strict'; + +// https://262.ecma-international.org/6.0/#sec-algorithm-conventions + +module.exports = require('math-intrinsics/max'); diff --git a/node_modules/es-abstract/2024/min.js b/node_modules/es-abstract/2024/min.js new file mode 100644 index 0000000000000000000000000000000000000000..3a8f50539f0a6519251299edf4169f98a6db0bd9 --- /dev/null +++ b/node_modules/es-abstract/2024/min.js @@ -0,0 +1,5 @@ +'use strict'; + +// https://262.ecma-international.org/6.0/#sec-algorithm-conventions + +module.exports = require('math-intrinsics/min'); diff --git a/node_modules/es-abstract/2024/modulo.js b/node_modules/es-abstract/2024/modulo.js new file mode 100644 index 0000000000000000000000000000000000000000..b94bb52bb3c62e45629a4b1e8f0ebba219d5e41e --- /dev/null +++ b/node_modules/es-abstract/2024/modulo.js @@ -0,0 +1,9 @@ +'use strict'; + +var mod = require('../helpers/mod'); + +// https://262.ecma-international.org/5.1/#sec-5.2 + +module.exports = function modulo(x, y) { + return mod(x, y); +}; diff --git a/node_modules/es-abstract/2024/msFromTime.js b/node_modules/es-abstract/2024/msFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..a6bae767aed31c8a467b8ea1fb2128e64860a972 --- /dev/null +++ b/node_modules/es-abstract/2024/msFromTime.js @@ -0,0 +1,11 @@ +'use strict'; + +var modulo = require('./modulo'); + +var msPerSecond = require('../helpers/timeConstants').msPerSecond; + +// https://262.ecma-international.org/5.1/#sec-15.9.1.10 + +module.exports = function msFromTime(t) { + return modulo(t, msPerSecond); +}; diff --git a/node_modules/es-abstract/2024/substring.js b/node_modules/es-abstract/2024/substring.js new file mode 100644 index 0000000000000000000000000000000000000000..75fbf10e9c5e754041b8b0b509cc61f56b289fe3 --- /dev/null +++ b/node_modules/es-abstract/2024/substring.js @@ -0,0 +1,15 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var callBound = require('call-bound'); + +var $slice = callBound('String.prototype.slice'); + +// https://262.ecma-international.org/12.0/#substring +module.exports = function substring(S, inclusiveStart, exclusiveEnd) { + if (typeof S !== 'string' || !isInteger(inclusiveStart) || (arguments.length > 2 && !isInteger(exclusiveEnd))) { + throw new $TypeError('`S` must be a String, and `inclusiveStart` and `exclusiveEnd` must be integers'); + } + return $slice(S, inclusiveStart, arguments.length > 2 ? exclusiveEnd : S.length); +}; diff --git a/node_modules/es-abstract/2024/tables/typed-array-objects.js b/node_modules/es-abstract/2024/tables/typed-array-objects.js new file mode 100644 index 0000000000000000000000000000000000000000..8bd34a9d15e7be74047172f2aa75f2622aa92738 --- /dev/null +++ b/node_modules/es-abstract/2024/tables/typed-array-objects.js @@ -0,0 +1,36 @@ +'use strict'; + +// https://262.ecma-international.org/15.0/#table-the-typedarray-constructors + +module.exports = { + __proto__: null, + name: { + __proto__: null, + $Int8Array: 'INT8', + $Uint8Array: 'UINT8', + $Uint8ClampedArray: 'UINT8C', + $Int16Array: 'INT16', + $Uint16Array: 'UINT16', + $Int32Array: 'INT32', + $Uint32Array: 'UINT32', + $BigInt64Array: 'BIGINT64', + $BigUint64Array: 'BIGUINT64', + $Float32Array: 'FLOAT32', + $Float64Array: 'FLOAT64' + }, + size: { + __proto__: null, + $INT8: 1, + $UINT8: 1, + $UINT8C: 1, + $INT16: 2, + $UINT16: 2, + $INT32: 4, + $UINT32: 4, + $BIGINT64: 8, + $BIGUINT64: 8, + $FLOAT32: 4, + $FLOAT64: 8 + }, + choices: '"INT8", "UINT8", "UINT8C", "INT16", "UINT16", "INT32", "UINT32", "BIGINT64", "BIGUINT64", "FLOAT32", or "FLOAT64"' +}; diff --git a/node_modules/es-abstract/2024/truncate.js b/node_modules/es-abstract/2024/truncate.js new file mode 100644 index 0000000000000000000000000000000000000000..aca9303095cc72650baca6857793ecd3c5265869 --- /dev/null +++ b/node_modules/es-abstract/2024/truncate.js @@ -0,0 +1,15 @@ +'use strict'; + +var floor = require('./floor'); + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/14.0/#eqn-truncate + +module.exports = function truncate(x) { + if (typeof x !== 'number' && typeof x !== 'bigint') { + throw new $TypeError('argument must be a Number or a BigInt'); + } + var result = x < 0 ? -floor(-x) : floor(x); + return result === 0 ? 0 : result; // in the spec, these are math values, so we filter out -0 here +}; diff --git a/node_modules/es-abstract/2025/AddEntriesFromIterable.js b/node_modules/es-abstract/2025/AddEntriesFromIterable.js new file mode 100644 index 0000000000000000000000000000000000000000..04185a0e94f9bf16f1774ce27d115d67e59a6c04 --- /dev/null +++ b/node_modules/es-abstract/2025/AddEntriesFromIterable.js @@ -0,0 +1,44 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var inspect = require('object-inspect'); + +var Call = require('./Call'); +var Get = require('./Get'); +var GetIterator = require('./GetIterator'); +var IsCallable = require('./IsCallable'); +var IteratorClose = require('./IteratorClose'); +var IteratorStep = require('./IteratorStep'); +var IteratorValue = require('./IteratorValue'); +var ThrowCompletion = require('./ThrowCompletion'); + +// https://262.ecma-international.org/15.0/#sec-add-entries-from-iterable + +module.exports = function AddEntriesFromIterable(target, iterable, adder) { + if (!IsCallable(adder)) { + throw new $TypeError('Assertion failed: `adder` is not callable'); + } + if (iterable == null) { + throw new $TypeError('Assertion failed: `iterable` is present, and not nullish'); + } + var iteratorRecord = GetIterator(iterable, 'SYNC'); + while (true) { + var next = IteratorStep(iteratorRecord); + if (!next) { + return target; + } + var nextItem = IteratorValue(next); + if (!isObject(nextItem)) { + var error = ThrowCompletion(new $TypeError('iterator next must return an Object, got ' + inspect(nextItem))); + return IteratorClose(iteratorRecord, error); + } + try { + var k = Get(nextItem, '0'); + var v = Get(nextItem, '1'); + Call(adder, target, [k, v]); + } catch (e) { + return IteratorClose(iteratorRecord, ThrowCompletion(e)); + } + } +}; diff --git a/node_modules/es-abstract/2025/AddToKeptObjects.js b/node_modules/es-abstract/2025/AddToKeptObjects.js new file mode 100644 index 0000000000000000000000000000000000000000..cce51955a6db7899e1be22e5077fb91d4f658600 --- /dev/null +++ b/node_modules/es-abstract/2025/AddToKeptObjects.js @@ -0,0 +1,18 @@ +'use strict'; + +var SLOT = require('internal-slot'); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var ClearKeptObjects = require('./ClearKeptObjects'); + +// https://262.ecma-international.org/12.0/#sec-addtokeptobjects + +module.exports = function AddToKeptObjects(object) { + if (!isObject(object)) { + throw new $TypeError('Assertion failed: `object` must be an Object'); + } + var arr = SLOT.get(ClearKeptObjects, '[[es-abstract internal: KeptAlive]]'); + arr[arr.length] = object; +}; diff --git a/node_modules/es-abstract/2025/AddValueToKeyedGroup.js b/node_modules/es-abstract/2025/AddValueToKeyedGroup.js new file mode 100644 index 0000000000000000000000000000000000000000..79338e843cf0433b7e930c71fc66a99c9844eb90 --- /dev/null +++ b/node_modules/es-abstract/2025/AddValueToKeyedGroup.js @@ -0,0 +1,45 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var SameValue = require('./SameValue'); + +var IsArray = require('../helpers/IsArray'); +var every = require('../helpers/every'); +var forEach = require('../helpers/forEach'); + +var hasOwn = require('hasown'); + +var isKeyedGroup = function (group) { + return hasOwn(group, '[[Key]]') + && hasOwn(group, '[[Elements]]') + && IsArray(group['[[Elements]]']); +}; + +// https://262.ecma-international.org/15.0/#sec-add-value-to-keyed-group + +module.exports = function AddValueToKeyedGroup(groups, key, value) { + if (!IsArray(groups) || (groups.length > 0 && !every(groups, isKeyedGroup))) { + throw new $TypeError('Assertion failed: `groups` must be a List of Records with [[Key]] and [[Elements]]'); + } + + var matched = 0; + forEach(groups, function (g) { // step 1 + if (SameValue(g['[[Key]]'], key)) { // step 2 + matched += 1; + if (matched > 1) { + throw new $TypeError('Assertion failed: Exactly one element of groups meets this criterion'); // step 2.a + } + + var arr = g['[[Elements]]']; + arr[arr.length] = value; // step 2.b + } + }); + + if (matched === 0) { + var group = { '[[Key]]': key, '[[Elements]]': [value] }; // step 2 + + // eslint-disable-next-line no-param-reassign + groups[groups.length] = group; // step 3 + } +}; diff --git a/node_modules/es-abstract/2025/AdvanceStringIndex.js b/node_modules/es-abstract/2025/AdvanceStringIndex.js new file mode 100644 index 0000000000000000000000000000000000000000..370917df9dfff158449f930ef7d03643ee38982d --- /dev/null +++ b/node_modules/es-abstract/2025/AdvanceStringIndex.js @@ -0,0 +1,30 @@ +'use strict'; + +var CodePointAt = require('./CodePointAt'); + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger'); + +// https://262.ecma-international.org/12.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 cp = CodePointAt(S, index); + return index + cp['[[CodeUnitCount]]']; +}; diff --git a/node_modules/es-abstract/2025/AllCharacters.js b/node_modules/es-abstract/2025/AllCharacters.js new file mode 100644 index 0000000000000000000000000000000000000000..2d1ba544584a1c06bc9f0d0f4ca25404f007d1f8 --- /dev/null +++ b/node_modules/es-abstract/2025/AllCharacters.js @@ -0,0 +1,29 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var HasEitherUnicodeFlag = require('./HasEitherUnicodeFlag'); + +var isRegExpRecord = require('../helpers/records/regexp-record'); + +var CharSet = require('../helpers/CharSet'); + +// https://262.ecma-international.org/15.0/#sec-allcharacters + +module.exports = function AllCharacters(rer) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + + if (rer['[[UnicodeSets]]'] && rer['[[IgnoreCase]]']) { // step 1 + // 1. Return the CharSet containing all Unicode code points _c_ that do not have a Simple Case Folding mapping (that is, scf(_c_)=_c_). + return CharSet.getNonSimpleCaseFoldingCodePoints(); // step 1.a + } else if (HasEitherUnicodeFlag(rer)) { // step 2 + // 1. Return the CharSet containing all code point values. + return CharSet.getCodePoints(); // step 3.a + // eslint-disable-next-line no-else-return + } else { // step 3 + // 1. Return the CharSet containing all code unit values. + return CharSet.getCodeUnits(); // step 3.a + } +}; diff --git a/node_modules/es-abstract/2025/ApplyStringOrNumericBinaryOperator.js b/node_modules/es-abstract/2025/ApplyStringOrNumericBinaryOperator.js new file mode 100644 index 0000000000000000000000000000000000000000..1d55e5cb5958a668af454e92e917e9e4629d3b25 --- /dev/null +++ b/node_modules/es-abstract/2025/ApplyStringOrNumericBinaryOperator.js @@ -0,0 +1,77 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var HasOwnProperty = require('./HasOwnProperty'); +var SameType = require('./SameType'); +var ToNumeric = require('./ToNumeric'); +var ToPrimitive = require('./ToPrimitive'); +var ToString = require('./ToString'); + +var NumberAdd = require('./Number/add'); +var NumberBitwiseAND = require('./Number/bitwiseAND'); +var NumberBitwiseOR = require('./Number/bitwiseOR'); +var NumberBitwiseXOR = require('./Number/bitwiseXOR'); +var NumberDivide = require('./Number/divide'); +var NumberExponentiate = require('./Number/exponentiate'); +var NumberLeftShift = require('./Number/leftShift'); +var NumberMultiply = require('./Number/multiply'); +var NumberRemainder = require('./Number/remainder'); +var NumberSignedRightShift = require('./Number/signedRightShift'); +var NumberSubtract = require('./Number/subtract'); +var NumberUnsignedRightShift = require('./Number/unsignedRightShift'); +var BigIntAdd = require('./BigInt/add'); +var BigIntBitwiseAND = require('./BigInt/bitwiseAND'); +var BigIntBitwiseOR = require('./BigInt/bitwiseOR'); +var BigIntBitwiseXOR = require('./BigInt/bitwiseXOR'); +var BigIntDivide = require('./BigInt/divide'); +var BigIntExponentiate = require('./BigInt/exponentiate'); +var BigIntLeftShift = require('./BigInt/leftShift'); +var BigIntMultiply = require('./BigInt/multiply'); +var BigIntRemainder = require('./BigInt/remainder'); +var BigIntSignedRightShift = require('./BigInt/signedRightShift'); +var BigIntSubtract = require('./BigInt/subtract'); +var BigIntUnsignedRightShift = require('./BigInt/unsignedRightShift'); + +// https://262.ecma-international.org/16.0/#step-applystringornumericbinaryoperator-operations-table +var table = { + '**': [NumberExponentiate, BigIntExponentiate], + '*': [NumberMultiply, BigIntMultiply], + '/': [NumberDivide, BigIntDivide], + '%': [NumberRemainder, BigIntRemainder], + '+': [NumberAdd, BigIntAdd], + '-': [NumberSubtract, BigIntSubtract], + '<<': [NumberLeftShift, BigIntLeftShift], + '>>': [NumberSignedRightShift, BigIntSignedRightShift], + '>>>': [NumberUnsignedRightShift, BigIntUnsignedRightShift], + '&': [NumberBitwiseAND, BigIntBitwiseAND], + '^': [NumberBitwiseXOR, BigIntBitwiseXOR], + '|': [NumberBitwiseOR, BigIntBitwiseOR] +}; + +// https://262.ecma-international.org/16.0/#sec-applystringornumericbinaryoperator + +module.exports = function ApplyStringOrNumericBinaryOperator(lval, opText, rval) { + if (typeof opText !== 'string' || !HasOwnProperty(table, opText)) { + throw new $TypeError('Assertion failed: `opText` must be a valid operation string'); + } + if (opText === '+') { + var lprim = ToPrimitive(lval); + var rprim = ToPrimitive(rval); + if (typeof lprim === 'string' || typeof rprim === 'string') { + var lstr = ToString(lprim); + var rstr = ToString(rprim); + return lstr + rstr; + } + /* eslint no-param-reassign: 1 */ + lval = lprim; + rval = rprim; + } + var lnum = ToNumeric(lval); + var rnum = ToNumeric(rval); + if (!SameType(lnum, rnum)) { + throw new $TypeError('types of ' + lnum + ' and ' + rnum + ' differ'); + } + var Operation = table[opText][typeof lnum === 'bigint' ? 1 : 0]; + return Operation(lnum, rnum); +}; diff --git a/node_modules/es-abstract/2025/ArrayBufferByteLength.js b/node_modules/es-abstract/2025/ArrayBufferByteLength.js new file mode 100644 index 0000000000000000000000000000000000000000..c37871a6a788e4d48595e281fb9025adda6f302d --- /dev/null +++ b/node_modules/es-abstract/2025/ArrayBufferByteLength.js @@ -0,0 +1,41 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/15.0/#sec-arraybufferbytelength + +var IsDetachedBuffer = require('./IsDetachedBuffer'); + +var isArrayBuffer = require('is-array-buffer'); +var isSharedArrayBuffer = require('is-shared-array-buffer'); +var arrayBufferByteLength = require('array-buffer-byte-length'); + +var callBound = require('call-bound'); +var $sabByteLength = callBound('SharedArrayBuffer.prototype.byteLength', true); + +var isGrowable = false; // TODO: support this + +module.exports = function ArrayBufferByteLength(arrayBuffer, order) { + var isSAB = isSharedArrayBuffer(arrayBuffer); + if (!isArrayBuffer(arrayBuffer) && !isSAB) { + throw new $TypeError('Assertion failed: `arrayBuffer` must be an ArrayBuffer or a SharedArrayBuffer'); + } + if (order !== 'SEQ-CST' && order !== 'UNORDERED') { + throw new $TypeError('Assertion failed: `order` must be ~SEQ-CST~ or ~UNORDERED~'); + } + + // 1. If IsSharedArrayBuffer(arrayBuffer) is true and arrayBuffer has an [[ArrayBufferByteLengthData]] internal slot, then + // TODO: see if IsFixedLengthArrayBuffer can be used here in the spec instead + if (isSAB && isGrowable) { // step 1 + // a. Let bufferByteLengthBlock be arrayBuffer.[[ArrayBufferByteLengthData]]. + // b. Let rawLength be GetRawBytesFromSharedBlock(bufferByteLengthBlock, 0, BIGUINT64, true, order). + // c. Let isLittleEndian be the value of the [[LittleEndian]] field of the surrounding agent's Agent Record. + // d. Return ℝ(RawBytesToNumeric(BIGUINT64, rawLength, isLittleEndian)). + } + + if (IsDetachedBuffer(arrayBuffer)) { + throw new $TypeError('Assertion failed: `arrayBuffer` must not be detached'); // step 2 + } + + return isSAB ? $sabByteLength(arrayBuffer) : arrayBufferByteLength(arrayBuffer); +}; diff --git a/node_modules/es-abstract/2025/ArrayBufferCopyAndDetach.js b/node_modules/es-abstract/2025/ArrayBufferCopyAndDetach.js new file mode 100644 index 0000000000000000000000000000000000000000..b3595cb4e8d72658306d501945a503957976a231 --- /dev/null +++ b/node_modules/es-abstract/2025/ArrayBufferCopyAndDetach.js @@ -0,0 +1,101 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var min = require('math-intrinsics/min'); +var $TypeError = require('es-errors/type'); +var $ArrayBuffer = GetIntrinsic('%ArrayBuffer%', true); +var $Uint8Array = GetIntrinsic('%Uint8Array%', true); + +var callBound = require('call-bound'); + +var byteLength = require('array-buffer-byte-length'); +var $maxByteLength = callBound('%ArrayBuffer.prototype.maxByteLength%', true); +var copy = function copyAB(src, start, end) { + var that = new $Uint8Array(src); + if (typeof end === 'undefined') { + end = that.length; // eslint-disable-line no-param-reassign + } + var result = new $ArrayBuffer(end - start); + var resultArray = new $Uint8Array(result); + for (var i = 0; i < resultArray.length; i++) { + resultArray[i] = that[i + start]; + } + return result; +}; +var $abSlice = callBound('%ArrayBuffer.prototype.slice%', true) + || function slice(ab, a, b) { // in node < 0.11, slice is an own nonconfigurable property + return ab.slice ? ab.slice(a, b) : copy(ab, a, b); // node 0.8 lacks `slice` + }; + +var DetachArrayBuffer = require('./DetachArrayBuffer'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); +var ToIndex = require('./ToIndex'); + +var isArrayBuffer = require('is-array-buffer'); +var isSharedArrayBuffer = require('is-shared-array-buffer'); + +// https://262.ecma-international.org/15.0/#sec-arraybuffercopyanddetach + +module.exports = function ArrayBufferCopyAndDetach(arrayBuffer, newLength, preserveResizability) { + if (preserveResizability !== 'PRESERVE-RESIZABILITY' && preserveResizability !== 'FIXED-LENGTH') { + throw new $TypeError('`preserveResizability` must be ~PRESERVE-RESIZABILITY~ or ~FIXED-LENGTH~'); + } + + if (!isArrayBuffer(arrayBuffer) || isSharedArrayBuffer(arrayBuffer)) { + throw new $TypeError('`arrayBuffer` must be a non-shared ArrayBuffer'); // steps 1 - 2 + } + + var abByteLength; + + var newByteLength; + if (typeof newLength === 'undefined') { // step 3 + newByteLength = byteLength(arrayBuffer); // step 3.a + abByteLength = newByteLength; + } else { // step 4 + newByteLength = ToIndex(newLength); // step 4.a + } + + if (IsDetachedBuffer(arrayBuffer)) { + throw new $TypeError('`arrayBuffer` must not be detached'); // step 5 + } + + var newMaxByteLength; + if (preserveResizability === 'PRESERVE-RESIZABILITY' && !IsFixedLengthArrayBuffer(arrayBuffer)) { // step 6 + newMaxByteLength = $maxByteLength(arrayBuffer); // step 6.a + } else { // step 7 + newMaxByteLength = 'EMPTY'; // step 7.a + } + + // commented out since there's no way to set or access this key + + // 8. If arrayBuffer.[[ArrayBufferDetachKey]] is not undefined, throw a TypeError exception. + + // 9. Let newBuffer be ? AllocateArrayBuffer(%ArrayBuffer%, newByteLength, newMaxByteLength). + var newBuffer = newMaxByteLength === 'EMPTY' ? new $ArrayBuffer(newByteLength) : new $ArrayBuffer(newByteLength, { maxByteLength: newMaxByteLength }); + + if (typeof abByteLength !== 'number') { + abByteLength = byteLength(arrayBuffer); + } + var copyLength = min(newByteLength, abByteLength); // step 10 + if (newByteLength > copyLength || newMaxByteLength !== 'EMPTY') { + var taNew = new $Uint8Array(newBuffer); + var taOld = new $Uint8Array(arrayBuffer); + for (var i = 0; i < copyLength; i++) { + taNew[i] = taOld[i]; + } + } else { + newBuffer = $abSlice(arrayBuffer, 0, copyLength); // ? optimization for when the new buffer will not be larger than the old one + } + /* + 11. Let fromBlock be arrayBuffer.[[ArrayBufferData]]. + 12. Let toBlock be newBuffer.[[ArrayBufferData]]. + 13. Perform CopyDataBlockBytes(toBlock, 0, fromBlock, 0, copyLength). + 14. NOTE: Neither creation of the new Data Block nor copying from the old Data Block are observable. Implementations may implement this method as a zero-copy move or a realloc. + */ + + DetachArrayBuffer(arrayBuffer); // step 15 + + return newBuffer; // step 16 +}; diff --git a/node_modules/es-abstract/2025/ArrayCreate.js b/node_modules/es-abstract/2025/ArrayCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..568632b8a6d2ef76124399192dee465859e0ed1b --- /dev/null +++ b/node_modules/es-abstract/2025/ArrayCreate.js @@ -0,0 +1,42 @@ +'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('math-intrinsics/isInteger'); +var MAX_ARRAY_LENGTH = require('math-intrinsics/constants/maxArrayLength'); +var $setProto = require('set-proto'); + +// https://262.ecma-international.org/12.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 3, 5 + if (proto !== $ArrayPrototype) { // step 4 + 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 6 + A.length = length; + } + /* step 6, the above as a shortcut for the below + OrdinaryDefineOwnProperty(A, 'length', { + '[[Configurable]]': false, + '[[Enumerable]]': false, + '[[Value]]': length, + '[[Writable]]': true + }); + */ + return A; +}; diff --git a/node_modules/es-abstract/2025/ArraySetLength.js b/node_modules/es-abstract/2025/ArraySetLength.js new file mode 100644 index 0000000000000000000000000000000000000000..7f7a4339c2af5c8656165189f47c4212732ee1bd --- /dev/null +++ b/node_modules/es-abstract/2025/ArraySetLength.js @@ -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; +}; diff --git a/node_modules/es-abstract/2025/ArraySpeciesCreate.js b/node_modules/es-abstract/2025/ArraySpeciesCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..2589c90787151d6dd4534c32499a6906b982c505 --- /dev/null +++ b/node_modules/es-abstract/2025/ArraySpeciesCreate.js @@ -0,0 +1,48 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $species = GetIntrinsic('%Symbol.species%', true); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var isObject = require('es-object-atoms/isObject'); + +var ArrayCreate = require('./ArrayCreate'); +var Get = require('./Get'); +var IsArray = require('./IsArray'); +var IsConstructor = require('./IsConstructor'); + +// https://262.ecma-international.org/12.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 isArray = IsArray(originalArray); + if (!isArray) { + return ArrayCreate(length); + } + + var 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 && isObject(C)) { + C = Get(C, $species); + if (C === null) { + C = void 0; + } + } + + if (typeof C === 'undefined') { + return ArrayCreate(length); + } + if (!IsConstructor(C)) { + throw new $TypeError('C must be a constructor'); + } + return new C(length); // Construct(C, length); +}; + diff --git a/node_modules/es-abstract/2025/AsyncFromSyncIteratorContinuation.js b/node_modules/es-abstract/2025/AsyncFromSyncIteratorContinuation.js new file mode 100644 index 0000000000000000000000000000000000000000..664828ad1ec5289ce2084b88ae644a24d2b53e53 --- /dev/null +++ b/node_modules/es-abstract/2025/AsyncFromSyncIteratorContinuation.js @@ -0,0 +1,45 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $Promise = GetIntrinsic('%Promise%', true); + +var callBound = require('call-bound'); + +var CreateIteratorResultObject = require('./CreateIteratorResultObject'); +var IteratorComplete = require('./IteratorComplete'); +var IteratorValue = require('./IteratorValue'); +var PromiseResolve = require('./PromiseResolve'); + +var $then = callBound('Promise.prototype.then', true); + +// https://262.ecma-international.org/16.0/#sec-asyncfromsynciteratorcontinuation + +module.exports = function AsyncFromSyncIteratorContinuation(result) { + if (!isObject(result)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + + if (arguments.length > 1) { + throw new $SyntaxError('although AsyncFromSyncIteratorContinuation should take a second argument, it is not used in this implementation'); + } + + if (!$Promise) { + throw new $SyntaxError('This environment does not support Promises.'); + } + + return new $Promise(function (resolve) { + var done = IteratorComplete(result); // step 2 + var value = IteratorValue(result); // step 4 + var valueWrapper = PromiseResolve($Promise, value); // step 6 + + // eslint-disable-next-line no-shadow + var onFulfilled = function (value) { // steps 8-9 + return CreateIteratorResultObject(value, done); // step 8.a + }; + resolve($then(valueWrapper, onFulfilled)); // step 11 + }); // step 12 +}; diff --git a/node_modules/es-abstract/2025/AsyncIteratorClose.js b/node_modules/es-abstract/2025/AsyncIteratorClose.js new file mode 100644 index 0000000000000000000000000000000000000000..370501c10963736283afd3637c844ec97d04e1fb --- /dev/null +++ b/node_modules/es-abstract/2025/AsyncIteratorClose.js @@ -0,0 +1,70 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $Promise = GetIntrinsic('%Promise%', true); + +var Call = require('./Call'); +var CompletionRecord = require('./CompletionRecord'); +var GetMethod = require('./GetMethod'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +var callBound = require('call-bound'); + +var $then = callBound('Promise.prototype.then', true); + +// https://262.ecma-international.org/15.0/#sec-asynciteratorclose + +module.exports = function AsyncIteratorClose(iteratorRecord, completion) { + if (!isIteratorRecord(iteratorRecord)) { + throw new $TypeError('Assertion failed: `iteratorRecord` must be an Iterator Record'); // step 1 + } + + if (!(completion instanceof CompletionRecord)) { + throw new $TypeError('Assertion failed: completion is not a Completion Record instance'); // step 2 + } + + if (!$then) { + throw new $SyntaxError('This environment does not support Promises.'); + } + + var iterator = iteratorRecord['[[Iterator]]']; // step 3 + + return $then( + $then( + $then( + new $Promise(function (resolve) { + resolve(GetMethod(iterator, 'return')); // step 4 + // resolve(Call(ret, iterator, [])); // step 6 + }), + function (returnV) { // step 5.a + if (typeof returnV === 'undefined') { + return completion; // step 5.b + } + return Call(returnV, iterator); // step 5.c, 5.d. + } + ), + null, + function (e) { + if (completion.type() === 'throw') { + completion['?'](); // step 6 + } else { + throw e; // step 7 + } + } + ), + function (innerResult) { // step 8 + if (completion.type() === 'throw') { + completion['?'](); // step 6 + } + if (!isObject(innerResult)) { + throw new $TypeError('`innerResult` must be an Object'); // step 10 + } + return completion; + } + ); +}; diff --git a/node_modules/es-abstract/2025/BigInt/add.js b/node_modules/es-abstract/2025/BigInt/add.js new file mode 100644 index 0000000000000000000000000000000000000000..25cc9fa60f58e2433eb392a4cc0e00a0569474ba --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/add.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-add + +module.exports = function BigIntAdd(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + // shortcut for the actual spec mechanics + return x + y; +}; diff --git a/node_modules/es-abstract/2025/BigInt/bitwiseAND.js b/node_modules/es-abstract/2025/BigInt/bitwiseAND.js new file mode 100644 index 0000000000000000000000000000000000000000..106f4a273945d92cdb34715249ae5a72c1af93d8 --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/bitwiseAND.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var BigIntBitwiseOp = require('../BigIntBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseAND + +module.exports = function BigIntBitwiseAND(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + return BigIntBitwiseOp('&', x, y); +}; diff --git a/node_modules/es-abstract/2025/BigInt/bitwiseNOT.js b/node_modules/es-abstract/2025/BigInt/bitwiseNOT.js new file mode 100644 index 0000000000000000000000000000000000000000..9fe67405f674c3501fe410d55c63c59874841d87 --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/bitwiseNOT.js @@ -0,0 +1,15 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseNOT + +module.exports = function BigIntBitwiseNOT(x) { + if (typeof x !== 'bigint') { + throw new $TypeError('Assertion failed: `x` argument must be a BigInt'); + } + return -x - $BigInt(1); +}; diff --git a/node_modules/es-abstract/2025/BigInt/bitwiseOR.js b/node_modules/es-abstract/2025/BigInt/bitwiseOR.js new file mode 100644 index 0000000000000000000000000000000000000000..b0ba812a8a321e0f92a9d446b4e5439ec898fd47 --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/bitwiseOR.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var BigIntBitwiseOp = require('../BigIntBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseOR + +module.exports = function BigIntBitwiseOR(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + return BigIntBitwiseOp('|', x, y); +}; diff --git a/node_modules/es-abstract/2025/BigInt/bitwiseXOR.js b/node_modules/es-abstract/2025/BigInt/bitwiseXOR.js new file mode 100644 index 0000000000000000000000000000000000000000..79ac4a1f4568d559d69b64ba88061aabb1460c57 --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/bitwiseXOR.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var BigIntBitwiseOp = require('../BigIntBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseXOR + +module.exports = function BigIntBitwiseXOR(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + return BigIntBitwiseOp('^', x, y); +}; diff --git a/node_modules/es-abstract/2025/BigInt/divide.js b/node_modules/es-abstract/2025/BigInt/divide.js new file mode 100644 index 0000000000000000000000000000000000000000..a194302eb682514dc75061f391f75fdad1f0da4e --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/divide.js @@ -0,0 +1,20 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-divide + +module.exports = function BigIntDivide(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + if (y === $BigInt(0)) { + throw new $RangeError('Division by zero'); + } + // shortcut for the actual spec mechanics + return x / y; +}; diff --git a/node_modules/es-abstract/2025/BigInt/equal.js b/node_modules/es-abstract/2025/BigInt/equal.js new file mode 100644 index 0000000000000000000000000000000000000000..d6b36a2551cb08160a812a8bab4dc3a63e751a8b --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/equal.js @@ -0,0 +1,13 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-equal + +module.exports = function BigIntEqual(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + // shortcut for the actual spec mechanics + return x === y; +}; diff --git a/node_modules/es-abstract/2025/BigInt/exponentiate.js b/node_modules/es-abstract/2025/BigInt/exponentiate.js new file mode 100644 index 0000000000000000000000000000000000000000..f5bcdc148af1bc7658596120cbf5d72f7036c599 --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/exponentiate.js @@ -0,0 +1,29 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-exponentiate + +module.exports = function BigIntExponentiate(base, exponent) { + if (typeof base !== 'bigint' || typeof exponent !== 'bigint') { + throw new $TypeError('Assertion failed: `base` and `exponent` arguments must be BigInts'); + } + if (exponent < $BigInt(0)) { + throw new $RangeError('Exponent must be positive'); + } + if (/* base === $BigInt(0) && */ exponent === $BigInt(0)) { + return $BigInt(1); + } + + var square = base; + var remaining = exponent; + while (remaining > $BigInt(0)) { + square += exponent; + --remaining; // eslint-disable-line no-plusplus + } + return square; +}; diff --git a/node_modules/es-abstract/2025/BigInt/index.js b/node_modules/es-abstract/2025/BigInt/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6ba755ff52a6f144423c3662e0d496c0a09dad31 --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/index.js @@ -0,0 +1,39 @@ +'use strict'; + +var add = require('./add'); +var bitwiseAND = require('./bitwiseAND'); +var bitwiseNOT = require('./bitwiseNOT'); +var bitwiseOR = require('./bitwiseOR'); +var bitwiseXOR = require('./bitwiseXOR'); +var divide = require('./divide'); +var equal = require('./equal'); +var exponentiate = require('./exponentiate'); +var leftShift = require('./leftShift'); +var lessThan = require('./lessThan'); +var multiply = require('./multiply'); +var remainder = require('./remainder'); +var signedRightShift = require('./signedRightShift'); +var subtract = require('./subtract'); +var toString = require('./toString'); +var unaryMinus = require('./unaryMinus'); +var unsignedRightShift = require('./unsignedRightShift'); + +module.exports = { + add: add, + bitwiseAND: bitwiseAND, + bitwiseNOT: bitwiseNOT, + bitwiseOR: bitwiseOR, + bitwiseXOR: bitwiseXOR, + divide: divide, + equal: equal, + exponentiate: exponentiate, + leftShift: leftShift, + lessThan: lessThan, + multiply: multiply, + remainder: remainder, + signedRightShift: signedRightShift, + subtract: subtract, + toString: toString, + unaryMinus: unaryMinus, + unsignedRightShift: unsignedRightShift +}; diff --git a/node_modules/es-abstract/2025/BigInt/leftShift.js b/node_modules/es-abstract/2025/BigInt/leftShift.js new file mode 100644 index 0000000000000000000000000000000000000000..327592ea62472441e0750d4a6e5bccc81a7a5c71 --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/leftShift.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-leftShift + +module.exports = function BigIntLeftShift(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + // shortcut for the actual spec mechanics + return x << y; +}; diff --git a/node_modules/es-abstract/2025/BigInt/lessThan.js b/node_modules/es-abstract/2025/BigInt/lessThan.js new file mode 100644 index 0000000000000000000000000000000000000000..612f2dbbc4ea4aa7e5b27781f68071baa10f8727 --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/lessThan.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-lessThan + +module.exports = function BigIntLessThan(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + // shortcut for the actual spec mechanics + return x < y; +}; diff --git a/node_modules/es-abstract/2025/BigInt/multiply.js b/node_modules/es-abstract/2025/BigInt/multiply.js new file mode 100644 index 0000000000000000000000000000000000000000..a9bfbd5936a77ce9ddaec1e442a36fc2c4eb96de --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/multiply.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-multiply + +module.exports = function BigIntMultiply(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + // shortcut for the actual spec mechanics + return x * y; +}; diff --git a/node_modules/es-abstract/2025/BigInt/remainder.js b/node_modules/es-abstract/2025/BigInt/remainder.js new file mode 100644 index 0000000000000000000000000000000000000000..60346ecdeec72fc2f63f823c80fea5a45208abab --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/remainder.js @@ -0,0 +1,28 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); + +var zero = $BigInt && $BigInt(0); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-remainder + +module.exports = function BigIntRemainder(n, d) { + if (typeof n !== 'bigint' || typeof d !== 'bigint') { + throw new $TypeError('Assertion failed: `n` and `d` arguments must be BigInts'); + } + + if (d === zero) { + throw new $RangeError('Division by zero'); + } + + if (n === zero) { + return zero; + } + + // shortcut for the actual spec mechanics + return n % d; +}; diff --git a/node_modules/es-abstract/2025/BigInt/signedRightShift.js b/node_modules/es-abstract/2025/BigInt/signedRightShift.js new file mode 100644 index 0000000000000000000000000000000000000000..90967d66e622397fc8e7cd54ee6e1f7c5426b786 --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/signedRightShift.js @@ -0,0 +1,15 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var BigIntLeftShift = require('./leftShift'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-signedRightShift + +module.exports = function BigIntSignedRightShift(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + return BigIntLeftShift(x, -y); +}; diff --git a/node_modules/es-abstract/2025/BigInt/subtract.js b/node_modules/es-abstract/2025/BigInt/subtract.js new file mode 100644 index 0000000000000000000000000000000000000000..32de730a3cbea3a14df35755a24c54dcb9e5de9f --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/subtract.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-subtract + +module.exports = function BigIntSubtract(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + // shortcut for the actual spec mechanics + return x - y; +}; diff --git a/node_modules/es-abstract/2025/BigInt/toString.js b/node_modules/es-abstract/2025/BigInt/toString.js new file mode 100644 index 0000000000000000000000000000000000000000..a5d5700465bb6ad7dde0bbf8c03023859623dad9 --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/toString.js @@ -0,0 +1,26 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $BigIntToString = callBound('BigInt.prototype.toString', true); + +// https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-tostring + +module.exports = function BigIntToString(x, radix) { + if (typeof x !== 'bigint') { + throw new $TypeError('Assertion failed: `x` must be a BigInt'); + } + + if (!isInteger(radix) || radix < 2 || radix > 36) { + throw new $TypeError('Assertion failed: `radix` must be an integer >= 2 and <= 36'); + } + + if (!$BigIntToString) { + throw new $SyntaxError('BigInt is not supported'); + } + + return $BigIntToString(x, radix); // steps 1 - 12 +}; diff --git a/node_modules/es-abstract/2025/BigInt/unaryMinus.js b/node_modules/es-abstract/2025/BigInt/unaryMinus.js new file mode 100644 index 0000000000000000000000000000000000000000..161f02fbdba7eca7078ee2a2404f646e03b4d0be --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/unaryMinus.js @@ -0,0 +1,22 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $TypeError = require('es-errors/type'); + +var zero = $BigInt && $BigInt(0); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-unaryMinus + +module.exports = function BigIntUnaryMinus(x) { + if (typeof x !== 'bigint') { + throw new $TypeError('Assertion failed: `x` argument must be a BigInt'); + } + + if (x === zero) { + return zero; + } + + return -x; +}; diff --git a/node_modules/es-abstract/2025/BigInt/unsignedRightShift.js b/node_modules/es-abstract/2025/BigInt/unsignedRightShift.js new file mode 100644 index 0000000000000000000000000000000000000000..d695cb43beb3716c8015d4b83f93d6fc7307da73 --- /dev/null +++ b/node_modules/es-abstract/2025/BigInt/unsignedRightShift.js @@ -0,0 +1,13 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-unsignedRightShift + +module.exports = function BigIntUnsignedRightShift(x, y) { + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); + } + + throw new $TypeError('BigInts have no unsigned right shift, use >> instead'); +}; diff --git a/node_modules/es-abstract/2025/BigIntBitwiseOp.js b/node_modules/es-abstract/2025/BigIntBitwiseOp.js new file mode 100644 index 0000000000000000000000000000000000000000..40e1a13185c4a1b7273f3e53a48f04f9ec5161b6 --- /dev/null +++ b/node_modules/es-abstract/2025/BigIntBitwiseOp.js @@ -0,0 +1,63 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +// var $BigInt = GetIntrinsic('%BigInt%', true); +// var $pow = require('math-intrinsics/pow'); + +// var BinaryAnd = require('./BinaryAnd'); +// var BinaryOr = require('./BinaryOr'); +// var BinaryXor = require('./BinaryXor'); +// var modulo = require('./modulo'); + +// var zero = $BigInt && $BigInt(0); +// var negOne = $BigInt && $BigInt(-1); +// var two = $BigInt && $BigInt(2); + +// https://262.ecma-international.org/11.0/#sec-bigintbitwiseop + +module.exports = function BigIntBitwiseOp(op, x, y) { + if (op !== '&' && op !== '|' && op !== '^') { + throw new $TypeError('Assertion failed: `op` must be `&`, `|`, or `^`'); + } + if (typeof x !== 'bigint' || typeof y !== 'bigint') { + throw new $TypeError('`x` and `y` must be BigInts'); + } + + if (op === '&') { + return x & y; + } + if (op === '|') { + return x | y; + } + return x ^ y; + /* + var result = zero; + var shift = 0; + while (x !== zero && x !== negOne && y !== zero && y !== negOne) { + var xDigit = modulo(x, two); + var yDigit = modulo(y, two); + if (op === '&') { + result += $pow(2, shift) * BinaryAnd(xDigit, yDigit); + } else if (op === '|') { + result += $pow(2, shift) * BinaryOr(xDigit, yDigit); + } else if (op === '^') { + result += $pow(2, shift) * BinaryXor(xDigit, yDigit); + } + shift += 1; + x = (x - xDigit) / two; + y = (y - yDigit) / two; + } + var tmp; + if (op === '&') { + tmp = BinaryAnd(modulo(x, two), modulo(y, two)); + } else if (op === '|') { + tmp = BinaryAnd(modulo(x, two), modulo(y, two)); + } else { + tmp = BinaryXor(modulo(x, two), modulo(y, two)); + } + if (tmp !== 0) { + result -= $pow(2, shift); + } + return result; + */ +}; diff --git a/node_modules/es-abstract/2025/BinaryAnd.js b/node_modules/es-abstract/2025/BinaryAnd.js new file mode 100644 index 0000000000000000000000000000000000000000..bb361dea6141f1b0d447cb06b5ee18e96ea426ce --- /dev/null +++ b/node_modules/es-abstract/2025/BinaryAnd.js @@ -0,0 +1,12 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-binaryand + +module.exports = function BinaryAnd(x, y) { + if ((x !== 0 && x !== 1) || (y !== 0 && y !== 1)) { + throw new $TypeError('Assertion failed: `x` and `y` must be either 0 or 1'); + } + return x & y; +}; diff --git a/node_modules/es-abstract/2025/BinaryOr.js b/node_modules/es-abstract/2025/BinaryOr.js new file mode 100644 index 0000000000000000000000000000000000000000..76200f8744087b5c72020f4826d5bc8f55bd3886 --- /dev/null +++ b/node_modules/es-abstract/2025/BinaryOr.js @@ -0,0 +1,12 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-binaryor + +module.exports = function BinaryOr(x, y) { + if ((x !== 0 && x !== 1) || (y !== 0 && y !== 1)) { + throw new $TypeError('Assertion failed: `x` and `y` must be either 0 or 1'); + } + return x | y; +}; diff --git a/node_modules/es-abstract/2025/BinaryXor.js b/node_modules/es-abstract/2025/BinaryXor.js new file mode 100644 index 0000000000000000000000000000000000000000..c1da53b26c67c6379ceaa50349f7861827eb6e10 --- /dev/null +++ b/node_modules/es-abstract/2025/BinaryXor.js @@ -0,0 +1,12 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/11.0/#sec-binaryxor + +module.exports = function BinaryXor(x, y) { + if ((x !== 0 && x !== 1) || (y !== 0 && y !== 1)) { + throw new $TypeError('Assertion failed: `x` and `y` must be either 0 or 1'); + } + return x ^ y; +}; diff --git a/node_modules/es-abstract/2025/ByteListBitwiseOp.js b/node_modules/es-abstract/2025/ByteListBitwiseOp.js new file mode 100644 index 0000000000000000000000000000000000000000..7aba5bc6346a74cdb51b6070e1e6a8159783fce0 --- /dev/null +++ b/node_modules/es-abstract/2025/ByteListBitwiseOp.js @@ -0,0 +1,39 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsArray = require('./IsArray'); + +var isByteValue = require('../helpers/isByteValue'); + +// https://262.ecma-international.org/12.0/#sec-bytelistbitwiseop + +module.exports = function ByteListBitwiseOp(op, xBytes, yBytes) { + if (op !== '&' && op !== '^' && op !== '|') { + throw new $TypeError('Assertion failed: `op` must be `&`, `^`, or `|`'); + } + if (!IsArray(xBytes) || !IsArray(yBytes) || xBytes.length !== yBytes.length) { + throw new $TypeError('Assertion failed: `xBytes` and `yBytes` must be same-length sequences of byte values (an integer 0-255, inclusive)'); + } + + var result = []; + + for (var i = 0; i < xBytes.length; i += 1) { + var xByte = xBytes[i]; + var yByte = yBytes[i]; + if (!isByteValue(xByte) || !isByteValue(yByte)) { + throw new $TypeError('Assertion failed: `xBytes` and `yBytes` must be same-length sequences of byte values (an integer 0-255, inclusive)'); + } + var resultByte; + if (op === '&') { + resultByte = xByte & yByte; + } else if (op === '^') { + resultByte = xByte ^ yByte; + } else { + resultByte = xByte | yByte; + } + result[result.length] = resultByte; + } + + return result; +}; diff --git a/node_modules/es-abstract/2025/ByteListEqual.js b/node_modules/es-abstract/2025/ByteListEqual.js new file mode 100644 index 0000000000000000000000000000000000000000..b581cbba25a97b6211880bf53391bfcde3986715 --- /dev/null +++ b/node_modules/es-abstract/2025/ByteListEqual.js @@ -0,0 +1,31 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsArray = require('./IsArray'); + +var isByteValue = require('../helpers/isByteValue'); + +// https://262.ecma-international.org/12.0/#sec-bytelistequal + +module.exports = function ByteListEqual(xBytes, yBytes) { + if (!IsArray(xBytes) || !IsArray(yBytes)) { + throw new $TypeError('Assertion failed: `xBytes` and `yBytes` must be sequences of byte values (an integer 0-255, inclusive)'); + } + + if (xBytes.length !== yBytes.length) { + return false; + } + + for (var i = 0; i < xBytes.length; i += 1) { + var xByte = xBytes[i]; + var yByte = yBytes[i]; + if (!isByteValue(xByte) || !isByteValue(yByte)) { + throw new $TypeError('Assertion failed: `xBytes` and `yBytes` must be sequences of byte values (an integer 0-255, inclusive)'); + } + if (xByte !== yByte) { + return false; + } + } + return true; +}; diff --git a/node_modules/es-abstract/2025/Call.js b/node_modules/es-abstract/2025/Call.js new file mode 100644 index 0000000000000000000000000000000000000000..90b3519cb954848f531c4921eaa79ec7d37d06bd --- /dev/null +++ b/node_modules/es-abstract/2025/Call.js @@ -0,0 +1,20 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); + +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); +}; diff --git a/node_modules/es-abstract/2025/CanBeHeldWeakly.js b/node_modules/es-abstract/2025/CanBeHeldWeakly.js new file mode 100644 index 0000000000000000000000000000000000000000..9f32ece50f652cf7c6e563e441b05c3965cc0f5f --- /dev/null +++ b/node_modules/es-abstract/2025/CanBeHeldWeakly.js @@ -0,0 +1,17 @@ +'use strict'; + +var isObject = require('es-object-atoms/isObject'); + +var KeyForSymbol = require('./KeyForSymbol'); + +// https://262.ecma-international.org/14.0/#sec-canbeheldweakly + +module.exports = function CanBeHeldWeakly(v) { + if (isObject(v)) { + return true; // step 1 + } + if (typeof v === 'symbol' && typeof KeyForSymbol(v) === 'undefined') { + return true; // step 2 + } + return false; // step 3 +}; diff --git a/node_modules/es-abstract/2025/CanonicalNumericIndexString.js b/node_modules/es-abstract/2025/CanonicalNumericIndexString.js new file mode 100644 index 0000000000000000000000000000000000000000..74ed02f050d21c13dbfc06c80c21ae20a8e530ee --- /dev/null +++ b/node_modules/es-abstract/2025/CanonicalNumericIndexString.js @@ -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; +}; diff --git a/node_modules/es-abstract/2025/Canonicalize.js b/node_modules/es-abstract/2025/Canonicalize.js new file mode 100644 index 0000000000000000000000000000000000000000..849d2138719e79487ec128f52b9e8b2b91671ef6 --- /dev/null +++ b/node_modules/es-abstract/2025/Canonicalize.js @@ -0,0 +1,52 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); +var hasOwn = require('hasown'); + +var $charCodeAt = callBound('String.prototype.charCodeAt'); +var $toUpperCase = callBound('String.prototype.toUpperCase'); + +var isRegExpRecord = require('../helpers/records/regexp-record'); +var caseFolding = require('../helpers/caseFolding.json'); + +// https://262.ecma-international.org/14.0/#sec-runtime-semantics-canonicalize-ch + +module.exports = function Canonicalize(rer, ch) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + + if (typeof ch !== 'string') { + throw new $TypeError('Assertion failed: `ch` must be a character'); + } + + if (rer['[[Unicode]]'] && rer['[[IgnoreCase]]']) { // step 1 + if (hasOwn(caseFolding.C, ch)) { + return caseFolding.C[ch]; + } + if (hasOwn(caseFolding.S, ch)) { + return caseFolding.S[ch]; + } + return ch; // step 1.b + } + + if (!rer['[[IgnoreCase]]']) { + return ch; // step 2 + } + + var u = $toUpperCase(ch); // step 5 + + if (u.length !== 1) { + return ch; // step 7 + } + + var cu = u; // step 8 + + if ($charCodeAt(ch, 0) >= 128 && $charCodeAt(cu, 0) < 128) { + return ch; // step 9 + } + + return cu; // step 10 +}; diff --git a/node_modules/es-abstract/2025/CanonicalizeKeyedCollectionKey.js b/node_modules/es-abstract/2025/CanonicalizeKeyedCollectionKey.js new file mode 100644 index 0000000000000000000000000000000000000000..05c5c74f16e5746ccf33baa527da7f7764b2d1a4 --- /dev/null +++ b/node_modules/es-abstract/2025/CanonicalizeKeyedCollectionKey.js @@ -0,0 +1,7 @@ +'use strict'; + +// https://262.ecma-international.org/16.0/#sec-canonicalizekeyedcollectionkey + +module.exports = function CanonicalizeKeyedCollectionKey(key) { + return key === 0 ? +0 : key; +}; diff --git a/node_modules/es-abstract/2025/CharacterComplement.js b/node_modules/es-abstract/2025/CharacterComplement.js new file mode 100644 index 0000000000000000000000000000000000000000..b04e9c6aba59679de5bff480910f14e373f08122 --- /dev/null +++ b/node_modules/es-abstract/2025/CharacterComplement.js @@ -0,0 +1,34 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var AllCharacters = require('./AllCharacters'); + +var CharSet = require('../helpers/CharSet').CharSet; +var isRegExpRecord = require('../helpers/records/regexp-record'); + +// https://262.ecma-international.org/15.0/#sec-charactercomplement + +module.exports = function CharacterComplement(rer, S) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + + if (!(S instanceof CharSet)) { + throw new $TypeError('Assertion failed: S must be a CharSet'); + } + + var A = AllCharacters(rer); // step 1 + + // 2. Return the CharSet containing the CharSetElements of A which are not also CharSetElements of S. + return new CharSet( + function (x) { return !S.test(x) && A.test(x); }, + function (emit) { + A.yield(function (x) { + if (!S.test(x)) { + emit(x); + } + }); + } + ); +}; diff --git a/node_modules/es-abstract/2025/CharacterRange.js b/node_modules/es-abstract/2025/CharacterRange.js new file mode 100644 index 0000000000000000000000000000000000000000..a6bfcda60b323ef619dc55b141eb35997df035e1 --- /dev/null +++ b/node_modules/es-abstract/2025/CharacterRange.js @@ -0,0 +1,47 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); + +var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); +var $TypeError = require('es-errors/type'); +var $charCodeAt = callBound('String.prototype.charCodeAt'); + +var CharSet = require('../helpers/CharSet').CharSet; + +// https://262.ecma-international.org/16.0/#sec-runtime-semantics-characterrange-abstract-operation + +module.exports = function CharacterRange(A, B) { + if (!(A instanceof CharSet) || !(B instanceof CharSet)) { + throw new $TypeError('Assertion failed: CharSets A and B are not both CharSets'); + } + + var a; + A.yield(function (c) { + if (typeof a !== 'undefined') { + throw new $TypeError('Assertion failed: CharSet A has more than one character'); + } + a = c; + }); + + var b; + B.yield(function (c) { + if (typeof b !== 'undefined') { + throw new $TypeError('Assertion failed: CharSet B has more than one character'); + } + b = c; + }); + + 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) { + arr[arr.length] = $fromCharCode(k); + } + return arr; +}; diff --git a/node_modules/es-abstract/2025/ClearKeptObjects.js b/node_modules/es-abstract/2025/ClearKeptObjects.js new file mode 100644 index 0000000000000000000000000000000000000000..50bd4a5da4199b973650ca675584246ef492edac --- /dev/null +++ b/node_modules/es-abstract/2025/ClearKeptObjects.js @@ -0,0 +1,12 @@ +'use strict'; + +var SLOT = require('internal-slot'); +var keptObjects = []; + +// https://262.ecma-international.org/12.0/#sec-clear-kept-objects + +module.exports = function ClearKeptObjects() { + keptObjects.length = 0; +}; + +SLOT.set(module.exports, '[[es-abstract internal: KeptAlive]]', keptObjects); diff --git a/node_modules/es-abstract/2025/CloneArrayBuffer.js b/node_modules/es-abstract/2025/CloneArrayBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..27c8ba96184211b7d06388f9f7302f8f4e293638 --- /dev/null +++ b/node_modules/es-abstract/2025/CloneArrayBuffer.js @@ -0,0 +1,46 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); +var IsConstructor = require('./IsConstructor'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var OrdinarySetPrototypeOf = require('./OrdinarySetPrototypeOf'); + +var isInteger = require('math-intrinsics/isInteger'); +var isArrayBuffer = require('is-array-buffer'); +var arrayBufferSlice = require('arraybuffer.prototype.slice'); + +// https://262.ecma-international.org/12.0/#sec-clonearraybuffer + +module.exports = function CloneArrayBuffer(srcBuffer, srcByteOffset, srcLength, cloneConstructor) { + if (!isArrayBuffer(srcBuffer)) { + throw new $TypeError('Assertion failed: `srcBuffer` must be an ArrayBuffer instance'); + } + if (!isInteger(srcByteOffset) || srcByteOffset < 0) { + throw new $TypeError('Assertion failed: `srcByteOffset` must be a non-negative integer'); + } + if (!isInteger(srcLength) || srcLength < 0) { + throw new $TypeError('Assertion failed: `srcLength` must be a non-negative integer'); + } + if (!IsConstructor(cloneConstructor)) { + throw new $TypeError('Assertion failed: `cloneConstructor` must be a constructor'); + } + + // 3. Let targetBuffer be ? AllocateArrayBuffer(cloneConstructor, srcLength). + var proto = GetPrototypeFromConstructor(cloneConstructor, '%ArrayBufferPrototype%'); // step 3, kinda + + if (IsDetachedBuffer(srcBuffer)) { + throw new $TypeError('`srcBuffer` must not be a detached ArrayBuffer'); // step 4 + } + + /* + 5. Let srcBlock be srcBuffer.[[ArrayBufferData]]. + 6. Let targetBlock be targetBuffer.[[ArrayBufferData]]. + 7. Perform CopyDataBlockBytes(targetBlock, 0, srcBlock, srcByteOffset, srcLength). + */ + var targetBuffer = arrayBufferSlice(srcBuffer, srcByteOffset, srcByteOffset + srcLength); // steps 5-7 + OrdinarySetPrototypeOf(targetBuffer, proto); // step 3 + + return targetBuffer; // step 8 +}; diff --git a/node_modules/es-abstract/2025/CodePointAt.js b/node_modules/es-abstract/2025/CodePointAt.js new file mode 100644 index 0000000000000000000000000000000000000000..466d11cb64df54d4dd73c331b83903069323e526 --- /dev/null +++ b/node_modules/es-abstract/2025/CodePointAt.js @@ -0,0 +1,55 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); +var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); + +var UTF16SurrogatePairToCodePoint = require('./UTF16SurrogatePairToCodePoint'); + +var $charAt = callBound('String.prototype.charAt'); +var $charCodeAt = callBound('String.prototype.charCodeAt'); + +// https://262.ecma-international.org/12.0/#sec-codepointat + +module.exports = function CodePointAt(string, position) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + var size = string.length; + if (position < 0 || position >= size) { + throw new $TypeError('Assertion failed: `position` must be >= 0, and < the length of `string`'); + } + var first = $charCodeAt(string, position); + var cp = $charAt(string, position); + var firstIsLeading = isLeadingSurrogate(first); + var firstIsTrailing = isTrailingSurrogate(first); + if (!firstIsLeading && !firstIsTrailing) { + return { + '[[CodePoint]]': cp, + '[[CodeUnitCount]]': 1, + '[[IsUnpairedSurrogate]]': false + }; + } + if (firstIsTrailing || (position + 1 === size)) { + return { + '[[CodePoint]]': cp, + '[[CodeUnitCount]]': 1, + '[[IsUnpairedSurrogate]]': true + }; + } + var second = $charCodeAt(string, position + 1); + if (!isTrailingSurrogate(second)) { + return { + '[[CodePoint]]': cp, + '[[CodeUnitCount]]': 1, + '[[IsUnpairedSurrogate]]': true + }; + } + + return { + '[[CodePoint]]': UTF16SurrogatePairToCodePoint(first, second), + '[[CodeUnitCount]]': 2, + '[[IsUnpairedSurrogate]]': false + }; +}; diff --git a/node_modules/es-abstract/2025/CodePointsToString.js b/node_modules/es-abstract/2025/CodePointsToString.js new file mode 100644 index 0000000000000000000000000000000000000000..c15bcb4c93be5996162f356749622a1d104de7af --- /dev/null +++ b/node_modules/es-abstract/2025/CodePointsToString.js @@ -0,0 +1,25 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var UTF16EncodeCodePoint = require('./UTF16EncodeCodePoint'); +var IsArray = require('./IsArray'); + +var forEach = require('../helpers/forEach'); +var isCodePoint = require('../helpers/isCodePoint'); + +// https://262.ecma-international.org/12.0/#sec-codepointstostring + +module.exports = function CodePointsToString(text) { + if (!IsArray(text)) { + throw new $TypeError('Assertion failed: `text` must be a sequence of Unicode Code Points'); + } + var result = ''; + forEach(text, function (cp) { + if (!isCodePoint(cp)) { + throw new $TypeError('Assertion failed: `text` must be a sequence of Unicode Code Points'); + } + result += UTF16EncodeCodePoint(cp); + }); + return result; +}; diff --git a/node_modules/es-abstract/2025/CompareArrayElements.js b/node_modules/es-abstract/2025/CompareArrayElements.js new file mode 100644 index 0000000000000000000000000000000000000000..12dddc3c08a8d70e2249cf43594a493f384bb242 --- /dev/null +++ b/node_modules/es-abstract/2025/CompareArrayElements.js @@ -0,0 +1,50 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('./Call'); +var IsLessThan = require('./IsLessThan'); +var ToNumber = require('./ToNumber'); +var ToString = require('./ToString'); + +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/14.0/#sec-comparearrayelements + +module.exports = function CompareArrayElements(x, y, compareFn) { + if (typeof compareFn !== 'function' && typeof compareFn !== 'undefined') { + throw new $TypeError('Assertion failed: `compareFn` must be a function or undefined'); + } + + if (typeof x === 'undefined' && typeof y === 'undefined') { + return 0; // step 1 + } + + if (typeof x === 'undefined') { + return 1; // step 2 + } + + if (typeof y === 'undefined') { + return -1; // step 3 + } + + if (typeof compareFn !== 'undefined') { // step 4 + var v = ToNumber(Call(compareFn, void undefined, [x, y])); // step 4.a + if (isNaN(v)) { + return 0; // step 4.b + } + return v; // step 4.c + } + + var xString = ToString(x); // step 5 + var yString = ToString(y); // step 6 + var xSmaller = IsLessThan(xString, yString, true); // step 7 + if (xSmaller) { + return -1; // step 8 + } + var ySmaller = IsLessThan(yString, xString, true); // step 9 + if (ySmaller) { + return 1; // step 10 + } + return 0; // step 11 +}; diff --git a/node_modules/es-abstract/2025/CompareTypedArrayElements.js b/node_modules/es-abstract/2025/CompareTypedArrayElements.js new file mode 100644 index 0000000000000000000000000000000000000000..5c68925f5afdf5f6d0ff417f077d1ec24b297ef0 --- /dev/null +++ b/node_modules/es-abstract/2025/CompareTypedArrayElements.js @@ -0,0 +1,60 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('./Call'); +var SameValue = require('./SameValue'); +var ToNumber = require('./ToNumber'); + +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/14.0/#sec-comparetypedarrayelements + +module.exports = function CompareTypedArrayElements(x, y, compareFn) { + if ((typeof x !== 'number' && typeof x !== 'bigint') || typeof x !== typeof y) { + throw new $TypeError('Assertion failed: `x` and `y` must be either a BigInt or a Number, and both must be the same type'); + } + if (typeof compareFn !== 'function' && typeof compareFn !== 'undefined') { + throw new $TypeError('Assertion failed: `compareFn` must be a function or undefined'); + } + + if (typeof compareFn !== 'undefined') { // step 2 + var v = ToNumber(Call(compareFn, void undefined, [x, y])); // step 2.a + if (isNaN(v)) { + return 0; // step 2.b + } + return v; // step 2.c + } + + var xNaN = isNaN(x); + var yNaN = isNaN(y); + if (xNaN && yNaN) { + return 0; // step 3 + } + + if (xNaN) { + return 1; // step 4 + } + + if (yNaN) { + return -1; // step 5 + } + + if (x < y) { + return -1; // step 6 + } + + if (x > y) { + return 1; // step 7 + } + + if (SameValue(x, -0) && SameValue(y, 0)) { + return -1; // step 8 + } + + if (SameValue(x, 0) && SameValue(y, -0)) { + return 1; // step 9 + } + + return 0; // step 10 +}; diff --git a/node_modules/es-abstract/2025/CompletePropertyDescriptor.js b/node_modules/es-abstract/2025/CompletePropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..8c9e3f441111638a3b3c9fd69857d3da22c779ee --- /dev/null +++ b/node_modules/es-abstract/2025/CompletePropertyDescriptor.js @@ -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; +}; diff --git a/node_modules/es-abstract/2025/CompletionRecord.js b/node_modules/es-abstract/2025/CompletionRecord.js new file mode 100644 index 0000000000000000000000000000000000000000..0a7a6817c87e69578cfbc5546901b1c4dba112a9 --- /dev/null +++ b/node_modules/es-abstract/2025/CompletionRecord.js @@ -0,0 +1,48 @@ +'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 === 'throw') { + throw value; + } + return value; +}; + +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; diff --git a/node_modules/es-abstract/2025/CopyDataProperties.js b/node_modules/es-abstract/2025/CopyDataProperties.js new file mode 100644 index 0000000000000000000000000000000000000000..182720710e8b97fc0ed0f09cb7743aeb4baae938 --- /dev/null +++ b/node_modules/es-abstract/2025/CopyDataProperties.js @@ -0,0 +1,69 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var callBound = require('call-bound'); +var OwnPropertyKeys = require('own-keys'); + +var forEach = require('../helpers/forEach'); +var every = require('../helpers/every'); +var some = require('../helpers/some'); + +var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); + +var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); +var Get = require('./Get'); +var IsArray = require('./IsArray'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var SameValue = require('./SameValue'); +var ToNumber = require('./ToNumber'); +var ToObject = require('./ToObject'); + +var isInteger = require('math-intrinsics/isInteger'); + +// https://262.ecma-international.org/12.0/#sec-copydataproperties + +module.exports = function CopyDataProperties(target, source, excludedItems) { + if (!isObject(target)) { + throw new $TypeError('Assertion failed: "target" must be an Object'); + } + + if (!IsArray(excludedItems) || !every(excludedItems, isPropertyKey)) { + throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); + } + + if (typeof source === 'undefined' || source === null) { + return target; + } + + var from = ToObject(source); + + var keys = OwnPropertyKeys(from); + forEach(keys, function (nextKey) { + var excluded = some(excludedItems, function (e) { + return SameValue(e, nextKey) === true; + }); + /* + var excluded = false; + + forEach(excludedItems, function (e) { + if (SameValue(e, nextKey) === true) { + excluded = true; + } + }); + */ + + var enumerable = $isEnumerable(from, nextKey) || ( + // this is to handle string keys being non-enumerable in older engines + typeof source === 'string' + && nextKey >= 0 + && isInteger(ToNumber(nextKey)) + ); + if (excluded === false && enumerable) { + var propValue = Get(from, nextKey); + CreateDataPropertyOrThrow(target, nextKey, propValue); + } + }); + + return target; +}; diff --git a/node_modules/es-abstract/2025/CreateAsyncFromSyncIterator.js b/node_modules/es-abstract/2025/CreateAsyncFromSyncIterator.js new file mode 100644 index 0000000000000000000000000000000000000000..0291b6a9cd50ee813ce3c727c1cdebf51cb4b4c0 --- /dev/null +++ b/node_modules/es-abstract/2025/CreateAsyncFromSyncIterator.js @@ -0,0 +1,137 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $Promise = GetIntrinsic('%Promise%', true); + +var AsyncFromSyncIteratorContinuation = require('./AsyncFromSyncIteratorContinuation'); +var Call = require('./Call'); +var CreateIteratorResultObject = require('./CreateIteratorResultObject'); +var Get = require('./Get'); +var GetMethod = require('./GetMethod'); +var IteratorNext = require('./IteratorNext'); +var OrdinaryObjectCreate = require('./OrdinaryObjectCreate'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +var SLOT = require('internal-slot'); + +var $AsyncFromSyncIteratorPrototype = GetIntrinsic('%AsyncFromSyncIteratorPrototype%', true) || { + next: function next(value) { + if (!$Promise) { + throw new $SyntaxError('This environment does not support Promises.'); + } + + var O = this; // step 1 + + SLOT.assert(O, '[[SyncIteratorRecord]]'); // step 2 + + var argsLength = arguments.length; + + return new $Promise(function (resolve) { // step 3 + var syncIteratorRecord = SLOT.get(O, '[[SyncIteratorRecord]]'); // step 4 + var result; + if (argsLength > 0) { + result = IteratorNext(syncIteratorRecord, value); // step 5.a + } else { // step 6 + result = IteratorNext(syncIteratorRecord);// step 6.a + } + resolve(AsyncFromSyncIteratorContinuation(result)); // step 8 + }); + }, + 'return': function () { + if (!$Promise) { + throw new $SyntaxError('This environment does not support Promises.'); + } + + var O = this; // step 1 + + SLOT.assert(O, '[[SyncIteratorRecord]]'); // step 2 + + var valueIsPresent = arguments.length > 0; + var value = valueIsPresent ? arguments[0] : void undefined; + + return new $Promise(function (resolve, reject) { // step 3 + var syncIterator = SLOT.get(O, '[[SyncIteratorRecord]]')['[[Iterator]]']; // step 4 + var iteratorReturn = GetMethod(syncIterator, 'return'); // step 5 + + if (typeof iteratorReturn === 'undefined') { // step 7 + var iterResult = CreateIteratorResultObject(value, true); // step 7.a + Call(resolve, undefined, [iterResult]); // step 7.b + return; + } + var result; + if (valueIsPresent) { // step 8 + result = Call(iteratorReturn, syncIterator, [value]); // step 8.a + } else { // step 9 + result = Call(iteratorReturn, syncIterator); // step 9.a + } + if (!isObject(result)) { // step 11 + Call(reject, undefined, [new $TypeError('Iterator `return` method returned a non-object value.')]); // step 11.a + return; + } + + resolve(AsyncFromSyncIteratorContinuation(result)); // step 12 + }); + }, + 'throw': function () { + if (!$Promise) { + throw new $SyntaxError('This environment does not support Promises.'); + } + + var O = this; // step 1 + + SLOT.assert(O, '[[SyncIteratorRecord]]'); // step 2 + + var valueIsPresent = arguments.length > 0; + var value = valueIsPresent ? arguments[0] : void undefined; + + return new $Promise(function (resolve, reject) { // step 3 + var syncIterator = SLOT.get(O, '[[SyncIteratorRecord]]')['[[Iterator]]']; // step 4 + + var throwMethod = GetMethod(syncIterator, 'throw'); // step 5 + + if (typeof throwMethod === 'undefined') { // step 7 + Call(reject, undefined, [value]); // step 7.a + return; + } + + var result; + if (valueIsPresent) { // step 8 + result = Call(throwMethod, syncIterator, [value]); // step 8.a + } else { // step 9 + result = Call(throwMethod, syncIterator); // step 9.a + } + if (!isObject(result)) { // step 11 + Call(reject, undefined, [new $TypeError('Iterator `throw` method returned a non-object value.')]); // step 11.a + return; + } + + resolve(AsyncFromSyncIteratorContinuation(result/* , promiseCapability */)); // step 12 + }); + } +}; + +// https://262.ecma-international.org/16.0/#sec-createasyncfromsynciterator + +module.exports = function CreateAsyncFromSyncIterator(syncIteratorRecord) { + if (!isIteratorRecord(syncIteratorRecord)) { + throw new $TypeError('Assertion failed: `syncIteratorRecord` must be an Iterator Record'); + } + + // var asyncIterator = OrdinaryObjectCreate(%AsyncFromSyncIteratorPrototype%, « [[SyncIteratorRecord]] »); // step 1 + var asyncIterator = OrdinaryObjectCreate($AsyncFromSyncIteratorPrototype); + + SLOT.set(asyncIterator, '[[SyncIteratorRecord]]', syncIteratorRecord); // step 2 + + var nextMethod = Get(asyncIterator, 'next'); // step 3 + + return { // steps 3-4 + '[[Iterator]]': asyncIterator, + '[[NextMethod]]': nextMethod, + '[[Done]]': false + }; +}; diff --git a/node_modules/es-abstract/2025/CreateDataProperty.js b/node_modules/es-abstract/2025/CreateDataProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..897617c0ca1e0365cb55a83855b0983550e3e298 --- /dev/null +++ b/node_modules/es-abstract/2025/CreateDataProperty.js @@ -0,0 +1,25 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); +var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); + +// https://262.ecma-international.org/6.0/#sec-createdataproperty + +module.exports = function CreateDataProperty(O, P, V) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + var newDesc = { + '[[Configurable]]': true, + '[[Enumerable]]': true, + '[[Value]]': V, + '[[Writable]]': true + }; + return OrdinaryDefineOwnProperty(O, P, newDesc); +}; diff --git a/node_modules/es-abstract/2025/CreateDataPropertyOrThrow.js b/node_modules/es-abstract/2025/CreateDataPropertyOrThrow.js new file mode 100644 index 0000000000000000000000000000000000000000..bca5b077405e87db24ab5d01f62ac88244db79ff --- /dev/null +++ b/node_modules/es-abstract/2025/CreateDataPropertyOrThrow.js @@ -0,0 +1,23 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var CreateDataProperty = require('./CreateDataProperty'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// // https://262.ecma-international.org/14.0/#sec-createdatapropertyorthrow + +module.exports = function CreateDataPropertyOrThrow(O, P, V) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + var success = CreateDataProperty(O, P, V); + if (!success) { + throw new $TypeError('unable to create data property'); + } +}; diff --git a/node_modules/es-abstract/2025/CreateHTML.js b/node_modules/es-abstract/2025/CreateHTML.js new file mode 100644 index 0000000000000000000000000000000000000000..25630f43085954792b398e93a870ac78b46e3fc4 --- /dev/null +++ b/node_modules/es-abstract/2025/CreateHTML.js @@ -0,0 +1,27 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +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, '"'); + p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; + } + return p1 + '>' + S + ''; +}; diff --git a/node_modules/es-abstract/2025/CreateIteratorFromClosure.js b/node_modules/es-abstract/2025/CreateIteratorFromClosure.js new file mode 100644 index 0000000000000000000000000000000000000000..b083350c089eb1fcbb11702cc0eaada88b30730d --- /dev/null +++ b/node_modules/es-abstract/2025/CreateIteratorFromClosure.js @@ -0,0 +1,51 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var GeneratorStart = require('./GeneratorStart'); +var IsArray = require('./IsArray'); +var IsCallable = require('./IsCallable'); +var OrdinaryObjectCreate = require('./OrdinaryObjectCreate'); + +var every = require('../helpers/every'); + +var SLOT = require('internal-slot'); +var safeConcat = require('safe-array-concat'); +var isObject = require('es-object-atoms/isObject'); + +var isString = function isString(slot) { + return typeof slot === 'string'; +}; + +// https://262.ecma-international.org/16.0/#sec-createiteratorfromclosure + +module.exports = function CreateIteratorFromClosure(closure, generatorBrand, generatorPrototype) { + if (!IsCallable(closure)) { + throw new $TypeError('`closure` must be a function'); + } + if (typeof generatorBrand !== 'string') { + throw new $TypeError('`generatorBrand` must be a string'); + } + if (!isObject(generatorPrototype)) { + throw new $TypeError('`generatorPrototype` must be an object'); + } + var extraSlots = arguments.length > 3 ? arguments[3] : []; // step 2 + if (arguments.length > 3) { + if (!IsArray(extraSlots) || !every(extraSlots, isString)) { + throw new $TypeError('`extraSlots` must be a List of String internal slot names'); + } + } + var internalSlotsList = safeConcat(extraSlots, ['[[GeneratorContext]]', '[[GeneratorBrand]]', '[[GeneratorState]]']); // step 3 + var generator = OrdinaryObjectCreate(generatorPrototype, internalSlotsList); // steps 4, 6 + SLOT.set(generator, '[[GeneratorBrand]]', generatorBrand); // step 5 + SLOT.set(generator, '[[GeneratorState]]', 'SUSPENDED-START'); // step 6 + + SLOT.assert(closure, '[[Sentinel]]'); // our userland slot + SLOT.set(generator, '[[Sentinel]]', SLOT.get(closure, '[[Sentinel]]')); // our userland slot + SLOT.assert(closure, '[[CloseIfAbrupt]]'); // our second userland slot + SLOT.set(generator, '[[CloseIfAbrupt]]', SLOT.get(closure, '[[CloseIfAbrupt]]')); // our second userland slot + + GeneratorStart(generator, closure); // step 14 + + return generator; // step 16 +}; diff --git a/node_modules/es-abstract/2025/CreateIteratorResultObject.js b/node_modules/es-abstract/2025/CreateIteratorResultObject.js new file mode 100644 index 0000000000000000000000000000000000000000..6918ca3b484832d7be0d216b2c1fa389bafbdafb --- /dev/null +++ b/node_modules/es-abstract/2025/CreateIteratorResultObject.js @@ -0,0 +1,15 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/16.0/#sec-createiterresultobject + +module.exports = function CreateIteratorResultObject(value, done) { + if (typeof done !== 'boolean') { + throw new $TypeError('Assertion failed: Type(done) is not Boolean'); + } + return { + value: value, + done: done + }; +}; diff --git a/node_modules/es-abstract/2025/CreateListFromArrayLike.js b/node_modules/es-abstract/2025/CreateListFromArrayLike.js new file mode 100644 index 0000000000000000000000000000000000000000..b20019b8732f85e39ece6cbaa3081eff108b7655 --- /dev/null +++ b/node_modules/es-abstract/2025/CreateListFromArrayLike.js @@ -0,0 +1,40 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var LengthOfArrayLike = require('./LengthOfArrayLike'); +var ToString = require('./ToString'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/16.0/#sec-createlistfromarraylike + +module.exports = function CreateListFromArrayLike(obj) { + var validElementTypes = arguments.length > 1 + ? arguments[1] + : 'ALL'; // step 1 + + if (validElementTypes !== 'ALL' && validElementTypes !== 'PROPERTY-KEY') { + throw new $TypeError('Assertion failed: `validElementType` must be ~ALL~ or ~PROPERTY-KEY~'); + } + + if (!isObject(obj)) { + throw new $TypeError('Assertion failed: `obj` must be an Object'); // step 2 + } + + var len = LengthOfArrayLike(obj); // step 3 + var list = []; // step 4 + var index = 0; // step 5 + while (index < len) { // step 6 + var indexName = ToString(index); // step 6.a + var next = Get(obj, indexName); // step 6.b + if (validElementTypes === 'PROPERTY-KEY' && !isPropertyKey(next)) { + throw new $TypeError('item ' + indexName + ' is not a valid property key'); // step 6.c + } + list[list.length] = next; // step 6.d + index += 1; // step 6.e + } + return list; // step 7 +}; diff --git a/node_modules/es-abstract/2025/CreateNonEnumerableDataPropertyOrThrow.js b/node_modules/es-abstract/2025/CreateNonEnumerableDataPropertyOrThrow.js new file mode 100644 index 0000000000000000000000000000000000000000..5fc18ac2e0e9e296821337593b2568e4884b605d --- /dev/null +++ b/node_modules/es-abstract/2025/CreateNonEnumerableDataPropertyOrThrow.js @@ -0,0 +1,28 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/13.0/#sec-createnonenumerabledatapropertyorthrow + +module.exports = function CreateNonEnumerableDataPropertyOrThrow(O, P, V) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + + var newDesc = { + '[[Configurable]]': true, + '[[Enumerable]]': false, + '[[Value]]': V, + '[[Writable]]': true + }; + return DefinePropertyOrThrow(O, P, newDesc); +}; diff --git a/node_modules/es-abstract/2025/CreateRegExpStringIterator.js b/node_modules/es-abstract/2025/CreateRegExpStringIterator.js new file mode 100644 index 0000000000000000000000000000000000000000..064f511febf9b4d356a2bf089a43087388e4ca3c --- /dev/null +++ b/node_modules/es-abstract/2025/CreateRegExpStringIterator.js @@ -0,0 +1,101 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var hasSymbols = require('has-symbols')(); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var IteratorPrototype = GetIntrinsic('%IteratorPrototype%', true); + +var AdvanceStringIndex = require('./AdvanceStringIndex'); +var CreateIteratorResultObject = require('./CreateIteratorResultObject'); +var DefineMethodProperty = require('./DefineMethodProperty'); +var Get = require('./Get'); +var OrdinaryObjectCreate = require('./OrdinaryObjectCreate'); +var RegExpExec = require('./RegExpExec'); +var Set = require('./Set'); +var ToLength = require('./ToLength'); +var ToString = require('./ToString'); + +var SLOT = require('internal-slot'); +var setToStringTag = require('es-set-tostringtag'); + +var RegExpStringIterator = function RegExpStringIterator(R, S, global, fullUnicode) { + if (typeof S !== 'string') { + throw new $TypeError('`S` must be a string'); + } + if (typeof global !== 'boolean') { + throw new $TypeError('`global` must be a boolean'); + } + if (typeof fullUnicode !== 'boolean') { + throw new $TypeError('`fullUnicode` must be a boolean'); + } + SLOT.set(this, '[[IteratingRegExp]]', R); + SLOT.set(this, '[[IteratedString]]', S); + SLOT.set(this, '[[Global]]', global); + SLOT.set(this, '[[Unicode]]', fullUnicode); + SLOT.set(this, '[[Done]]', false); +}; + +if (IteratorPrototype) { + RegExpStringIterator.prototype = OrdinaryObjectCreate(IteratorPrototype); +} + +var RegExpStringIteratorNext = function next() { + var O = this; + if (!isObject(O)) { + throw new $TypeError('receiver must be an object'); + } + if ( + !(O instanceof RegExpStringIterator) + || !SLOT.has(O, '[[IteratingRegExp]]') + || !SLOT.has(O, '[[IteratedString]]') + || !SLOT.has(O, '[[Global]]') + || !SLOT.has(O, '[[Unicode]]') + || !SLOT.has(O, '[[Done]]') + ) { + throw new $TypeError('"this" value must be a RegExpStringIterator instance'); + } + if (SLOT.get(O, '[[Done]]')) { + return CreateIteratorResultObject(undefined, true); + } + var R = SLOT.get(O, '[[IteratingRegExp]]'); + var S = SLOT.get(O, '[[IteratedString]]'); + var global = SLOT.get(O, '[[Global]]'); + var fullUnicode = SLOT.get(O, '[[Unicode]]'); + var match = RegExpExec(R, S); + if (match === null) { + SLOT.set(O, '[[Done]]', true); + return CreateIteratorResultObject(undefined, true); + } + if (global) { + var matchStr = ToString(Get(match, '0')); + if (matchStr === '') { + var thisIndex = ToLength(Get(R, 'lastIndex')); + var nextIndex = AdvanceStringIndex(S, thisIndex, fullUnicode); + Set(R, 'lastIndex', nextIndex, true); + } + return CreateIteratorResultObject(match, false); + } + SLOT.set(O, '[[Done]]', true); + return CreateIteratorResultObject(match, false); +}; +DefineMethodProperty(RegExpStringIterator.prototype, 'next', RegExpStringIteratorNext, false); + +if (hasSymbols) { + setToStringTag(RegExpStringIterator.prototype, 'RegExp String Iterator'); + + if (Symbol.iterator && typeof RegExpStringIterator.prototype[Symbol.iterator] !== 'function') { + var iteratorFn = function SymbolIterator() { + return this; + }; + DefineMethodProperty(RegExpStringIterator.prototype, Symbol.iterator, iteratorFn, false); + } +} + +// https://262.ecma-international.org/15.0/#sec-createregexpstringiterator + +module.exports = function CreateRegExpStringIterator(R, S, global, fullUnicode) { + // assert R.global === global && R.unicode === fullUnicode? + return new RegExpStringIterator(R, S, global, fullUnicode); +}; diff --git a/node_modules/es-abstract/2025/DateFromTime.js b/node_modules/es-abstract/2025/DateFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..ec7edcd295f8bdd79eb60e44d8a17bb0b90fd80d --- /dev/null +++ b/node_modules/es-abstract/2025/DateFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/2025/DateString.js b/node_modules/es-abstract/2025/DateString.js new file mode 100644 index 0000000000000000000000000000000000000000..8106127a7d9e7708279035a2488e66cd49bbd5cb --- /dev/null +++ b/node_modules/es-abstract/2025/DateString.js @@ -0,0 +1,27 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; +var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + +var $isNaN = require('math-intrinsics/isNaN'); +var padTimeComponent = require('../helpers/padTimeComponent'); + +var DateFromTime = require('./DateFromTime'); +var MonthFromTime = require('./MonthFromTime'); +var WeekDay = require('./WeekDay'); +var YearFromTime = require('./YearFromTime'); + +// https://262.ecma-international.org/9.0/#sec-datestring + +module.exports = function DateString(tv) { + if (typeof tv !== 'number' || $isNaN(tv)) { + throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); + } + var weekday = weekdays[WeekDay(tv)]; + var month = months[MonthFromTime(tv)]; + var day = padTimeComponent(DateFromTime(tv)); + var year = padTimeComponent(YearFromTime(tv), 4); + return weekday + '\x20' + month + '\x20' + day + '\x20' + year; +}; diff --git a/node_modules/es-abstract/2025/Day.js b/node_modules/es-abstract/2025/Day.js new file mode 100644 index 0000000000000000000000000000000000000000..51d01033c81cbd356ff4da8010c166137364237d --- /dev/null +++ b/node_modules/es-abstract/2025/Day.js @@ -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); +}; diff --git a/node_modules/es-abstract/2025/DayFromYear.js b/node_modules/es-abstract/2025/DayFromYear.js new file mode 100644 index 0000000000000000000000000000000000000000..341bf22a6c19352ec6225944fb49adeed22983e8 --- /dev/null +++ b/node_modules/es-abstract/2025/DayFromYear.js @@ -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); +}; + diff --git a/node_modules/es-abstract/2025/DayWithinYear.js b/node_modules/es-abstract/2025/DayWithinYear.js new file mode 100644 index 0000000000000000000000000000000000000000..4c580940a58c58dcc3f7c2f96c5bca8e8237ebfc --- /dev/null +++ b/node_modules/es-abstract/2025/DayWithinYear.js @@ -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)); +}; diff --git a/node_modules/es-abstract/2025/DaysInYear.js b/node_modules/es-abstract/2025/DaysInYear.js new file mode 100644 index 0000000000000000000000000000000000000000..7116c69027022323e41130f384db7cc3d35709f9 --- /dev/null +++ b/node_modules/es-abstract/2025/DaysInYear.js @@ -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; +}; diff --git a/node_modules/es-abstract/2025/DefineMethodProperty.js b/node_modules/es-abstract/2025/DefineMethodProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..f6eb168d4edebc7af367a994242bdd56f5f240e9 --- /dev/null +++ b/node_modules/es-abstract/2025/DefineMethodProperty.js @@ -0,0 +1,42 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); +var IsExtensible = require('./IsExtensible'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/13.0/#sec-definemethodproperty + +module.exports = function DefineMethodProperty(homeObject, key, closure, enumerable) { + if (!isObject(homeObject)) { + throw new $TypeError('Assertion failed: `homeObject` is not an Object'); + } + if (!isPropertyKey(key)) { + throw new $TypeError('Assertion failed: `key` is not a Property Key or a Private Name'); + } + if (typeof closure !== 'function') { + throw new $TypeError('Assertion failed: `closure` is not a function'); + } + if (typeof enumerable !== 'boolean') { + throw new $TypeError('Assertion failed: `enumerable` is not a Boolean'); + } + + // 1. Assert: homeObject is an ordinary, extensible object with no non-configurable properties. + if (!IsExtensible(homeObject)) { + throw new $TypeError('Assertion failed: `homeObject` is not an ordinary, extensible object, with no non-configurable properties'); + } + + // 2. If key is a Private Name, then + // a. Return PrivateElement { [[Key]]: key, [[Kind]]: method, [[Value]]: closure }. + // 3. Else, + var desc = { // step 3.a + '[[Value]]': closure, + '[[Writable]]': true, + '[[Enumerable]]': enumerable, + '[[Configurable]]': true + }; + DefinePropertyOrThrow(homeObject, key, desc); // step 3.b +}; diff --git a/node_modules/es-abstract/2025/DefinePropertyOrThrow.js b/node_modules/es-abstract/2025/DefinePropertyOrThrow.js new file mode 100644 index 0000000000000000000000000000000000000000..ff6683c3dc954ec27c072032bfcc0cfd70936587 --- /dev/null +++ b/node_modules/es-abstract/2025/DefinePropertyOrThrow.js @@ -0,0 +1,39 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyDescriptor = require('../helpers/records/property-descriptor'); +var DefineOwnProperty = require('../helpers/DefineOwnProperty'); + +var FromPropertyDescriptor = require('./FromPropertyDescriptor'); +var IsDataDescriptor = require('./IsDataDescriptor'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var SameValue = require('./SameValue'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-definepropertyorthrow + +module.exports = function DefinePropertyOrThrow(O, P, desc) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + + 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 + ); +}; diff --git a/node_modules/es-abstract/2025/DeletePropertyOrThrow.js b/node_modules/es-abstract/2025/DeletePropertyOrThrow.js new file mode 100644 index 0000000000000000000000000000000000000000..8841fda81f7663673367bdfc1af99794fb0ef747 --- /dev/null +++ b/node_modules/es-abstract/2025/DeletePropertyOrThrow.js @@ -0,0 +1,25 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/6.0/#sec-deletepropertyorthrow + +module.exports = function DeletePropertyOrThrow(O, P) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + + // eslint-disable-next-line no-param-reassign + var success = delete O[P]; + if (!success) { + throw new $TypeError('Attempt to delete property failed.'); + } + return success; +}; diff --git a/node_modules/es-abstract/2025/DetachArrayBuffer.js b/node_modules/es-abstract/2025/DetachArrayBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..6ded9de5652c4483ba14060ba82380eb3e63d92a --- /dev/null +++ b/node_modules/es-abstract/2025/DetachArrayBuffer.js @@ -0,0 +1,46 @@ +'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; +} catch (e) { /**/ } + +// https://262.ecma-international.org/9.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'); + } + + // commented out since there's no way to set or access this key + // var key = arguments.length > 1 ? arguments[1] : void undefined; + + // if (!SameValue(arrayBuffer[[ArrayBufferDetachKey]], key)) { + // throw new $TypeError('Assertion failed: `key` must be the value of the [[ArrayBufferDetachKey]] internal slot of `arrayBuffer`'); + // } + + 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; +}; diff --git a/node_modules/es-abstract/2025/EncodeForRegExpEscape.js b/node_modules/es-abstract/2025/EncodeForRegExpEscape.js new file mode 100644 index 0000000000000000000000000000000000000000..53bfd02f295d13a546379e14d106a05adb0ebbc6 --- /dev/null +++ b/node_modules/es-abstract/2025/EncodeForRegExpEscape.js @@ -0,0 +1,74 @@ +'use strict'; + +var NumberToString = require('./Number/toString'); +var StringIndexOf = require('./StringIndexOf'); +var StringPad = require('./StringPad'); +// var StringToCodePoints = require('./StringToCodePoints'); +var UnicodeEscape = require('./UnicodeEscape'); +var UTF16EncodeCodePoint = require('./UTF16EncodeCodePoint'); + +var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); +var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); + +var $TypeError = require('es-errors/type'); + +var isCodePoint = require('../helpers/isCodePoint'); +var forEach = require('for-each'); +var regexTester = require('safe-regex-test'); + +var isWhiteSpace = regexTester(/^\s$/); +var isLineTerminator = regexTester(/^[\n\r\u2028\u2029]$/); + +// var punctuators = "(){}[]|,.?*+-^$=<>/#&!%:;@~'`\"\\"; // step 1 +var syntaxCharacter = '^$\\.*+?()[]{}|'; + +var otherPunctuators = ",-=<>#&!%:;@~'`\""; // step 3 +// var toEscape = StringToCodePoints(otherPunctuators); // step 4 + +var table64 = { + '\u0009': 't', + '\u000a': 'n', + '\u000b': 'v', + '\u000c': 'f', + '\u000d': 'r', + __proto__: null +}; + +module.exports = function EncodeForRegExpEscape(c) { + if (!isCodePoint(c)) { + throw new $TypeError('Assertion failed: `c` must be a valid Unicode code point'); + } + + var encoded = UTF16EncodeCodePoint(c); + + if (StringIndexOf(syntaxCharacter, encoded, 0) > -1 || encoded === '\u002F') { // step 1 + return '\\' + encoded; // step 1.a + } else if (encoded in table64) { // step 2 + return '\\' + table64[encoded]; // step 2.a + } + + if ( + StringIndexOf(otherPunctuators, encoded, 0) > -1 + || isWhiteSpace(encoded) + || isLineTerminator(encoded) + || isLeadingSurrogate(c) + || isTrailingSurrogate(c) + ) { // step 5 + if (c < 0xFF) { // step 5.a + var hex = NumberToString(c, 16); // step 5.a.i + return '\\x' + StringPad(hex, 2, '0', 'START'); // step 5.a.ii + } + + var escaped = ''; // step 5.b + + var codeUnits = encoded; // step 5.c + + forEach(codeUnits, function (cu) { // step 5.d + escaped += UnicodeEscape(cu); // step 5.d.i + }); + + return escaped; // step 5.e + } + + return encoded; // step 6 +}; diff --git a/node_modules/es-abstract/2025/EnumerableOwnProperties.js b/node_modules/es-abstract/2025/EnumerableOwnProperties.js new file mode 100644 index 0000000000000000000000000000000000000000..cd606db53067db473c794b383a59a2d967897fd9 --- /dev/null +++ b/node_modules/es-abstract/2025/EnumerableOwnProperties.js @@ -0,0 +1,36 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var objectKeys = require('object-keys'); +var safePushApply = require('safe-push-apply'); +var callBound = require('call-bound'); + +var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); + +var forEach = require('../helpers/forEach'); + +// https://262.ecma-international.org/14.0/#sec-enumerableownproperties + +module.exports = function EnumerableOwnProperties(O, kind) { + if (!isObject(O)) { + 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)) { + safePushApply(results, [ + kind === 'value' ? O[key] : [key, O[key]] + ]); + } + }); + return results; + } + throw new $TypeError('Assertion failed: "kind" is not "key", "value", or "key+value": ' + kind); +}; diff --git a/node_modules/es-abstract/2025/FindViaPredicate.js b/node_modules/es-abstract/2025/FindViaPredicate.js new file mode 100644 index 0000000000000000000000000000000000000000..f7bdc3be2ffa5dfd907056d83d9a01a147dd1d03 --- /dev/null +++ b/node_modules/es-abstract/2025/FindViaPredicate.js @@ -0,0 +1,43 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); +var Get = require('./Get'); +var ToBoolean = require('./ToBoolean'); +var IsCallable = require('./IsCallable'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/15.0/#sec-findviapredicate + +module.exports = function FindViaPredicate(O, len, direction, predicate, thisArg) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + if (!isInteger(len) || len < 0) { + throw new $TypeError('Assertion failed: len must be a non-negative integer'); + } + if (direction !== 'ascending' && direction !== 'descending' && direction !== 'DESCENDING' && direction !== 'ASCENDING') { + throw new $TypeError('Assertion failed: direction must be ~ASCENDING~ or ~DESCENDING~'); + } + + if (!IsCallable(predicate)) { + throw new $TypeError('predicate must be callable'); // step 1 + } + + for ( // steps 2-4 + var k = direction === 'ascending' || direction === 'ASCENDING' ? 0 : len - 1; + direction === 'ascending' || direction === 'ASCENDING' ? k < len : k >= 0; + k += 1 + ) { + var Pk = ToString(k); // step 4.a + var kValue = Get(O, Pk); // step 4.c + var testResult = Call(predicate, thisArg, [kValue, k, O]); // step 4.d + if (ToBoolean(testResult)) { + return { '[[Index]]': k, '[[Value]]': kValue }; // step 4.e + } + } + return { '[[Index]]': -1, '[[Value]]': void undefined }; // step 5 +}; diff --git a/node_modules/es-abstract/2025/FlattenIntoArray.js b/node_modules/es-abstract/2025/FlattenIntoArray.js new file mode 100644 index 0000000000000000000000000000000000000000..78dc57c8cc90f0c0a60adb32fc7f41c230c4a591 --- /dev/null +++ b/node_modules/es-abstract/2025/FlattenIntoArray.js @@ -0,0 +1,55 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger'); + +var Call = require('./Call'); +var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); +var Get = require('./Get'); +var HasProperty = require('./HasProperty'); +var IsArray = require('./IsArray'); +var LengthOfArrayLike = require('./LengthOfArrayLike'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/11.0/#sec-flattenintoarray + +module.exports = function FlattenIntoArray(target, source, sourceLen, start, depth) { + var mapperFunction; + if (arguments.length > 5) { + mapperFunction = arguments[5]; + } + + var targetIndex = start; + var sourceIndex = 0; + while (sourceIndex < sourceLen) { + var P = ToString(sourceIndex); + var exists = HasProperty(source, P); + if (exists === true) { + var element = Get(source, P); + if (typeof mapperFunction !== 'undefined') { + if (arguments.length <= 6) { + throw new $TypeError('Assertion failed: thisArg is required when mapperFunction is provided'); + } + element = Call(mapperFunction, arguments[6], [element, sourceIndex, source]); + } + var shouldFlatten = false; + if (depth > 0) { + shouldFlatten = IsArray(element); + } + if (shouldFlatten) { + var elementLen = LengthOfArrayLike(element); + targetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1); + } else { + if (targetIndex >= MAX_SAFE_INTEGER) { + throw new $TypeError('index too large'); + } + CreateDataPropertyOrThrow(target, ToString(targetIndex), element); + targetIndex += 1; + } + } + sourceIndex += 1; + } + + return targetIndex; +}; diff --git a/node_modules/es-abstract/2025/FromPropertyDescriptor.js b/node_modules/es-abstract/2025/FromPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..45b6379f1214c415e1e43b855db01f18b3566cba --- /dev/null +++ b/node_modules/es-abstract/2025/FromPropertyDescriptor.js @@ -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); +}; diff --git a/node_modules/es-abstract/2025/GeneratorResume.js b/node_modules/es-abstract/2025/GeneratorResume.js new file mode 100644 index 0000000000000000000000000000000000000000..d5ff3286b273bddc83154702c96285350d15dd6f --- /dev/null +++ b/node_modules/es-abstract/2025/GeneratorResume.js @@ -0,0 +1,29 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CreateIteratorResultObject = require('./CreateIteratorResultObject'); +var GeneratorValidate = require('./GeneratorValidate'); + +var SLOT = require('internal-slot'); + +// https://262.ecma-international.org/16.0/#sec-generatorresume + +module.exports = function GeneratorResume(generator, value, generatorBrand) { + var state = GeneratorValidate(generator, generatorBrand); // step 1 + if (state === 'COMPLETED') { + return CreateIteratorResultObject(void undefined, true); // step 2 + } + + if (state !== 'SUSPENDED-START' && state !== 'SUSPENDED-YIELD') { + throw new $TypeError('Assertion failed: generator state is unexpected: ' + state); // step 3 + } + + var genContext = SLOT.get(generator, '[[GeneratorContext]]'); + + SLOT.set(generator, '[[GeneratorState]]', 'EXECUTING'); // step 7 + + var result = genContext(value); // steps 5-6, 8-10 + + return result; +}; diff --git a/node_modules/es-abstract/2025/GeneratorResumeAbrupt.js b/node_modules/es-abstract/2025/GeneratorResumeAbrupt.js new file mode 100644 index 0000000000000000000000000000000000000000..1a18c9751f9d5e8cef1e621939181ecb9c5c08c3 --- /dev/null +++ b/node_modules/es-abstract/2025/GeneratorResumeAbrupt.js @@ -0,0 +1,55 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CompletionRecord = require('./CompletionRecord'); +var CreateIteratorResultObject = require('./CreateIteratorResultObject'); +var GeneratorValidate = require('./GeneratorValidate'); +var NormalCompletion = require('./NormalCompletion'); + +var SLOT = require('internal-slot'); + +// https://262.ecma-international.org/16.0/#sec-generatorresumeabrupt + +module.exports = function GeneratorResumeAbrupt(generator, abruptCompletion, generatorBrand) { + if ( + !(abruptCompletion instanceof CompletionRecord) + || (abruptCompletion.type() !== 'return' && abruptCompletion.type() !== 'throw') + ) { + throw new $TypeError('Assertion failed: abruptCompletion must be a `return` or `throw` Completion Record'); + } + + var state = GeneratorValidate(generator, generatorBrand); // step 1 + + if (state === 'SUSPENDED-START') { // step 2 + SLOT.set(generator, '[[GeneratorState]]', 'COMPLETED'); // step 2.a + SLOT.set(generator, '[[GeneratorContext]]', null); // step 2.b + state = 'COMPLETED'; // step 2.c + } + + var value = abruptCompletion.value(); + + if (state === 'COMPLETED') { // step 3 + if (abruptCompletion.type() === 'return') { // step 3.a + return CreateIteratorResultObject(value, true); // step 3.a.i + } + return abruptCompletion['?'](); // step 3.b + } + + if (state !== 'SUSPENDED-YIELD') { + throw new $TypeError('Assertion failed: generator state is unexpected: ' + state); // step 4 + } + + var genContext = SLOT.get(generator, '[[GeneratorContext]]'); // step 5 + + SLOT.set(generator, '[[GeneratorState]]', 'EXECUTING'); // step 8 + + if (abruptCompletion.type() === 'return') { + // due to representing `GeneratorContext` as a function, we can't safely re-invoke it, so we can't support sending it a return completion + return CreateIteratorResultObject(SLOT.get(generator, '[[CloseIfAbrupt]]')(NormalCompletion(value)), true); + } + + var result = genContext(value); // steps 6-7, 9-11 + + return result; // step 12 +}; diff --git a/node_modules/es-abstract/2025/GeneratorStart.js b/node_modules/es-abstract/2025/GeneratorStart.js new file mode 100644 index 0000000000000000000000000000000000000000..142336fa4ab693eff05b78177f79e41e5f56421c --- /dev/null +++ b/node_modules/es-abstract/2025/GeneratorStart.js @@ -0,0 +1,46 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CreateIteratorResultObject = require('./CreateIteratorResultObject'); +var IsCallable = require('./IsCallable'); + +var SLOT = require('internal-slot'); +var isObject = require('es-object-atoms/isObject'); + +// https://262.ecma-international.org/16.0/#sec-generatorstart + +module.exports = function GeneratorStart(generator, closure) { + SLOT.assert(generator, '[[GeneratorState]]'); + SLOT.assert(generator, '[[GeneratorContext]]'); + SLOT.assert(generator, '[[GeneratorBrand]]'); + SLOT.assert(generator, '[[Sentinel]]'); // our userland slot + SLOT.assert(generator, '[[CloseIfAbrupt]]'); // our second userland slot + + if (!IsCallable(closure) || closure.length !== 0) { + throw new $TypeError('`closure` must be a function that takes no arguments'); + } + + var sentinel = SLOT.get(closure, '[[Sentinel]]'); + if (!isObject(sentinel)) { + throw new $TypeError('`closure.[[Sentinel]]` must be an object'); + } + SLOT.set(generator, '[[GeneratorContext]]', function () { // steps 2-5 + try { + var result = closure(); + if (result === sentinel) { + SLOT.set(generator, '[[GeneratorState]]', 'COMPLETED'); + SLOT.set(generator, '[[GeneratorContext]]', null); + return CreateIteratorResultObject(void undefined, true); + } + SLOT.set(generator, '[[GeneratorState]]', 'SUSPENDED-YIELD'); + return CreateIteratorResultObject(result, false); + } catch (e) { + SLOT.set(generator, '[[GeneratorState]]', 'COMPLETED'); + SLOT.set(generator, '[[GeneratorContext]]', null); + throw e; + } + }); + + SLOT.set(generator, '[[GeneratorState]]', 'SUSPENDED-START'); // step 6 +}; diff --git a/node_modules/es-abstract/2025/GeneratorValidate.js b/node_modules/es-abstract/2025/GeneratorValidate.js new file mode 100644 index 0000000000000000000000000000000000000000..7ecb5ebe97c951911c577822fd4e0900536196ef --- /dev/null +++ b/node_modules/es-abstract/2025/GeneratorValidate.js @@ -0,0 +1,24 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var SLOT = require('internal-slot'); + +// https://262.ecma-international.org/16.0/#sec-generatorvalidate + +module.exports = function GeneratorValidate(generator, generatorBrand) { + SLOT.assert(generator, '[[GeneratorState]]'); // step 1 + SLOT.assert(generator, '[[GeneratorBrand]]'); // step 2 + + var brand = SLOT.get(generator, '[[GeneratorBrand]]'); + if (brand !== generatorBrand) { + throw new $TypeError('Assertion failed: generator brand is unexpected: ' + brand); + } + SLOT.assert(generator, '[[GeneratorContext]]'); // step 4 + var state = SLOT.get(generator, '[[GeneratorState]]'); // step 5 + if (state === 'EXECUTING') { + throw new $TypeError('generator is executing'); + } + + return state; // step 7 +}; diff --git a/node_modules/es-abstract/2025/Get.js b/node_modules/es-abstract/2025/Get.js new file mode 100644 index 0000000000000000000000000000000000000000..42f7a14d853e05735d4166708590df2743cfa74c --- /dev/null +++ b/node_modules/es-abstract/2025/Get.js @@ -0,0 +1,24 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var inspect = require('object-inspect'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +var isObject = require('es-object-atoms/isObject'); + +// https://262.ecma-international.org/6.0/#sec-get-o-p + +module.exports = function Get(O, P) { + // 7.3.1.1 + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + // 7.3.1.2 + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key, got ' + inspect(P)); + } + // 7.3.1.3 + return O[P]; +}; diff --git a/node_modules/es-abstract/2025/GetArrayBufferMaxByteLengthOption.js b/node_modules/es-abstract/2025/GetArrayBufferMaxByteLengthOption.js new file mode 100644 index 0000000000000000000000000000000000000000..f6d4ec018c0d12baa5973132f8682661849db44f --- /dev/null +++ b/node_modules/es-abstract/2025/GetArrayBufferMaxByteLengthOption.js @@ -0,0 +1,22 @@ +'use strict'; + +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var ToIndex = require('./ToIndex'); + +// https://262.ecma-international.org/15.0/#sec-getarraybuffermaxbytelengthoption + +module.exports = function GetArrayBufferMaxByteLengthOption(options) { + if (!isObject(options)) { + return 'EMPTY'; // step 1 + } + + var maxByteLength = Get(options, 'maxByteLength'); // step 2 + + if (typeof maxByteLength === 'undefined') { + return 'EMPTY'; // step 3 + } + + return ToIndex(maxByteLength); // step 4 +}; diff --git a/node_modules/es-abstract/2025/GetGlobalObject.js b/node_modules/es-abstract/2025/GetGlobalObject.js new file mode 100644 index 0000000000000000000000000000000000000000..0541ede0c48889fefe9a137e0e37a2e13573c091 --- /dev/null +++ b/node_modules/es-abstract/2025/GetGlobalObject.js @@ -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(); +}; diff --git a/node_modules/es-abstract/2025/GetIterator.js b/node_modules/es-abstract/2025/GetIterator.js new file mode 100644 index 0000000000000000000000000000000000000000..fc2a4bd1a744b2ac1453c46caf5f90ccf78a6ac9 --- /dev/null +++ b/node_modules/es-abstract/2025/GetIterator.js @@ -0,0 +1,53 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $asyncIterator = GetIntrinsic('%Symbol.asyncIterator%', true); + +var inspect = require('object-inspect'); +var hasSymbols = require('has-symbols')(); + +var AdvanceStringIndex = require('./AdvanceStringIndex'); +var CreateAsyncFromSyncIterator = require('./CreateAsyncFromSyncIterator'); +var GetIteratorFromMethod = require('./GetIteratorFromMethod'); +var GetMethod = require('./GetMethod'); + +var ES = { + AdvanceStringIndex: AdvanceStringIndex, + GetMethod: GetMethod +}; + +var getIteratorMethod = require('../helpers/getIteratorMethod'); + +// https://262.ecma-international.org/14.0/#sec-getiterator + +module.exports = function GetIterator(obj, kind) { + if (kind !== 'SYNC' && kind !== 'ASYNC') { + throw new $TypeError("Assertion failed: `kind` must be one of 'sync' or 'async', got " + inspect(kind)); + } + + var method; + if (kind === 'ASYNC') { // step 1 + if (hasSymbols && $asyncIterator) { + method = GetMethod(obj, $asyncIterator); // step 1.a + } + } + if (typeof method === 'undefined') { // step 1.b + // var syncMethod = GetMethod(obj, $iterator); // step 1.b.i + var syncMethod = getIteratorMethod(ES, obj); + if (kind === 'ASYNC') { + if (typeof syncMethod === 'undefined') { + throw new $TypeError('iterator method is `undefined`'); // step 1.b.ii + } + var syncIteratorRecord = GetIteratorFromMethod(obj, syncMethod); // step 1.b.iii + return CreateAsyncFromSyncIterator(syncIteratorRecord); // step 1.b.iv + } + method = syncMethod; // step 2, kind of + } + + if (typeof method === 'undefined') { + throw new $TypeError('iterator method is `undefined`'); // step 3 + } + return GetIteratorFromMethod(obj, method); // step 4 +}; diff --git a/node_modules/es-abstract/2025/GetIteratorDirect.js b/node_modules/es-abstract/2025/GetIteratorDirect.js new file mode 100644 index 0000000000000000000000000000000000000000..b9673e8ea0866bcb730dc83b5ae88505f37e9506 --- /dev/null +++ b/node_modules/es-abstract/2025/GetIteratorDirect.js @@ -0,0 +1,24 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); + +// https://262.ecma-international.org/16.0/#sec-getiteratordirect + +module.exports = function GetIteratorDirect(obj) { + if (!isObject(obj)) { + throw new $TypeError('Assertion failed: `obj` must be an Object'); + } + + var nextMethod = Get(obj, 'next'); // step 1 + + var iteratorRecord = { + '[[Iterator]]': obj, + '[[NextMethod]]': nextMethod, + '[[Done]]': false + }; // step 2 + + return iteratorRecord; // step 3 +}; diff --git a/node_modules/es-abstract/2025/GetIteratorFlattenable.js b/node_modules/es-abstract/2025/GetIteratorFlattenable.js new file mode 100644 index 0000000000000000000000000000000000000000..e7f8438e0dc0b022a712f41643b478016c8731e4 --- /dev/null +++ b/node_modules/es-abstract/2025/GetIteratorFlattenable.js @@ -0,0 +1,48 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var AdvanceStringIndex = require('./AdvanceStringIndex'); +var Call = require('./Call'); +var GetIteratorDirect = require('./GetIteratorDirect'); +var GetMethod = require('./GetMethod'); +var IsArray = require('./IsArray'); + +var getIteratorMethod = require('../helpers/getIteratorMethod'); + +// https://262.ecma-international.org/16.0/#sec-getiteratorflattenable + +module.exports = function GetIteratorFlattenable(obj, primitiveHandling) { + if (primitiveHandling !== 'REJECT-PRIMITIVES' && primitiveHandling !== 'ITERATE-STRING-PRIMITIVES') { + throw new $TypeError('Assertion failed: `stringHandling` must be "REJECT-PRIMITIVES" or "ITERATE-STRING-PRIMITIVES"'); + } + + if (!isObject(obj)) { + if (primitiveHandling === 'REJECT-PRIMITIVES' || typeof obj !== 'string') { + throw new $TypeError('obj must be an Object'); // step 1.a + } + } + + // var method = GetMethod(obj, Symbol.iterator); // step 2 + var method = getIteratorMethod( + { + AdvanceStringIndex: AdvanceStringIndex, + GetMethod: GetMethod, + IsArray: IsArray + }, + obj + ); + + var iterator; + if (typeof method === 'undefined') { // step 3 + iterator = obj; // step 3.a + } else { // step 4 + iterator = Call(method, obj); // step 4.a + } + + if (!isObject(iterator)) { + throw new $TypeError('iterator must be an Object'); // step 5 + } + return GetIteratorDirect(iterator); // step 6 +}; diff --git a/node_modules/es-abstract/2025/GetIteratorFromMethod.js b/node_modules/es-abstract/2025/GetIteratorFromMethod.js new file mode 100644 index 0000000000000000000000000000000000000000..470c6c04462c20dc9343b99aba24e9cd22bc6ef6 --- /dev/null +++ b/node_modules/es-abstract/2025/GetIteratorFromMethod.js @@ -0,0 +1,28 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); + +// https://262.ecma-international.org/15.0/#sec-getiteratorfrommethod + +module.exports = function GetIteratorFromMethod(obj, method) { + if (!IsCallable(method)) { + throw new $TypeError('method must be a function'); + } + + var iterator = Call(method, obj); // step 1 + if (!isObject(iterator)) { + throw new $TypeError('iterator must return an object'); // step 2 + } + + var nextMethod = Get(iterator, 'next'); // step 3 + return { // steps 4-5 + '[[Iterator]]': iterator, + '[[NextMethod]]': nextMethod, + '[[Done]]': false + }; +}; diff --git a/node_modules/es-abstract/2025/GetMatchIndexPair.js b/node_modules/es-abstract/2025/GetMatchIndexPair.js new file mode 100644 index 0000000000000000000000000000000000000000..76cda5d841f9ac233954d221eee40c7a06bacc3a --- /dev/null +++ b/node_modules/es-abstract/2025/GetMatchIndexPair.js @@ -0,0 +1,24 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isMatchRecord = require('../helpers/records/match-record'); + +// https://262.ecma-international.org/13.0/#sec-getmatchindexpair + +module.exports = function GetMatchIndexPair(S, match) { + if (typeof S !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + if (!isMatchRecord(match)) { + throw new $TypeError('Assertion failed: `match` must be a Match Record'); + } + + if (!(match['[[StartIndex]]'] <= S.length)) { + throw new $TypeError('`match` [[StartIndex]] must be a non-negative integer <= the length of S'); + } + if (!(match['[[EndIndex]]'] <= S.length)) { + throw new $TypeError('`match` [[EndIndex]] must be an integer between [[StartIndex]] and the length of S, inclusive'); + } + return [match['[[StartIndex]]'], match['[[EndIndex]]']]; +}; diff --git a/node_modules/es-abstract/2025/GetMatchString.js b/node_modules/es-abstract/2025/GetMatchString.js new file mode 100644 index 0000000000000000000000000000000000000000..7fddd4ea202f7482baaa85b582a8fcbe069caa12 --- /dev/null +++ b/node_modules/es-abstract/2025/GetMatchString.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var substring = require('./substring'); + +var isMatchRecord = require('../helpers/records/match-record'); + +// https://262.ecma-international.org/13.0/#sec-getmatchstring + +module.exports = function GetMatchString(S, match) { + if (typeof S !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + if (!isMatchRecord(match)) { + throw new $TypeError('Assertion failed: `match` must be a Match Record'); + } + + if (!(match['[[StartIndex]]'] <= S.length)) { + throw new $TypeError('`match` [[StartIndex]] must be a non-negative integer <= the length of S'); + } + if (!(match['[[EndIndex]]'] <= S.length)) { + throw new $TypeError('`match` [[EndIndex]] must be an integer between [[StartIndex]] and the length of S, inclusive'); + } + return substring(S, match['[[StartIndex]]'], match['[[EndIndex]]']); +}; diff --git a/node_modules/es-abstract/2025/GetMethod.js b/node_modules/es-abstract/2025/GetMethod.js new file mode 100644 index 0000000000000000000000000000000000000000..e28bb1501fc8e4d4a67250c5110cba73bbcba385 --- /dev/null +++ b/node_modules/es-abstract/2025/GetMethod.js @@ -0,0 +1,34 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var GetV = require('./GetV'); +var IsCallable = require('./IsCallable'); +var isPropertyKey = require('../helpers/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: P is not a Property Key'); + } + + // 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; +}; diff --git a/node_modules/es-abstract/2025/GetNamedTimeZoneEpochNanoseconds.js b/node_modules/es-abstract/2025/GetNamedTimeZoneEpochNanoseconds.js new file mode 100644 index 0000000000000000000000000000000000000000..6577062583d1a8073c49a5716d7f02916c2a373a --- /dev/null +++ b/node_modules/es-abstract/2025/GetNamedTimeZoneEpochNanoseconds.js @@ -0,0 +1,72 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var GetUTCEpochNanoseconds = require('./GetUTCEpochNanoseconds'); + +var isInteger = require('math-intrinsics/isInteger'); + +// https://262.ecma-international.org/14.0/#sec-getnamedtimezoneepochnanoseconds + +// eslint-disable-next-line max-params +module.exports = function GetNamedTimeZoneEpochNanoseconds( + timeZoneIdentifier, + year, + month, + day, + hour, + minute, + second, + millisecond, + microsecond, + nanosecond +) { + if (typeof timeZoneIdentifier !== 'string') { + throw new $TypeError('Assertion failed: `timeZoneIdentifier` must be a string'); + } + if (!isInteger(year)) { + throw new $TypeError('Assertion failed: `year` must be an integral number'); + } + if (!isInteger(month) || month < 1 || month > 12) { + throw new $TypeError('Assertion failed: `month` must be an integral number between 1 and 12, inclusive'); + } + if (!isInteger(day) || day < 1 || day > 31) { + throw new $TypeError('Assertion failed: `day` must be an integral number between 1 and 31, inclusive'); + } + if (!isInteger(hour) || hour < 0 || hour > 23) { + throw new $TypeError('Assertion failed: `hour` must be an integral number between 0 and 23, inclusive'); + } + if (!isInteger(minute) || minute < 0 || minute > 59) { + throw new $TypeError('Assertion failed: `minute` must be an integral number between 0 and 59, inclusive'); + } + if (!isInteger(second) || second < 0 || second > 999) { + throw new $TypeError('Assertion failed: `second` must be an integral number between 0 and 999, inclusive'); + } + if (!isInteger(millisecond) || millisecond < 0 || millisecond > 999) { + throw new $TypeError('Assertion failed: `millisecond` must be an integral number between 0 and 999, inclusive'); + } + if (!isInteger(microsecond) || microsecond < 0 || microsecond > 999) { + throw new $TypeError('Assertion failed: `microsecond` must be an integral number between 0 and 999, inclusive'); + } + if (!isInteger(nanosecond) || nanosecond < 0 || nanosecond > 999) { + throw new $TypeError('Assertion failed: `nanosecond` must be an integral number between 0 and 999, inclusive'); + } + + if (timeZoneIdentifier !== 'UTC') { + throw new $TypeError('Assertion failed: only UTC time zone is supported'); // step 1 + } + + var epochNanoseconds = GetUTCEpochNanoseconds( + year, + month, + day, + hour, + minute, + second, + millisecond, + microsecond, + nanosecond + ); // step 2 + + return [epochNanoseconds]; // step 3 +}; diff --git a/node_modules/es-abstract/2025/GetOwnPropertyKeys.js b/node_modules/es-abstract/2025/GetOwnPropertyKeys.js new file mode 100644 index 0000000000000000000000000000000000000000..e9b50d744a5fdf42221ad18e6674e777fa3b0a47 --- /dev/null +++ b/node_modules/es-abstract/2025/GetOwnPropertyKeys.js @@ -0,0 +1,30 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var hasSymbols = require('has-symbols')(); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true); +var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%', true); +var keys = require('object-keys'); + +// https://262.ecma-international.org/6.0/#sec-getownpropertykeys + +module.exports = function GetOwnPropertyKeys(O, Type) { + if (!isObject(O)) { + 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"`'); +}; diff --git a/node_modules/es-abstract/2025/GetPromiseResolve.js b/node_modules/es-abstract/2025/GetPromiseResolve.js new file mode 100644 index 0000000000000000000000000000000000000000..7c9d9a945a0c268fa7558eec169a2cee0e903b86 --- /dev/null +++ b/node_modules/es-abstract/2025/GetPromiseResolve.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); +var IsConstructor = require('./IsConstructor'); + +// https://262.ecma-international.org/12.0/#sec-getpromiseresolve + +module.exports = function GetPromiseResolve(promiseConstructor) { + if (!IsConstructor(promiseConstructor)) { + throw new $TypeError('Assertion failed: `promiseConstructor` must be a constructor'); + } + var promiseResolve = Get(promiseConstructor, 'resolve'); + if (IsCallable(promiseResolve) === false) { + throw new $TypeError('`resolve` method is not callable'); + } + return promiseResolve; +}; diff --git a/node_modules/es-abstract/2025/GetPrototypeFromConstructor.js b/node_modules/es-abstract/2025/GetPrototypeFromConstructor.js new file mode 100644 index 0000000000000000000000000000000000000000..687f6ef200fb11a3dc97a27533d15430c305fb3b --- /dev/null +++ b/node_modules/es-abstract/2025/GetPrototypeFromConstructor.js @@ -0,0 +1,33 @@ +'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 isObject = require('es-object-atoms/isObject'); + +// 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 (!isObject(intrinsic)) { + 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 (!isObject(proto)) { + if (!(constructor instanceof $Function)) { + // ignore other realms, for now + throw new $SyntaxError('cross-realm constructors not currently supported'); + } + proto = intrinsic; + } + return proto; +}; diff --git a/node_modules/es-abstract/2025/GetSetRecord.js b/node_modules/es-abstract/2025/GetSetRecord.js new file mode 100644 index 0000000000000000000000000000000000000000..0965714388fecd3cacda463888510b2c5633a289 --- /dev/null +++ b/node_modules/es-abstract/2025/GetSetRecord.js @@ -0,0 +1,64 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); + +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); +var ToNumber = require('./ToNumber'); + +var isNaN = require('..//helpers/isNaN'); +var isObject = require('es-object-atoms/isObject'); + +var callBind = require('call-bind'); +var isSet = require('is-set'); +var stopIterationIterator = require('stop-iteration-iterator'); + +// https://262.ecma-international.org/16.0/#sec-getsetrecord + +module.exports = function GetSetRecord(obj) { + if (!isObject(obj)) { + throw new $TypeError('obj is not an Object'); // step 1 + } + + var rawSize = Get(obj, 'size'); // step 2 + + var numSize = ToNumber(rawSize); // step 3 + + // 4. NOTE: If rawSize is undefined, then numSize will be NaN. + if (isNaN(numSize)) { + throw new $TypeError('`size` is not a non-NaN Number'); // step 5 + } + + var intSize = ToIntegerOrInfinity(numSize); // step 6 + + if (intSize < 0) { + throw new $RangeError('set size must be non-negative'); // step 7 + } + + var has = Get(obj, 'has'); // step 8 + + if (!IsCallable(has)) { + throw new $TypeError('has is not a function'); // step 9 + } + + var keys = Get(obj, 'keys'); // step 10 + if (!IsCallable(keys)) { + throw new $TypeError('keys is not a function'); // step 11 + } + /* globals StopIteration: false */ + if (isSet(obj) && typeof StopIteration === 'object') { + var boundKeys = callBind(keys); + keys = function keys() { // eslint-disable-line no-shadow + return stopIterationIterator(boundKeys(this)); + }; + } + + return { + '[[SetObject]]': obj, + '[[Size]]': intSize, + '[[Has]]': has, + '[[Keys]]': keys + }; // step 12 +}; diff --git a/node_modules/es-abstract/2025/GetStringIndex.js b/node_modules/es-abstract/2025/GetStringIndex.js new file mode 100644 index 0000000000000000000000000000000000000000..101198ff01a6d832dbc8f84c0ff574944e67a8b6 --- /dev/null +++ b/node_modules/es-abstract/2025/GetStringIndex.js @@ -0,0 +1,27 @@ +'use strict'; + +var callBound = require('call-bound'); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); + +var StringToCodePoints = require('./StringToCodePoints'); + +var $indexOf = callBound('String.prototype.indexOf'); + +// https://262.ecma-international.org/13.0/#sec-getstringindex + +module.exports = function GetStringIndex(S, e) { + if (typeof S !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + if (!isInteger(e) || e < 0) { + throw new $TypeError('Assertion failed: `e` must be a non-negative integer'); + } + + if (S === '') { + return 0; + } + var codepoints = StringToCodePoints(S); + var eUTF = e >= codepoints.length ? S.length : $indexOf(S, codepoints[e]); + return eUTF; +}; diff --git a/node_modules/es-abstract/2025/GetSubstitution.js b/node_modules/es-abstract/2025/GetSubstitution.js new file mode 100644 index 0000000000000000000000000000000000000000..46ee064179c802b4992ac351050da482c1a155fe --- /dev/null +++ b/node_modules/es-abstract/2025/GetSubstitution.js @@ -0,0 +1,148 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var inspect = require('object-inspect'); +var isInteger = require('math-intrinsics/isInteger'); +var isObject = require('es-object-atoms/isObject'); +var regexTester = require('safe-regex-test'); + +var Get = require('./Get'); +var IsArray = require('./IsArray'); +var min = require('./min'); +var StringIndexOf = require('./StringIndexOf'); +var StringToNumber = require('./StringToNumber'); +var substring = require('./substring'); +var ToString = require('./ToString'); + +var every = require('../helpers/every'); +var isPrefixOf = require('../helpers/isPrefixOf'); +var isStringOrUndefined = require('../helpers/isStringOrUndefined'); + +var startsWithDollarDigit = regexTester(/^\$[0-9]/); +var startsWithDollarTwoDigit = regexTester(/^\$[0-9][0-9]/); + +// http://www.ecma-international.org/ecma-262/15.0/#sec-getsubstitution + +// eslint-disable-next-line max-statements, max-params, max-lines-per-function +module.exports = function GetSubstitution(matched, str, position, captures, namedCaptures, replacementTemplate) { + if (typeof matched !== 'string') { + throw new $TypeError('Assertion failed: `matched` must be a String'); + } + + if (typeof str !== 'string') { + throw new $TypeError('Assertion failed: `str` must be a String'); + } + + if (!isInteger(position) || position < 0) { + throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, got ' + inspect(position)); + } + + if (!IsArray(captures) || !every(captures, isStringOrUndefined)) { + throw new $TypeError('Assertion failed: `captures` must be a possibly-empty List of Strings or `undefined`, got ' + inspect(captures)); + } + + if (typeof namedCaptures !== 'undefined' && !isObject(namedCaptures)) { + throw new $TypeError('Assertion failed: `namedCaptures` must be `undefined` or an Object'); + } + + if (typeof replacementTemplate !== 'string') { + throw new $TypeError('Assertion failed: `replacementTemplate` must be a String'); + } + + var stringLength = str.length; // step 1 + + if (position > stringLength) { + throw new $TypeError('Assertion failed: position > stringLength, got ' + inspect(position)); // step 2 + } + + var templateRemainder = replacementTemplate; // step 3 + + var result = ''; // step 4 + + while (templateRemainder !== '') { // step 5 + // 5.a NOTE: The following steps isolate ref (a prefix of templateRemainder), determine refReplacement (its replacement), and then append that replacement to result. + + var ref, refReplacement, capture; + if (isPrefixOf('$$', templateRemainder)) { // step 5.b + ref = '$$'; // step 5.b.i + refReplacement = '$'; // step 5.b.ii + } else if (isPrefixOf('$`', templateRemainder)) { // step 5.c + ref = '$`'; // step 5.c.i + refReplacement = substring(str, 0, position); // step 5.c.ii + } else if (isPrefixOf('$&', templateRemainder)) { // step 5.d + ref = '$&'; // step 5.d.i + refReplacement = matched; // step 5.d.ii + } else if (isPrefixOf('$\'', templateRemainder)) { // step 5.e + ref = '$\''; // step 5.e.i + var matchLength = matched.length; // step 5.e.ii + var tailPos = position + matchLength; // step 5.e.iii + refReplacement = substring(str, min(tailPos, stringLength)); // step 5.e.iv + // 5.e.v NOTE: tailPos can exceed stringLength only if this abstract operation was invoked by a call to the intrinsic @@replace method of %RegExp.prototype% on an object whose "exec" property is not the intrinsic %RegExp.prototype.exec%. + } else if (startsWithDollarDigit(templateRemainder)) { // step 5.f + var digitCount = startsWithDollarTwoDigit(templateRemainder) ? 2 : 1; // step 5.f.i + + var digits = substring(templateRemainder, 1, 1 + digitCount); // step 5.f.ii + + var index = StringToNumber(digits); // step 5.f.iii + + if (index < 0 || index > 99) { + throw new $TypeError('Assertion failed: `index` must be >= 0 and <= 99'); // step 5.f.iv + } + + var captureLen = captures.length; // step 5.f.v + + if (index > captureLen && digitCount === 2) { // step 5.f.vi + // 1. NOTE: When a two-digit replacement pattern specifies an index exceeding the count of capturing groups, it is treated as a one-digit replacement pattern followed by a literal digit. + + digitCount = 1; // step 5.f.vi.2 + + digits = substring(digits, 0, 1); // step 5.f.vi.3 + + index = StringToNumber(digits); // step 5.f.vi.4 + } + + ref = substring(templateRemainder, 0, 1 + digitCount); // step 5.f.vii + + if (1 <= index && index <= captureLen) { // step 5.f.viii + capture = captures[index - 1]; // step 5.f.viii.1 + + if (typeof capture === 'undefined') { // step 5.f.viii.2 + refReplacement = ''; // step 5.f.viii.2.a + } else { // step 5.f.viii.3 + refReplacement = capture; // step 5.f.viii.3.a + } + } else { // step 5.f.ix + refReplacement = ref; // step 5.f.ix.1 + } + } else if (isPrefixOf('$<', templateRemainder)) { // step 5.g + var gtPos = StringIndexOf(templateRemainder, '>', 0); // step 5.g.i + if (!(gtPos > -1) || typeof namedCaptures === 'undefined') { // step 5.g.ii + ref = '$<'; // step 5.g.ii.1 + refReplacement = ref; // step 5.g.ii.2 + } else { // step 5.g.iii + ref = substring(templateRemainder, 0, gtPos + 1); // step 5.g.iii.1 + var groupName = substring(templateRemainder, 2, gtPos); // step 5.g.iii.2 + if (!isObject(namedCaptures)) { + throw new $TypeError('Assertion failed: Type(namedCaptures) is not Object'); // step 5.g.iii.3 + } + capture = Get(namedCaptures, groupName); // step 5.g.iii.4 + if (typeof capture === 'undefined') { // step 5.g.iii.5 + refReplacement = ''; // step 5.g.iii.5.a + } else { // step 5.g.iii.6 + refReplacement = ToString(capture); // step 5.g.iii.6.a + } + } + } else { // step 5.h + ref = substring(templateRemainder, 0, 1); // step 5.h.i + refReplacement = ref; // step 5.h.ii + } + + var refLength = ref.length; // step 5.i + + templateRemainder = substring(templateRemainder, refLength); // step 5.j + + result += refReplacement; // step 5.k + } + + return result; // step 6 +}; diff --git a/node_modules/es-abstract/2025/GetUTCEpochNanoseconds.js b/node_modules/es-abstract/2025/GetUTCEpochNanoseconds.js new file mode 100644 index 0000000000000000000000000000000000000000..bf645b1d0462515d71dd22c5685e0d34d9488636 --- /dev/null +++ b/node_modules/es-abstract/2025/GetUTCEpochNanoseconds.js @@ -0,0 +1,68 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var MakeDay = require('./MakeDay'); +var MakeTime = require('./MakeTime'); +var MakeDate = require('./MakeDate'); + +var isInteger = require('math-intrinsics/isInteger'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $SyntaxError = GetIntrinsic('%SyntaxError%'); +var $TypeError = GetIntrinsic('%TypeError%'); + +// https://tc39.es/ecma262/#sec-getutcepochnanoseconds + +// eslint-disable-next-line max-params +module.exports = function GetUTCEpochNanoseconds( + year, + month, + day, + hour, + minute, + second, + millisecond, + microsecond, + nanosecond +) { + if (!isInteger(year)) { + throw new $TypeError('Assertion failed: `year` must be an integral Number'); + } + if (!isInteger(month) || month < 1 || month > 12) { + throw new $TypeError('Assertion failed: `month` must be an integral Number between 1 and 12, inclusive'); + } + if (!isInteger(day) || day < 1 || day > 31) { + throw new $TypeError('Assertion failed: `day` must be an integral Number between 1 and 31, inclusive'); + } + if (!isInteger(hour) || hour < 0 || hour > 23) { + throw new $TypeError('Assertion failed: `hour` must be an integral Number between 0 and 23, inclusive'); + } + if (!isInteger(minute) || minute < 0 || minute > 59) { + throw new $TypeError('Assertion failed: `minute` must be an integral Number between 0 and 59, inclusive'); + } + if (!isInteger(second) || second < 0 || second > 59) { + throw new $TypeError('Assertion failed: `second` must be an integral Number between 0 and 59, inclusive'); + } + if (!isInteger(millisecond) || millisecond < 0 || millisecond > 999) { + throw new $TypeError('Assertion failed: `millisecond` must be an integral Number between 0 and 999, inclusive'); + } + if (!isInteger(microsecond) || microsecond < 0 || microsecond > 999) { + throw new $TypeError('Assertion failed: `microsecond` must be an integral Number between 0 and 999, inclusive'); + } + if (!isInteger(nanosecond) || nanosecond < 0 || nanosecond > 999) { + throw new $TypeError('Assertion failed: `nanosecond` must be an integral Number between 0 and 999, inclusive'); + } + + var date = MakeDay(year, month - 1, day); // step 1 + var time = MakeTime(hour, minute, second, millisecond); // step 2 + var ms = MakeDate(date, time); // step 3 + if (!isInteger(ms)) { + throw new $TypeError('Assertion failed: `ms` from MakeDate is not an integral Number'); // step 4 + } + + if (!$BigInt) { + throw new $SyntaxError('BigInts are not supported in this environment'); + } + return $BigInt((ms * 1e6) + (microsecond * 1e3) + nanosecond); // step 5 +}; diff --git a/node_modules/es-abstract/2025/GetV.js b/node_modules/es-abstract/2025/GetV.js new file mode 100644 index 0000000000000000000000000000000000000000..920dec3c4a4eac8aa63678c2afa5683e79e3337f --- /dev/null +++ b/node_modules/es-abstract/2025/GetV.js @@ -0,0 +1,23 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var inspect = require('object-inspect'); + +var isPropertyKey = require('../helpers/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: P is not a Property Key, got ' + inspect(P)); + } + + // 7.3.2.2-3 + // var O = ToObject(V); + + // 7.3.2.4 + return V[P]; +}; diff --git a/node_modules/es-abstract/2025/GetValueFromBuffer.js b/node_modules/es-abstract/2025/GetValueFromBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..88607ae34aff5f8c051cde70fbf97bd622d6b40d --- /dev/null +++ b/node_modules/es-abstract/2025/GetValueFromBuffer.js @@ -0,0 +1,95 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); +var $Uint8Array = GetIntrinsic('%Uint8Array%', true); + +var $slice = callBound('Array.prototype.slice'); + +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var RawBytesToNumeric = require('./RawBytesToNumeric'); + +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/15.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' || typeof tableTAO.size['$' + type] !== 'number') { + throw new $TypeError('Assertion failed: `type` must be one of ' + tableTAO.choices); + } + + if (typeof isTypedArray !== 'boolean') { + throw new $TypeError('Assertion failed: `isTypedArray` must be a boolean'); + } + + if (order !== 'SEQ-CST' && order !== 'UNORDERED') { + throw new $TypeError('Assertion failed: `order` must be either `SEQ-CST` or `UNORDERED`'); + } + + 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 ' + tableTAO.choices); + } + + 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('SharedArrayBuffer is not supported by this implementation'); + } 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 RawBytesToNumeric(type, bytes, isLittleEndian); +}; diff --git a/node_modules/es-abstract/2025/GetViewByteLength.js b/node_modules/es-abstract/2025/GetViewByteLength.js new file mode 100644 index 0000000000000000000000000000000000000000..a5837e8b60c3d6d6149cfdf0a4ce924eee9d2fb7 --- /dev/null +++ b/node_modules/es-abstract/2025/GetViewByteLength.js @@ -0,0 +1,47 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); +var IsViewOutOfBounds = require('./IsViewOutOfBounds'); + +var isDataViewWithBufferWitnessRecord = require('../helpers/records/data-view-with-buffer-witness-record'); + +var dataViewBuffer = require('data-view-buffer'); +var dataViewByteLength = require('data-view-byte-length'); +var dataViewByteOffset = require('data-view-byte-offset'); + +// https://262.ecma-international.org/15.0/#sec-getviewbytelength + +module.exports = function GetViewByteLength(viewRecord) { + if (!isDataViewWithBufferWitnessRecord(viewRecord)) { + throw new $TypeError('Assertion failed: `viewRecord` must be a DataView with Buffer Witness Record'); + } + + if (IsViewOutOfBounds(viewRecord)) { + throw new $TypeError('Assertion failed: `viewRecord` is out of bounds'); // step 1 + } + + var view = viewRecord['[[Object]]']; // step 2 + + var isFixed = IsFixedLengthArrayBuffer(dataViewBuffer(view)); + + var viewByteLength = isFixed ? dataViewByteLength(view) : 'AUTO'; // view.[[ByteLength]] + if (viewByteLength !== 'AUTO') { + return viewByteLength; // step 3 + } + + if (isFixed) { + throw new $TypeError('Assertion failed: DataView’s ArrayBuffer is not fixed length'); // step 4 + } + + var byteOffset = dataViewByteOffset(view); // step 5 + + var byteLength = viewRecord['[[CachedBufferByteLength]]']; // step 6 + + if (byteLength === 'DETACHED') { + throw new $TypeError('Assertion failed: DataView’s ArrayBuffer is detached'); // step 7 + } + + return byteLength - byteOffset; // step 8 +}; diff --git a/node_modules/es-abstract/2025/GroupBy.js b/node_modules/es-abstract/2025/GroupBy.js new file mode 100644 index 0000000000000000000000000000000000000000..243ab89de158f9a3102e0918d092d431388608b9 --- /dev/null +++ b/node_modules/es-abstract/2025/GroupBy.js @@ -0,0 +1,75 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var AddValueToKeyedGroup = require('./AddValueToKeyedGroup'); +var Call = require('./Call'); +var CanonicalizeKeyedCollectionKey = require('./CanonicalizeKeyedCollectionKey'); +var GetIterator = require('./GetIterator'); +var IfAbruptCloseIterator = require('./IfAbruptCloseIterator'); +var IsCallable = require('./IsCallable'); +var IteratorClose = require('./IteratorClose'); +var IteratorStep = require('./IteratorStep'); +var IteratorValue = require('./IteratorValue'); +var RequireObjectCoercible = require('./RequireObjectCoercible'); +var ThrowCompletion = require('./ThrowCompletion'); +var ToPropertyKey = require('./ToPropertyKey'); + +var maxSafeInteger = require('../helpers/maxSafeInteger'); + +// https://262.ecma-international.org/16.0/#sec-groupby + +module.exports = function GroupBy(items, callbackfn, keyCoercion) { + if (keyCoercion !== 'PROPERTY' && keyCoercion !== 'COLLECTION') { + throw new $TypeError('Assertion failed: `keyCoercion` must be `"PROPERTY"` or `"COLLECTION"`'); + } + + RequireObjectCoercible(items); // step 1 + + if (!IsCallable(callbackfn)) { + throw new $TypeError('callbackfn must be callable'); // step 2 + } + + var groups = []; // step 3 + + var iteratorRecord = GetIterator(items, 'SYNC'); // step 4 + + var k = 0; // step 5 + + while (true) { // step 6 + if (k >= maxSafeInteger) { // step 6.a + var error = ThrowCompletion(new $TypeError('k must be less than 2 ** 53 - 1')); // step 6.a.i + return IteratorClose(iteratorRecord, error); // step 6.a.ii + } + var next = IteratorStep(iteratorRecord); // step 6.b + if (!next) { // step 6.c + return groups; // step 6.c.i + } + + var value = IteratorValue(next); // step 6.dv + + var key; + try { + key = Call(callbackfn, undefined, [value, k]); // step 6.e + } catch (e) { + IfAbruptCloseIterator(ThrowCompletion(e), iteratorRecord); // step 6.f + } + + if (keyCoercion === 'PROPERTY') { // step 6.g + try { + key = ToPropertyKey(key); // step 6.g.i + } catch (e) { + IfAbruptCloseIterator(ThrowCompletion(e), iteratorRecord); // step 6.g.ii + } + } else { // step 6.h + if (keyCoercion !== 'COLLECTION') { + throw new $TypeError('keyCoercion must be ~PROPERTY~ or ~COLLECTION~'); // step 6.h.i + } + key = CanonicalizeKeyedCollectionKey(key); // step 6.h.ii + } + + AddValueToKeyedGroup(groups, key, value); // step 6.i + + k += 1; // step 6.j + } +}; diff --git a/node_modules/es-abstract/2025/HasEitherUnicodeFlag.js b/node_modules/es-abstract/2025/HasEitherUnicodeFlag.js new file mode 100644 index 0000000000000000000000000000000000000000..02903cea2907a3510a1c7eb10ffe8bb96455c145 --- /dev/null +++ b/node_modules/es-abstract/2025/HasEitherUnicodeFlag.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isRegExpRecord = require('../helpers/records/regexp-record'); + +// https://262.ecma-international.org/15.0/#sec-runtime-semantics-haseitherunicodeflag-abstract-operation + +module.exports = function HasEitherUnicodeFlag(rer) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + + if (rer['[[Unicode]]'] || rer['[[UnicodeSets]]']) { // step 1 + return true; // step 1.a + } + return false; // step 2 +}; diff --git a/node_modules/es-abstract/2025/HasOwnProperty.js b/node_modules/es-abstract/2025/HasOwnProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..617f0b856e81f2518d2c03bf72b367eea50eb6ef --- /dev/null +++ b/node_modules/es-abstract/2025/HasOwnProperty.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var hasOwn = require('hasown'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/6.0/#sec-hasownproperty + +module.exports = function HasOwnProperty(O, P) { + if (!isObject(O)) { + 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); +}; diff --git a/node_modules/es-abstract/2025/HasProperty.js b/node_modules/es-abstract/2025/HasProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..eb66ca9853ec09c092d87f10333fcdb19a882c83 --- /dev/null +++ b/node_modules/es-abstract/2025/HasProperty.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/6.0/#sec-hasproperty + +module.exports = function HasProperty(O, P) { + if (!isObject(O)) { + 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; +}; diff --git a/node_modules/es-abstract/2025/HourFromTime.js b/node_modules/es-abstract/2025/HourFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..f963bfb68540ba21f46be00b623cb89db98d63f5 --- /dev/null +++ b/node_modules/es-abstract/2025/HourFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/2025/IfAbruptCloseIterator.js b/node_modules/es-abstract/2025/IfAbruptCloseIterator.js new file mode 100644 index 0000000000000000000000000000000000000000..f9477781f81b5a6ab692f78dea5ed7b6de9c8eda --- /dev/null +++ b/node_modules/es-abstract/2025/IfAbruptCloseIterator.js @@ -0,0 +1,19 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CompletionRecord = require('./CompletionRecord'); +var IteratorClose = require('./IteratorClose'); + +// https://262.ecma-international.org/16.0/#sec-ifabruptcloseiterator + +module.exports = function IfAbruptCloseIterator(value, iteratorRecord) { + if (!(value instanceof CompletionRecord)) { + throw new $TypeError('Assertion failed: `value` must be a Completion Record'); // step 1 + } + if (value.type() === 'throw') { + return IteratorClose(iteratorRecord, value); // step 2 + } + + return value['!'](); // step +}; diff --git a/node_modules/es-abstract/2025/InLeapYear.js b/node_modules/es-abstract/2025/InLeapYear.js new file mode 100644 index 0000000000000000000000000000000000000000..4a283a4b6097f4b2c4e872b0cc775024ff517b77 --- /dev/null +++ b/node_modules/es-abstract/2025/InLeapYear.js @@ -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); +}; diff --git a/node_modules/es-abstract/2025/InstallErrorCause.js b/node_modules/es-abstract/2025/InstallErrorCause.js new file mode 100644 index 0000000000000000000000000000000000000000..c740a5d6c22e58e2c9d630595c0e25ff92f9356e --- /dev/null +++ b/node_modules/es-abstract/2025/InstallErrorCause.js @@ -0,0 +1,21 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var CreateNonEnumerableDataPropertyOrThrow = require('./CreateNonEnumerableDataPropertyOrThrow'); +var Get = require('./Get'); +var HasProperty = require('./HasProperty'); + +// https://262.ecma-international.org/13.0/#sec-installerrorcause + +module.exports = function InstallErrorCause(O, options) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + + if (isObject(options) && HasProperty(options, 'cause')) { + var cause = Get(options, 'cause'); + CreateNonEnumerableDataPropertyOrThrow(O, 'cause', cause); + } +}; diff --git a/node_modules/es-abstract/2025/InstanceofOperator.js b/node_modules/es-abstract/2025/InstanceofOperator.js new file mode 100644 index 0000000000000000000000000000000000000000..5dd7d04a4c16b423b1613070585b864e22b2dc9e --- /dev/null +++ b/node_modules/es-abstract/2025/InstanceofOperator.js @@ -0,0 +1,30 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +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'); + +// https://262.ecma-international.org/6.0/#sec-instanceofoperator + +module.exports = function InstanceofOperator(O, C) { + if (!isObject(O)) { + 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); +}; diff --git a/node_modules/es-abstract/2025/InternalizeJSONProperty.js b/node_modules/es-abstract/2025/InternalizeJSONProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..eabb7caab216526d29423cbfa8d8db23b7d9e593 --- /dev/null +++ b/node_modules/es-abstract/2025/InternalizeJSONProperty.js @@ -0,0 +1,68 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); +var CreateDataProperty = require('./CreateDataProperty'); +var EnumerableOwnProperties = require('./EnumerableOwnProperties'); +var Get = require('./Get'); +var IsArray = require('./IsArray'); +var LengthOfArrayLike = require('./LengthOfArrayLike'); +var ToString = require('./ToString'); + +var forEach = require('../helpers/forEach'); + +// https://262.ecma-international.org/14.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 (!isObject(holder)) { + 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 (isObject(val)) { // step 2 + var isArray = IsArray(val); // step 2.a + if (isArray) { // step 2.b + var I = 0; // step 2.b.i + + var len = LengthOfArrayLike(val); // 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 +}; diff --git a/node_modules/es-abstract/2025/Invoke.js b/node_modules/es-abstract/2025/Invoke.js new file mode 100644 index 0000000000000000000000000000000000000000..57bca8ebc3dcb6172949cb3bef6f134dacabbf4b --- /dev/null +++ b/node_modules/es-abstract/2025/Invoke.js @@ -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('../helpers/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); +}; diff --git a/node_modules/es-abstract/2025/IsAccessorDescriptor.js b/node_modules/es-abstract/2025/IsAccessorDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..f7bf73afb1c1617b04596a6e2af6d1617857bf1e --- /dev/null +++ b/node_modules/es-abstract/2025/IsAccessorDescriptor.js @@ -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; +}; diff --git a/node_modules/es-abstract/2025/IsArray.js b/node_modules/es-abstract/2025/IsArray.js new file mode 100644 index 0000000000000000000000000000000000000000..c2c48c1f233c058c691d45d7587f1b58d3de5eb2 --- /dev/null +++ b/node_modules/es-abstract/2025/IsArray.js @@ -0,0 +1,4 @@ +'use strict'; + +// https://262.ecma-international.org/6.0/#sec-isarray +module.exports = require('../helpers/IsArray'); diff --git a/node_modules/es-abstract/2025/IsArrayBufferViewOutOfBounds.js b/node_modules/es-abstract/2025/IsArrayBufferViewOutOfBounds.js new file mode 100644 index 0000000000000000000000000000000000000000..7b87b06a45b12a752b58853d00724cfed483834b --- /dev/null +++ b/node_modules/es-abstract/2025/IsArrayBufferViewOutOfBounds.js @@ -0,0 +1,30 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var IsViewOutOfBounds = require('./IsViewOutOfBounds'); +var MakeDataViewWithBufferWitnessRecord = require('./MakeDataViewWithBufferWitnessRecord'); +var MakeTypedArrayWithBufferWitnessRecord = require('./MakeTypedArrayWithBufferWitnessRecord'); + +var isDataView = require('is-data-view'); +var isTypedArray = require('is-typed-array'); + +// https://262.ecma-international.org/15.0/#sec-isarraybufferviewoutofbounds + +module.exports = function IsArrayBufferViewOutOfBounds(O) { + var isDV = isDataView(O); + if (!isTypedArray(O) && !isDV) { + throw new $TypeError('Assertion failed: `O` must be a TypedArray or DataView'); + } + + if (isDV) { // step 1 + var viewRecord = MakeDataViewWithBufferWitnessRecord(O, 'SEQ-CST'); // step 1.a + + return IsViewOutOfBounds(viewRecord); // step 1.b + } + + var taRecord = MakeTypedArrayWithBufferWitnessRecord(O, 'SEQ-CST'); // step 2 + + return IsTypedArrayOutOfBounds(taRecord); // step 3 +}; diff --git a/node_modules/es-abstract/2025/IsBigIntElementType.js b/node_modules/es-abstract/2025/IsBigIntElementType.js new file mode 100644 index 0000000000000000000000000000000000000000..484454353fbc96972068cc5c61fd82b5658ea289 --- /dev/null +++ b/node_modules/es-abstract/2025/IsBigIntElementType.js @@ -0,0 +1,7 @@ +'use strict'; + +// https://262.ecma-international.org/15.0/#sec-isbigintelementtype + +module.exports = function IsBigIntElementType(type) { + return type === 'BIGUINT64' || type === 'BIGINT64'; +}; diff --git a/node_modules/es-abstract/2025/IsCallable.js b/node_modules/es-abstract/2025/IsCallable.js new file mode 100644 index 0000000000000000000000000000000000000000..3a69b19267dff33491a84421b667a0d82cba21f9 --- /dev/null +++ b/node_modules/es-abstract/2025/IsCallable.js @@ -0,0 +1,5 @@ +'use strict'; + +// http://262.ecma-international.org/5.1/#sec-9.11 + +module.exports = require('is-callable'); diff --git a/node_modules/es-abstract/2025/IsCompatiblePropertyDescriptor.js b/node_modules/es-abstract/2025/IsCompatiblePropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..48e719f3c1e515175311d0f2fe599b4743f43062 --- /dev/null +++ b/node_modules/es-abstract/2025/IsCompatiblePropertyDescriptor.js @@ -0,0 +1,9 @@ +'use strict'; + +var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); + +// https://262.ecma-international.org/13.0/#sec-iscompatiblepropertydescriptor + +module.exports = function IsCompatiblePropertyDescriptor(Extensible, Desc, Current) { + return ValidateAndApplyPropertyDescriptor(undefined, '', Extensible, Desc, Current); +}; diff --git a/node_modules/es-abstract/2025/IsConcatSpreadable.js b/node_modules/es-abstract/2025/IsConcatSpreadable.js new file mode 100644 index 0000000000000000000000000000000000000000..ace2695309292c91b185505f63da3cc942534bd2 --- /dev/null +++ b/node_modules/es-abstract/2025/IsConcatSpreadable.js @@ -0,0 +1,26 @@ +'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 isObject = require('es-object-atoms/isObject'); + +// https://262.ecma-international.org/6.0/#sec-isconcatspreadable + +module.exports = function IsConcatSpreadable(O) { + if (!isObject(O)) { + return false; + } + if ($isConcatSpreadable) { + var spreadable = Get(O, $isConcatSpreadable); + if (typeof spreadable !== 'undefined') { + return ToBoolean(spreadable); + } + } + return IsArray(O); +}; diff --git a/node_modules/es-abstract/2025/IsConstructor.js b/node_modules/es-abstract/2025/IsConstructor.js new file mode 100644 index 0000000000000000000000000000000000000000..62ac47f6a3d262927a9b147ee0057dfba9664b24 --- /dev/null +++ b/node_modules/es-abstract/2025/IsConstructor.js @@ -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; + }; +} diff --git a/node_modules/es-abstract/2025/IsDataDescriptor.js b/node_modules/es-abstract/2025/IsDataDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..d56bd36d4294369f6486f6dfc5d60dada2cc410a --- /dev/null +++ b/node_modules/es-abstract/2025/IsDataDescriptor.js @@ -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; +}; diff --git a/node_modules/es-abstract/2025/IsDetachedBuffer.js b/node_modules/es-abstract/2025/IsDetachedBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..71c4f6be8d20b02a92a6721c7ae2833adf21150e --- /dev/null +++ b/node_modules/es-abstract/2025/IsDetachedBuffer.js @@ -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-bound'); +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; +}; diff --git a/node_modules/es-abstract/2025/IsExtensible.js b/node_modules/es-abstract/2025/IsExtensible.js new file mode 100644 index 0000000000000000000000000000000000000000..aa19b914c2d3dc31c1215e2b203dc3ffbb78746c --- /dev/null +++ b/node_modules/es-abstract/2025/IsExtensible.js @@ -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); + }; diff --git a/node_modules/es-abstract/2025/IsFixedLengthArrayBuffer.js b/node_modules/es-abstract/2025/IsFixedLengthArrayBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..78fd5c004de315d9dd5ce71eec8da612eaeabb1b --- /dev/null +++ b/node_modules/es-abstract/2025/IsFixedLengthArrayBuffer.js @@ -0,0 +1,29 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +var $arrayBufferResizable = callBound('%ArrayBuffer.prototype.resizable%', true); +var $sharedArrayGrowable = callBound('%SharedArrayBuffer.prototype.growable%', true); + +var isArrayBuffer = require('is-array-buffer'); +var isSharedArrayBuffer = require('is-shared-array-buffer'); + +// https://262.ecma-international.org/15.0/#sec-isfixedlengtharraybuffer + +module.exports = function IsFixedLengthArrayBuffer(arrayBuffer) { + var isAB = isArrayBuffer(arrayBuffer); + var isSAB = isSharedArrayBuffer(arrayBuffer); + if (!isAB && !isSAB) { + throw new $TypeError('Assertion failed: `arrayBuffer` must be an ArrayBuffer or SharedArrayBuffer'); + } + + if (isAB && $arrayBufferResizable) { + return !$arrayBufferResizable(arrayBuffer); // step 1 + } + if (isSAB && $sharedArrayGrowable) { + return !$sharedArrayGrowable(arrayBuffer); // step 1 + } + return true; // step 2 +}; diff --git a/node_modules/es-abstract/2025/IsGenericDescriptor.js b/node_modules/es-abstract/2025/IsGenericDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..9f6ef045ee44e9eaea4506a234f0e41e0bd1bac9 --- /dev/null +++ b/node_modules/es-abstract/2025/IsGenericDescriptor.js @@ -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; +}; diff --git a/node_modules/es-abstract/2025/IsLessThan.js b/node_modules/es-abstract/2025/IsLessThan.js new file mode 100644 index 0000000000000000000000000000000000000000..73f6cff9a254af6a6585ae68821c504048d2c192 --- /dev/null +++ b/node_modules/es-abstract/2025/IsLessThan.js @@ -0,0 +1,97 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Number = GetIntrinsic('%Number%'); +var $TypeError = require('es-errors/type'); +var min = require('math-intrinsics/min'); +var $isNaN = require('math-intrinsics/isNaN'); + +var $charCodeAt = require('call-bound')('String.prototype.charCodeAt'); + +var StringToBigInt = require('./StringToBigInt'); +var ToNumeric = require('./ToNumeric'); +var ToPrimitive = require('./ToPrimitive'); + +var BigIntLessThan = require('./BigInt/lessThan'); +var NumberLessThan = require('./Number/lessThan'); + +// https://262.ecma-international.org/14.0/#sec-islessthan + +// eslint-disable-next-line max-statements, max-lines-per-function +module.exports = function IsLessThan(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); + } + + if (typeof px === 'string' && typeof py === 'string') { // step 3 + // a. Let lx be the length of px. + // b. Let ly be the length of py. + // c. For each integer i starting with 0 such that i < min(lx, ly), in ascending order, do + // i. Let cx be the integer that is the numeric value of the code unit at index i within px. + // ii. Let cy be the integer that is the numeric value of the code unit at index i within py. + // iii. If cx < cy, return true. + // iv. If cx > cy, return false. + // d. If lx < ly, return true. Otherwise, return false. + + var lx = px.length; // step 3.a + var ly = py.length; // step 3.b + for (var i = 0; i < min(lx, ly); i++) { // step 3.c + var cx = $charCodeAt(px, i); // step 3.c.i + var cy = $charCodeAt(py, i); // step 3.c.ii + if (cx < cy) { + return true; // step 3.c.iii + } + if (cx > cy) { + return false; // step 3.c.iv + } + } + return lx < ly; // step 3.d + } + + var nx; + var ny; + if (typeof px === 'bigint' && typeof py === 'string') { + ny = StringToBigInt(py); + if (typeof ny === 'undefined') { + return void undefined; + } + return BigIntLessThan(px, ny); + } + if (typeof px === 'string' && typeof py === 'bigint') { + nx = StringToBigInt(px); + if (typeof nx === 'undefined') { + return void undefined; + } + return BigIntLessThan(nx, py); + } + + nx = ToNumeric(px); + ny = ToNumeric(py); + + if (typeof nx === typeof ny) { + return typeof nx === 'number' ? NumberLessThan(nx, ny) : BigIntLessThan(nx, ny); + } + + if ($isNaN(nx) || $isNaN(ny)) { + return void undefined; + } + + if (nx === -Infinity || ny === Infinity) { + return true; + } + if (nx === Infinity || ny === -Infinity) { + return false; + } + + return nx < ny; // by now, these are both finite, and the same type +}; diff --git a/node_modules/es-abstract/2025/IsLooselyEqual.js b/node_modules/es-abstract/2025/IsLooselyEqual.js new file mode 100644 index 0000000000000000000000000000000000000000..c7bb047f55d337b5ca46405cc07a284d5843d71a --- /dev/null +++ b/node_modules/es-abstract/2025/IsLooselyEqual.js @@ -0,0 +1,58 @@ +'use strict'; + +var isFinite = require('math-intrinsics/isFinite'); +var isObject = require('es-object-atoms/isObject'); + +var IsStrictlyEqual = require('./IsStrictlyEqual'); +var StringToBigInt = require('./StringToBigInt'); +var ToNumber = require('./ToNumber'); +var ToPrimitive = require('./ToPrimitive'); + +var isSameType = require('../helpers/isSameType'); + +// https://262.ecma-international.org/13.0/#sec-islooselyequal + +module.exports = function IsLooselyEqual(x, y) { + if (isSameType(x, y)) { + return IsStrictlyEqual(x, y); + } + if (x == null && y == null) { + return true; + } + if (typeof x === 'number' && typeof y === 'string') { + return IsLooselyEqual(x, ToNumber(y)); + } + if (typeof x === 'string' && typeof y === 'number') { + return IsLooselyEqual(ToNumber(x), y); + } + if (typeof x === 'bigint' && typeof y === 'string') { + var n = StringToBigInt(y); + if (typeof n === 'undefined') { + return false; + } + return IsLooselyEqual(x, n); + } + if (typeof x === 'string' && typeof y === 'bigint') { + return IsLooselyEqual(y, x); + } + if (typeof x === 'boolean') { + return IsLooselyEqual(ToNumber(x), y); + } + if (typeof y === 'boolean') { + return IsLooselyEqual(x, ToNumber(y)); + } + if ((typeof x === 'string' || typeof x === 'number' || typeof x === 'symbol' || typeof x === 'bigint') && isObject(y)) { + return IsLooselyEqual(x, ToPrimitive(y)); + } + if (isObject(x) && (typeof y === 'string' || typeof y === 'number' || typeof y === 'symbol' || typeof y === 'bigint')) { + return IsLooselyEqual(ToPrimitive(x), y); + } + if ((typeof x === 'bigint' && typeof y === 'number') || (typeof x === 'number' && typeof y === 'bigint')) { + if (!isFinite(x) || !isFinite(y)) { + return false; + } + // eslint-disable-next-line eqeqeq + return x == y; // shortcut for step 13.b. + } + return false; +}; diff --git a/node_modules/es-abstract/2025/IsNoTearConfiguration.js b/node_modules/es-abstract/2025/IsNoTearConfiguration.js new file mode 100644 index 0000000000000000000000000000000000000000..5156e58d4d4272231dd55d2715eaf46a5146b1f8 --- /dev/null +++ b/node_modules/es-abstract/2025/IsNoTearConfiguration.js @@ -0,0 +1,16 @@ +'use strict'; + +var IsUnclampedIntegerElementType = require('./IsUnclampedIntegerElementType'); +var IsBigIntElementType = require('./IsBigIntElementType'); + +// https://262.ecma-international.org/15.0/#sec-isnotearconfiguration + +module.exports = function IsNoTearConfiguration(type, order) { + if (IsUnclampedIntegerElementType(type)) { + return true; + } + if (IsBigIntElementType(type) && order !== 'INIT' && order !== 'UNORDERED') { + return true; + } + return false; +}; diff --git a/node_modules/es-abstract/2025/IsPromise.js b/node_modules/es-abstract/2025/IsPromise.js new file mode 100644 index 0000000000000000000000000000000000000000..f3d67b1c7045d7657ec74a6d084dc088aadb5ff4 --- /dev/null +++ b/node_modules/es-abstract/2025/IsPromise.js @@ -0,0 +1,24 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $PromiseThen = callBound('Promise.prototype.then', true); + +var isObject = require('es-object-atoms/isObject'); + +// https://262.ecma-international.org/6.0/#sec-ispromise + +module.exports = function IsPromise(x) { + if (!isObject(x)) { + return false; + } + if (!$PromiseThen) { // Promises are not supported + return false; + } + try { + $PromiseThen(x); // throws if not a promise + } catch (e) { + return false; + } + return true; +}; diff --git a/node_modules/es-abstract/2025/IsRegExp.js b/node_modules/es-abstract/2025/IsRegExp.js new file mode 100644 index 0000000000000000000000000000000000000000..8855492d58ded3c061b84be35e962fe32c8de53e --- /dev/null +++ b/node_modules/es-abstract/2025/IsRegExp.js @@ -0,0 +1,25 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $match = GetIntrinsic('%Symbol.match%', true); + +var hasRegExpMatcher = require('is-regex'); +var isObject = require('es-object-atoms/isObject'); + +var ToBoolean = require('./ToBoolean'); + +// https://262.ecma-international.org/6.0/#sec-isregexp + +module.exports = function IsRegExp(argument) { + if (!isObject(argument)) { + return false; + } + if ($match) { + var isRegExp = argument[$match]; + if (typeof isRegExp !== 'undefined') { + return ToBoolean(isRegExp); + } + } + return hasRegExpMatcher(argument); +}; diff --git a/node_modules/es-abstract/2025/IsSharedArrayBuffer.js b/node_modules/es-abstract/2025/IsSharedArrayBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..41d61b116db4b3aabf7dde87e6b46cc5aa378d99 --- /dev/null +++ b/node_modules/es-abstract/2025/IsSharedArrayBuffer.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isSharedArrayBuffer = require('is-shared-array-buffer'); + +// https://262.ecma-international.org/8.0/#sec-issharedarraybuffer + +module.exports = function IsSharedArrayBuffer(obj) { + if (!isObject(obj)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + + return isSharedArrayBuffer(obj); +}; diff --git a/node_modules/es-abstract/2025/IsStrictlyEqual.js b/node_modules/es-abstract/2025/IsStrictlyEqual.js new file mode 100644 index 0000000000000000000000000000000000000000..3f100fd7c3a0a4cb2ec0770b894c83f94f9ce1b6 --- /dev/null +++ b/node_modules/es-abstract/2025/IsStrictlyEqual.js @@ -0,0 +1,14 @@ +'use strict'; + +var SameValueNonNumber = require('./SameValueNonNumber'); +var NumberEqual = require('./Number/equal'); +var SameType = require('./SameType'); + +// https://262.ecma-international.org/16.0/#sec-isstrictlyequal + +module.exports = function IsStrictlyEqual(x, y) { + if (!SameType(x, y)) { + return false; + } + return typeof x === 'number' ? NumberEqual(x, y) : SameValueNonNumber(x, y); +}; diff --git a/node_modules/es-abstract/2025/IsStringWellFormedUnicode.js b/node_modules/es-abstract/2025/IsStringWellFormedUnicode.js new file mode 100644 index 0000000000000000000000000000000000000000..d5fa48a69550d7faadb0a377af014cd530a74a87 --- /dev/null +++ b/node_modules/es-abstract/2025/IsStringWellFormedUnicode.js @@ -0,0 +1,23 @@ +'use strict'; + +var CodePointAt = require('./CodePointAt'); + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/14.0/#sec-isstringwellformedunicode + +module.exports = function IsStringWellFormedUnicode(string) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + var len = string.length; // step 1 + var k = 0; // step 2 + while (k < len) { // step 3 + var cp = CodePointAt(string, k); // step 3.a + if (cp['[[IsUnpairedSurrogate]]']) { + return false; // step 3.b + } + k += cp['[[CodeUnitCount]]']; // step 3.c + } + return true; // step 4 +}; diff --git a/node_modules/es-abstract/2025/IsTimeZoneOffsetString.js b/node_modules/es-abstract/2025/IsTimeZoneOffsetString.js new file mode 100644 index 0000000000000000000000000000000000000000..a05ae41b4416d1c83c8a3fe5e72f19c13dfb2a33 --- /dev/null +++ b/node_modules/es-abstract/2025/IsTimeZoneOffsetString.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var regexTester = require('safe-regex-test'); + +// https://tc39.es/ecma262/#sec-istimezoneoffsetstring + +// implementation taken from https://github.com/tc39/proposal-temporal/blob/21ee5b13f0672990c807475ba094092d19dd6dc5/polyfill/lib/ecmascript.mjs#L2140 + +var OFFSET = /^([+\u2212-])([01][0-9]|2[0-3])(?::?([0-5][0-9])(?::?([0-5][0-9])(?:[.,](\d{1,9}))?)?)?$/; + +var testOffset = regexTester(OFFSET); + +module.exports = function IsTimeZoneOffsetString(offsetString) { + if (typeof offsetString !== 'string') { + throw new $TypeError('Assertion failed: `offsetString` must be a String'); + } + return testOffset(offsetString); +}; diff --git a/node_modules/es-abstract/2025/IsTypedArrayFixedLength.js b/node_modules/es-abstract/2025/IsTypedArrayFixedLength.js new file mode 100644 index 0000000000000000000000000000000000000000..d9520f1dd6bc9d0e085c75cee2e1536f2e140e3c --- /dev/null +++ b/node_modules/es-abstract/2025/IsTypedArrayFixedLength.js @@ -0,0 +1,34 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isTypedArray = require('is-typed-array'); +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayLength = require('typed-array-length'); + +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); +var IsSharedArrayBuffer = require('./IsSharedArrayBuffer'); + +// https://262.ecma-international.org/16.0/#sec-istypedarrayfixedlength + +module.exports = function IsTypedArrayFixedLength(O) { + if (!isTypedArray(O)) { + throw new $TypeError('Assertion failed: `obj` must be a Typed Array'); + } + + // 2. Let buffer be O.[[ViewedArrayBuffer]]. + var buffer = typedArrayBuffer(O); // step 2 + + var isFixed = IsFixedLengthArrayBuffer(buffer); + + var length = isFixed ? typedArrayLength(O) : 'AUTO'; + if (length === 'AUTO') { + return false; // step 1 + } + + if (!isFixed && !IsSharedArrayBuffer(buffer)) { + return false; // step 3 + } + + return true; // step 4 +}; diff --git a/node_modules/es-abstract/2025/IsTypedArrayOutOfBounds.js b/node_modules/es-abstract/2025/IsTypedArrayOutOfBounds.js new file mode 100644 index 0000000000000000000000000000000000000000..0fac92bd0ebc950ae43290e775814ce1e797018e --- /dev/null +++ b/node_modules/es-abstract/2025/IsTypedArrayOutOfBounds.js @@ -0,0 +1,57 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); + +var isTypedArrayWithBufferWitnessRecord = require('../helpers/records/typed-array-with-buffer-witness-record'); + +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayByteOffset = require('typed-array-byte-offset'); +var typedArrayLength = require('typed-array-length'); + +// https://262.ecma-international.org/15.0/#sec-istypedarrayoutofbounds + +module.exports = function IsTypedArrayOutOfBounds(taRecord) { + if (!isTypedArrayWithBufferWitnessRecord(taRecord)) { + throw new $TypeError('Assertion failed: `taRecord` must be a TypedArray With Buffer Witness Record'); + } + + var O = taRecord['[[Object]]']; // step 1 + + var bufferByteLength = taRecord['[[CachedBufferByteLength]]']; // step 2 + + if (IsDetachedBuffer(typedArrayBuffer(O)) && bufferByteLength !== 'DETACHED') { + throw new $TypeError('Assertion failed: typed array is detached only if the byte length is ~DETACHED~'); // step 3 + } + + if (bufferByteLength === 'DETACHED') { + return true; // step 4 + } + + var byteOffsetStart = typedArrayByteOffset(O); // step 5 + + var isFixed = IsFixedLengthArrayBuffer(typedArrayBuffer(O)); + + var byteOffsetEnd; + var length = isFixed ? typedArrayLength(O) : 'AUTO'; + // TODO: probably use package for array length + // seems to apply when TA is backed by a resizable/growable AB + if (length === 'AUTO') { // step 6 + byteOffsetEnd = bufferByteLength; // step 6.a + } else { + var elementSize = TypedArrayElementSize(O); // step 7.a + + byteOffsetEnd = byteOffsetStart + (length * elementSize); // step 7.b + } + + if (byteOffsetStart > bufferByteLength || byteOffsetEnd > bufferByteLength) { + return true; // step 8 + } + + // 9. NOTE: 0-length TypedArrays are not considered out-of-bounds. + + return false; // step 10 +}; diff --git a/node_modules/es-abstract/2025/IsUnclampedIntegerElementType.js b/node_modules/es-abstract/2025/IsUnclampedIntegerElementType.js new file mode 100644 index 0000000000000000000000000000000000000000..32c43d4741fd2bac60ff9227bcd41d063a7524c6 --- /dev/null +++ b/node_modules/es-abstract/2025/IsUnclampedIntegerElementType.js @@ -0,0 +1,12 @@ +'use strict'; + +// https://262.ecma-international.org/15.0/#sec-isunclampedintegerelementtype + +module.exports = function IsUnclampedIntegerElementType(type) { + return type === 'INT8' + || type === 'UINT8' + || type === 'INT16' + || type === 'UINT16' + || type === 'INT32' + || type === 'UINT32'; +}; diff --git a/node_modules/es-abstract/2025/IsUnsignedElementType.js b/node_modules/es-abstract/2025/IsUnsignedElementType.js new file mode 100644 index 0000000000000000000000000000000000000000..880b25ad38927e806e6c2e6306428573ba7983cf --- /dev/null +++ b/node_modules/es-abstract/2025/IsUnsignedElementType.js @@ -0,0 +1,11 @@ +'use strict'; + +// https://262.ecma-international.org/15.0/#sec-isunsignedelementtype + +module.exports = function IsUnsignedElementType(type) { + return type === 'UINT8' + || type === 'UINT8C' + || type === 'UINT16' + || type === 'UINT32' + || type === 'BIGUINT64'; +}; diff --git a/node_modules/es-abstract/2025/IsValidIntegerIndex.js b/node_modules/es-abstract/2025/IsValidIntegerIndex.js new file mode 100644 index 0000000000000000000000000000000000000000..15130bc3a006693d698dcfc83102b792a227f679 --- /dev/null +++ b/node_modules/es-abstract/2025/IsValidIntegerIndex.js @@ -0,0 +1,43 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var MakeTypedArrayWithBufferWitnessRecord = require('./MakeTypedArrayWithBufferWitnessRecord'); +var TypedArrayLength = require('./TypedArrayLength'); + +var isInteger = require('math-intrinsics/isInteger'); +var isNegativeZero = require('math-intrinsics/isNegativeZero'); + +var isTypedArray = require('is-typed-array'); +var typedArrayBuffer = require('typed-array-buffer'); + +// https://262.ecma-international.org/15.0/#sec-isvalidintegerindex + +module.exports = function IsValidIntegerIndex(O, index) { + if (!isTypedArray(O)) { + throw new $TypeError('Assertion failed: `O` is not a TypedArray object'); + } + if (typeof index !== 'number') { + throw new $TypeError('Assertion failed: `index` is not a Number'); + } + + var buffer = typedArrayBuffer(O); + + if (IsDetachedBuffer(buffer)) { return false; } // step 1 + + if (!isInteger(index)) { return false; } // step 2 + + if (isNegativeZero(index)) { return false; } // step 3 + + var taRecord = MakeTypedArrayWithBufferWitnessRecord(O, 'UNORDERED'); // step 4 + if (IsTypedArrayOutOfBounds(taRecord)) { + return false; // step 6 + } + var length = TypedArrayLength(taRecord); // step 7 + + if (index < 0 || index >= length) { return false; } // step 8 + + return true; // step 9 +}; diff --git a/node_modules/es-abstract/2025/IsViewOutOfBounds.js b/node_modules/es-abstract/2025/IsViewOutOfBounds.js new file mode 100644 index 0000000000000000000000000000000000000000..b0ad8a836df192b22f174ed6f241b6f749118a67 --- /dev/null +++ b/node_modules/es-abstract/2025/IsViewOutOfBounds.js @@ -0,0 +1,48 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); + +var isDataViewWithBufferWitnessRecord = require('../helpers/records/data-view-with-buffer-witness-record'); + +var dataViewBuffer = require('data-view-buffer'); +var dataViewByteLength = require('data-view-byte-length'); +var dataViewByteOffset = require('data-view-byte-offset'); + +// https://262.ecma-international.org/15.0/#sec-isviewoutofbounds + +module.exports = function IsViewOutOfBounds(viewRecord) { + if (!isDataViewWithBufferWitnessRecord(viewRecord)) { + throw new $TypeError('Assertion failed: `viewRecord` must be a DataView With Buffer Witness Record'); + } + + var view = viewRecord['[[Object]]']; // step 1 + + var bufferByteLength = viewRecord['[[CachedBufferByteLength]]']; // step 2 + + if (IsDetachedBuffer(dataViewBuffer(view)) !== (bufferByteLength === 'DETACHED')) { + // step 3 + throw new $TypeError('Assertion failed: `IsDetachedBuffer(dataViewBuffer(view))` must be true if and only if `bufferByteLength === ~DETACHED~'); + } + + if (bufferByteLength === 'DETACHED') { + return true; // step 4 + } + + var byteOffsetStart = dataViewByteOffset(view); // step 5 + + var isFixed = IsFixedLengthArrayBuffer(dataViewBuffer(view)); + + var viewByteLength = isFixed ? dataViewByteLength(view) : 'AUTO'; // view.[[ByteLength]] + var byteOffsetEnd = viewByteLength === 'AUTO' ? bufferByteLength : byteOffsetStart + viewByteLength; // steps 6 - 7 + + if (byteOffsetStart > bufferByteLength || byteOffsetEnd > bufferByteLength) { + return true; // step 8 + } + + // 9. NOTE: 0-length DataViews are not considered out-of-bounds. + + return false; // step 10 +}; diff --git a/node_modules/es-abstract/2025/IsWordChar.js b/node_modules/es-abstract/2025/IsWordChar.js new file mode 100644 index 0000000000000000000000000000000000000000..8a440c3356d46c9a78e37007f82a208b697c75cd --- /dev/null +++ b/node_modules/es-abstract/2025/IsWordChar.js @@ -0,0 +1,42 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $indexOf = callBound('String.prototype.indexOf'); + +var IsArray = require('./IsArray'); +var WordCharacters = require('./WordCharacters'); + +var every = require('../helpers/every'); +var isRegExpRecord = require('../helpers/records/regexp-record'); + +var isChar = function isChar(c) { + return typeof c === 'string'; +}; + +// https://262.ecma-international.org/14.0/#sec-runtime-semantics-iswordchar-abstract-operation + +module.exports = function IsWordChar(rer, Input, e) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + if (!IsArray(Input) || !every(Input, isChar)) { + throw new $TypeError('Assertion failed: `Input` must be a List of characters'); + } + + if (!isInteger(e)) { + throw new $TypeError('Assertion failed: `e` must be an integer'); + } + + var InputLength = Input.length; // step 1 + + if (e === -1 || e === InputLength) { + return false; // step 2 + } + + var c = Input[e]; // step 3 + + return $indexOf(WordCharacters(rer), c) > -1; // steps 4-5 +}; diff --git a/node_modules/es-abstract/2025/IteratorClose.js b/node_modules/es-abstract/2025/IteratorClose.js new file mode 100644 index 0000000000000000000000000000000000000000..22bab4724e61544165143c01e0f196b8d8dd93f0 --- /dev/null +++ b/node_modules/es-abstract/2025/IteratorClose.js @@ -0,0 +1,65 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); +var CompletionRecord = require('./CompletionRecord'); +var GetMethod = require('./GetMethod'); +var IsCallable = require('./IsCallable'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +// https://262.ecma-international.org/15.0/#sec-iteratorclose + +module.exports = function IteratorClose(iteratorRecord, completion) { + if (!isIteratorRecord(iteratorRecord)) { + throw new $TypeError('Assertion failed: `iteratorRecord` must be an Iterator Record'); // step 1 + } + if (!isObject(iteratorRecord['[[Iterator]]'])) { + throw new $TypeError('Assertion failed: iteratorRecord.[[Iterator]] must be an Object'); // step 1 + } + + if (!IsCallable(completion) && !(completion instanceof CompletionRecord)) { // step 2 + 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 iterator = iteratorRecord['[[Iterator]]']; // step 3 + + var iteratorReturn; + try { + iteratorReturn = GetMethod(iterator, 'return'); // step 4 + } catch (e) { + completionThunk(); // throws if `completion` is a throw completion // step 6 + // eslint-disable-next-line no-useless-assignment + completionThunk = null; // ensure it's not called twice. + throw e; // step 7 + } + if (typeof iteratorReturn === 'undefined') { + return completionThunk(); // step 5.a - 5.b + } + + var innerResult; + try { + innerResult = Call(iteratorReturn, iterator, []); + } catch (e) { + // if we hit here, then "e" is the innerResult completion that needs re-throwing + + completionThunk(); // throws if `completion` is a throw completion // step 6 + // eslint-disable-next-line no-useless-assignment + completionThunk = null; // ensure it's not called twice. + + // if not, then return the innerResult completion + throw e; // step 7 + } + var completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does + // eslint-disable-next-line no-useless-assignment + completionThunk = null; // ensure it's not called twice. + + if (!isObject(innerResult)) { + throw new $TypeError('iterator .return must return an object'); + } + + return completionRecord; +}; diff --git a/node_modules/es-abstract/2025/IteratorComplete.js b/node_modules/es-abstract/2025/IteratorComplete.js new file mode 100644 index 0000000000000000000000000000000000000000..c8a0d67c244bbec3d032bb8a4cc5597b7419d97b --- /dev/null +++ b/node_modules/es-abstract/2025/IteratorComplete.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var ToBoolean = require('./ToBoolean'); + +// https://262.ecma-international.org/6.0/#sec-iteratorcomplete + +module.exports = function IteratorComplete(iterResult) { + if (!isObject(iterResult)) { + throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); + } + return ToBoolean(Get(iterResult, 'done')); +}; diff --git a/node_modules/es-abstract/2025/IteratorNext.js b/node_modules/es-abstract/2025/IteratorNext.js new file mode 100644 index 0000000000000000000000000000000000000000..abd7681be59e548c6c7cc56df1f492eecd9b3810 --- /dev/null +++ b/node_modules/es-abstract/2025/IteratorNext.js @@ -0,0 +1,36 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +// https://262.ecma-international.org/16.0/#sec-iteratornext + +module.exports = function IteratorNext(iteratorRecord) { + if (!isIteratorRecord(iteratorRecord)) { + throw new $TypeError('Assertion failed: `iteratorRecord` must be an Iterator Record'); // step 1 + } + + var result; + try { + if (arguments.length < 2) { // step 1 + result = Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]']); // step 1.a + } else { // step 2 + result = Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]'], [arguments[1]]); // step 2.a + } + } catch (e) { // step 3 + // eslint-disable-next-line no-param-reassign + iteratorRecord['[[Done]]'] = true; // step 3.a + throw e; // step 3.b + } + + if (!isObject(result)) { // step 5 + // eslint-disable-next-line no-param-reassign + iteratorRecord['[[Done]]'] = true; // step 5.a + throw new $TypeError('iterator next must return an object'); // step 5.b + } + return result; // step 6 +}; diff --git a/node_modules/es-abstract/2025/IteratorStep.js b/node_modules/es-abstract/2025/IteratorStep.js new file mode 100644 index 0000000000000000000000000000000000000000..4589d03716469af56b1047653fd5de062e873a91 --- /dev/null +++ b/node_modules/es-abstract/2025/IteratorStep.js @@ -0,0 +1,35 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IteratorComplete = require('./IteratorComplete'); +var IteratorNext = require('./IteratorNext'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +// https://262.ecma-international.org/16.0/#sec-iteratorstep + +module.exports = function IteratorStep(iteratorRecord) { + if (!isIteratorRecord(iteratorRecord)) { + throw new $TypeError('Assertion failed: `iteratorRecord` must be an Iterator Record'); // step 1 + } + + var result = IteratorNext(iteratorRecord); // step 1 + try { + var done = IteratorComplete(result); // step 2 + } catch (e) { // step 3 + // eslint-disable-next-line no-param-reassign + iteratorRecord['[[Done]]'] = true; // step 3.a + throw e; // step 3.b + + } + + if (done) { // step 5 + // eslint-disable-next-line no-param-reassign + iteratorRecord['[[Done]]'] = true; // step 5.a + return false; // step 5.b. should be `~done~` but `false` is more convenient here. + } + + return result; // steps 6 +}; + diff --git a/node_modules/es-abstract/2025/IteratorStepValue.js b/node_modules/es-abstract/2025/IteratorStepValue.js new file mode 100644 index 0000000000000000000000000000000000000000..07a83a19309f0e4f17bc1d0a17d42eb3506d40d9 --- /dev/null +++ b/node_modules/es-abstract/2025/IteratorStepValue.js @@ -0,0 +1,32 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IteratorStep = require('./IteratorStep'); +var IteratorValue = require('./IteratorValue'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +// https://262.ecma-international.org/16.0/#sec-iteratorstepvalue + +module.exports = function IteratorStepValue(iteratorRecord) { + if (!isIteratorRecord(iteratorRecord)) { + throw new $TypeError('Assertion failed: `iteratorRecord` must be an Iterator Record'); + } + + var result = IteratorStep(iteratorRecord); // step 1 + if (!result || result === 'DONE') { // step 2 + return result; // step 2.a + } + + var value; + try { + value = IteratorValue(result); // step 3 + } catch (e) { // step 4 + // eslint-disable-next-line no-param-reassign + iteratorRecord['[[Done]]'] = true; // step 4.a + throw e; // step 5 + } + + return value; // step 5 +}; diff --git a/node_modules/es-abstract/2025/IteratorToList.js b/node_modules/es-abstract/2025/IteratorToList.js new file mode 100644 index 0000000000000000000000000000000000000000..9a13a5a5052a4930a2b315c2f8eef95a2d2672de --- /dev/null +++ b/node_modules/es-abstract/2025/IteratorToList.js @@ -0,0 +1,27 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IteratorStep = require('./IteratorStep'); +var IteratorValue = require('./IteratorValue'); + +var isIteratorRecord = require('../helpers/records/iterator-record'); + +// https://262.ecma-international.org/15.0/#sec-iteratortolist + +module.exports = function IteratorToList(iteratorRecord) { + if (!isIteratorRecord(iteratorRecord)) { + throw new $TypeError('Assertion failed: `iteratorRecord` must be an Iterator Record'); // step 1 + } + + var values = []; // step 1 + var next = true; // step 2 + while (next) { // step 3 + next = IteratorStep(iteratorRecord); // step 3.a + if (next) { + var nextValue = IteratorValue(next); // step 3.b.i + values[values.length] = nextValue; // step 3.b.ii + } + } + return values; // step 4 +}; diff --git a/node_modules/es-abstract/2025/IteratorValue.js b/node_modules/es-abstract/2025/IteratorValue.js new file mode 100644 index 0000000000000000000000000000000000000000..016ddfbd4f01381dd13487740d6806003449d4b1 --- /dev/null +++ b/node_modules/es-abstract/2025/IteratorValue.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); + +// https://262.ecma-international.org/6.0/#sec-iteratorvalue + +module.exports = function IteratorValue(iterResult) { + if (!isObject(iterResult)) { + throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); + } + return Get(iterResult, 'value'); +}; + diff --git a/node_modules/es-abstract/2025/KeyForSymbol.js b/node_modules/es-abstract/2025/KeyForSymbol.js new file mode 100644 index 0000000000000000000000000000000000000000..e0f0f1c881b24881bb47560527efcd160a776cb9 --- /dev/null +++ b/node_modules/es-abstract/2025/KeyForSymbol.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +var $keyFor = callBound('Symbol.keyFor', true); + +// https://262.ecma-international.org/14.0/#sec-keyforsymbol + +module.exports = function KeyForSymbol(sym) { + if (typeof sym !== 'symbol') { + throw new $TypeError('Assertion failed: `sym` must be a Symbol'); + } + return $keyFor(sym); +}; diff --git a/node_modules/es-abstract/2025/LengthOfArrayLike.js b/node_modules/es-abstract/2025/LengthOfArrayLike.js new file mode 100644 index 0000000000000000000000000000000000000000..437bcd86c93b2ea23f727bb18c83ae4b58fe7e2b --- /dev/null +++ b/node_modules/es-abstract/2025/LengthOfArrayLike.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var ToLength = require('./ToLength'); + +// https://262.ecma-international.org/11.0/#sec-lengthofarraylike + +module.exports = function LengthOfArrayLike(obj) { + if (!isObject(obj)) { + throw new $TypeError('Assertion failed: `obj` must be an Object'); + } + return ToLength(Get(obj, 'length')); +}; + +// TODO: use this all over diff --git a/node_modules/es-abstract/2025/MakeDataViewWithBufferWitnessRecord.js b/node_modules/es-abstract/2025/MakeDataViewWithBufferWitnessRecord.js new file mode 100644 index 0000000000000000000000000000000000000000..a53353020978ff3286d1f5c23103545058105c54 --- /dev/null +++ b/node_modules/es-abstract/2025/MakeDataViewWithBufferWitnessRecord.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ArrayBufferByteLength = require('./ArrayBufferByteLength'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); + +var dataViewBuffer = require('data-view-buffer'); +var isDataView = require('is-data-view'); + +// https://262.ecma-international.org/15.0/#sec-makedataviewwithbufferwitnessrecord + +module.exports = function MakeDataViewWithBufferWitnessRecord(obj, order) { + if (!isDataView(obj)) { + throw new $TypeError('MakeDataViewWithBufferWitnessRecord called with non-DataView'); + } + if (order !== 'SEQ-CST' && order !== 'UNORDERED') { + throw new $TypeError('Assertion failed: `order` must be ~SEQ-CST~ or ~UNORDERED~'); + } + + var buffer = dataViewBuffer(obj); // step 1 + + var byteLength = IsDetachedBuffer(buffer) ? 'DETACHED' : ArrayBufferByteLength(buffer, order); // steps 2 - 3 + + return { '[[Object]]': obj, '[[CachedBufferByteLength]]': byteLength }; // step 4 +}; diff --git a/node_modules/es-abstract/2025/MakeDate.js b/node_modules/es-abstract/2025/MakeDate.js new file mode 100644 index 0000000000000000000000000000000000000000..3256ae1092afd21a469f4ca086dc028a73ecaa52 --- /dev/null +++ b/node_modules/es-abstract/2025/MakeDate.js @@ -0,0 +1,14 @@ +'use strict'; + +var $isFinite = require('math-intrinsics/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; +}; diff --git a/node_modules/es-abstract/2025/MakeDay.js b/node_modules/es-abstract/2025/MakeDay.js new file mode 100644 index 0000000000000000000000000000000000000000..3e5a91e6d1696ed0b1ede1140b517182ab10c84a --- /dev/null +++ b/node_modules/es-abstract/2025/MakeDay.js @@ -0,0 +1,36 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $DateUTC = GetIntrinsic('%Date.UTC%'); + +var $isFinite = require('math-intrinsics/isFinite'); + +var DateFromTime = require('./DateFromTime'); +var Day = require('./Day'); +var floor = require('./floor'); +var modulo = require('./modulo'); +var MonthFromTime = require('./MonthFromTime'); +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); +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 = ToIntegerOrInfinity(year); + var m = ToIntegerOrInfinity(month); + var dt = ToIntegerOrInfinity(date); + var ym = y + floor(m / 12); + if (!$isFinite(ym)) { + return NaN; + } + 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; +}; diff --git a/node_modules/es-abstract/2025/MakeFullYear.js b/node_modules/es-abstract/2025/MakeFullYear.js new file mode 100644 index 0000000000000000000000000000000000000000..3e18c272b25fc43540db2df065ab405e66f25153 --- /dev/null +++ b/node_modules/es-abstract/2025/MakeFullYear.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); + +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/15.0/#sec-makefullyear + +module.exports = function MakeFullYear(year) { + if (typeof year !== 'number') { + throw new $TypeError('Assertion failed: `year` must be a Number'); + } + + if (isNaN(year)) { + return NaN; // step 1 + } + + var truncated = ToIntegerOrInfinity(year); // step 2 + if (0 <= truncated && truncated <= 99) { + return 1900 + truncated; // step 3 + } + + return truncated; // step 4 +}; diff --git a/node_modules/es-abstract/2025/MakeMatchIndicesIndexPairArray.js b/node_modules/es-abstract/2025/MakeMatchIndicesIndexPairArray.js new file mode 100644 index 0000000000000000000000000000000000000000..eeb5b39020f0188982d6924e7d7479df06aa39c6 --- /dev/null +++ b/node_modules/es-abstract/2025/MakeMatchIndicesIndexPairArray.js @@ -0,0 +1,66 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ArrayCreate = require('./ArrayCreate'); +var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); +var GetMatchIndexPair = require('./GetMatchIndexPair'); +var IsArray = require('./IsArray'); +var OrdinaryObjectCreate = require('./OrdinaryObjectCreate'); +var ToString = require('./ToString'); + +var every = require('../helpers/every'); +var isMatchRecord = require('../helpers/records/match-record'); + +var isStringOrUndefined = function isStringOrUndefined(s) { + return typeof s === 'undefined' || typeof s === 'string'; +}; + +var isMatchRecordOrUndefined = function isMatchRecordOrUndefined(m) { + return typeof m === 'undefined' || isMatchRecord(m); +}; + +var MAX_ARRAY_LENGTH = require('math-intrinsics/constants/maxArrayLength'); + +// https://262.ecma-international.org/13.0/#sec-getmatchindexpair + +module.exports = function MakeMatchIndicesIndexPairArray(S, indices, groupNames, hasGroups) { + if (typeof S !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + if (!IsArray(indices) || !every(indices, isMatchRecordOrUndefined)) { + throw new $TypeError('Assertion failed: `indices` must be a List of either Match Records or `undefined`'); + } + if (!IsArray(groupNames) || !every(groupNames, isStringOrUndefined)) { + throw new $TypeError('Assertion failed: `groupNames` must be a List of either Strings or `undefined`'); + } + if (typeof hasGroups !== 'boolean') { + throw new $TypeError('Assertion failed: `hasGroups` must be a Boolean'); + } + + var n = indices.length; // step 1 + if (!(n < MAX_ARRAY_LENGTH)) { + throw new $TypeError('Assertion failed: `indices` length must be less than the max array size, 2**32 - 1'); + } + if (groupNames.length !== n - 1) { + throw new $TypeError('Assertion failed: `groupNames` must have exactly one fewer item than `indices`'); + } + + var A = ArrayCreate(n); // step 5 + var groups = hasGroups ? OrdinaryObjectCreate(null) : void undefined; // step 6-7 + CreateDataPropertyOrThrow(A, 'groups', groups); // step 8 + + for (var i = 0; i < n; i += 1) { // step 9 + var matchIndices = indices[i]; // step 9.a + // eslint-disable-next-line no-negated-condition + var matchIndexPair = typeof matchIndices !== 'undefined' ? GetMatchIndexPair(S, matchIndices) : void undefined; // step 9.b-9.c + CreateDataPropertyOrThrow(A, ToString(i), matchIndexPair); // step 9.d + if (i > 0 && typeof groupNames[i - 1] !== 'undefined') { // step 9.e + if (!groups) { + throw new $TypeError('if `hasGroups` is `false`, `groupNames` can only contain `undefined` values'); + } + CreateDataPropertyOrThrow(groups, groupNames[i - 1], matchIndexPair); // step 9.e.i + } + } + return A; // step 10 +}; diff --git a/node_modules/es-abstract/2025/MakeTime.js b/node_modules/es-abstract/2025/MakeTime.js new file mode 100644 index 0000000000000000000000000000000000000000..ac7d81f7aeb735f350796f6f1e12bce24c8eb114 --- /dev/null +++ b/node_modules/es-abstract/2025/MakeTime.js @@ -0,0 +1,23 @@ +'use strict'; + +var $isFinite = require('math-intrinsics/isFinite'); +var timeConstants = require('../helpers/timeConstants'); +var msPerSecond = timeConstants.msPerSecond; +var msPerMinute = timeConstants.msPerMinute; +var msPerHour = timeConstants.msPerHour; + +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); + +// https://262.ecma-international.org/12.0/#sec-maketime + +module.exports = function MakeTime(hour, min, sec, ms) { + if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { + return NaN; + } + var h = ToIntegerOrInfinity(hour); + var m = ToIntegerOrInfinity(min); + var s = ToIntegerOrInfinity(sec); + var milli = ToIntegerOrInfinity(ms); + var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; + return t; +}; diff --git a/node_modules/es-abstract/2025/MakeTypedArrayWithBufferWitnessRecord.js b/node_modules/es-abstract/2025/MakeTypedArrayWithBufferWitnessRecord.js new file mode 100644 index 0000000000000000000000000000000000000000..2643599bfb0886bcbfac047131017438374c76e9 --- /dev/null +++ b/node_modules/es-abstract/2025/MakeTypedArrayWithBufferWitnessRecord.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ArrayBufferByteLength = require('./ArrayBufferByteLength'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); + +var isTypedArray = require('is-typed-array'); +var typedArrayBuffer = require('typed-array-buffer'); + +// https://262.ecma-international.org/15.0/#sec-maketypedarraywithbufferwitnessrecord + +module.exports = function MakeTypedArrayWithBufferWitnessRecord(obj, order) { + if (!isTypedArray(obj)) { + throw new $TypeError('Assertion failed: `obj` must be a Typed Array'); + } + if (order !== 'SEQ-CST' && order !== 'UNORDERED') { + throw new $TypeError('Assertion failed: `order` must be ~SEQ-CST~ or ~UNORDERED~'); + } + + var buffer = typedArrayBuffer(obj); // step 1 + + var byteLength = IsDetachedBuffer(buffer) ? 'DETACHED' : ArrayBufferByteLength(buffer, order); // steps 2 - 3 + + return { '[[Object]]': obj, '[[CachedBufferByteLength]]': byteLength }; // step 4 +}; diff --git a/node_modules/es-abstract/2025/MinFromTime.js b/node_modules/es-abstract/2025/MinFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..a0c631d4cc56cb21e15712def6008d5623edd0f9 --- /dev/null +++ b/node_modules/es-abstract/2025/MinFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/2025/MonthFromTime.js b/node_modules/es-abstract/2025/MonthFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..e551ee2be6da5cc49c7da94be78095c0803c53d9 --- /dev/null +++ b/node_modules/es-abstract/2025/MonthFromTime.js @@ -0,0 +1,51 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); + +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; + } + + throw new $RangeError('Assertion failed: `day` is out of range'); +}; diff --git a/node_modules/es-abstract/2025/NewPromiseCapability.js b/node_modules/es-abstract/2025/NewPromiseCapability.js new file mode 100644 index 0000000000000000000000000000000000000000..893266fe9f8da7b032d6fc835750a07c30086179 --- /dev/null +++ b/node_modules/es-abstract/2025/NewPromiseCapability.js @@ -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 +}; diff --git a/node_modules/es-abstract/2025/NormalCompletion.js b/node_modules/es-abstract/2025/NormalCompletion.js new file mode 100644 index 0000000000000000000000000000000000000000..1e429dd65cfaded0bd09155819605198a45c628d --- /dev/null +++ b/node_modules/es-abstract/2025/NormalCompletion.js @@ -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); +}; diff --git a/node_modules/es-abstract/2025/Number/add.js b/node_modules/es-abstract/2025/Number/add.js new file mode 100644 index 0000000000000000000000000000000000000000..eead1f19fec68bed3c141340b4318116f7e9ec06 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/add.js @@ -0,0 +1,31 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isFinite = require('math-intrinsics/isFinite'); +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-add + +module.exports = function NumberAdd(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + if (isNaN(x) || isNaN(y) || (x === Infinity && y === -Infinity) || (x === -Infinity && y === Infinity)) { + return NaN; + } + + if (!isFinite(x)) { + return x; + } + if (!isFinite(y)) { + return y; + } + + if (x === y && x === 0) { // both zeroes + return Infinity / x === -Infinity && Infinity / y === -Infinity ? -0 : +0; + } + + // shortcut for the actual spec mechanics + return x + y; +}; diff --git a/node_modules/es-abstract/2025/Number/bitwiseAND.js b/node_modules/es-abstract/2025/Number/bitwiseAND.js new file mode 100644 index 0000000000000000000000000000000000000000..d85d0f6f6a657b4afcbb3abd8c655d9e5a247400 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/bitwiseAND.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var NumberBitwiseOp = require('../NumberBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseAND + +module.exports = function NumberBitwiseAND(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + return NumberBitwiseOp('&', x, y); +}; diff --git a/node_modules/es-abstract/2025/Number/bitwiseNOT.js b/node_modules/es-abstract/2025/Number/bitwiseNOT.js new file mode 100644 index 0000000000000000000000000000000000000000..7e3035e879df0d334dab28b00d3f07c1583c0429 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/bitwiseNOT.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('../ToInt32'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseNOT + +module.exports = function NumberBitwiseNOT(x) { + if (typeof x !== 'number') { + throw new $TypeError('Assertion failed: `x` argument must be a Number'); + } + var oldValue = ToInt32(x); + // Return the result of applying the bitwise operator op to lnum and rnum. The result is a signed 32-bit integer. + return ~oldValue; +}; diff --git a/node_modules/es-abstract/2025/Number/bitwiseOR.js b/node_modules/es-abstract/2025/Number/bitwiseOR.js new file mode 100644 index 0000000000000000000000000000000000000000..2930a61222f9cc53559ffceac2865b5fdabfeea4 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/bitwiseOR.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var NumberBitwiseOp = require('../NumberBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseOR + +module.exports = function NumberBitwiseOR(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + return NumberBitwiseOp('|', x, y); +}; diff --git a/node_modules/es-abstract/2025/Number/bitwiseXOR.js b/node_modules/es-abstract/2025/Number/bitwiseXOR.js new file mode 100644 index 0000000000000000000000000000000000000000..fab4baae216a9c35ef1eb20fc941aca98028cb21 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/bitwiseXOR.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var NumberBitwiseOp = require('../NumberBitwiseOp'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseXOR + +module.exports = function NumberBitwiseXOR(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + return NumberBitwiseOp('^', x, y); +}; diff --git a/node_modules/es-abstract/2025/Number/divide.js b/node_modules/es-abstract/2025/Number/divide.js new file mode 100644 index 0000000000000000000000000000000000000000..12ec011c993217453e4633d626e47d3baf134beb --- /dev/null +++ b/node_modules/es-abstract/2025/Number/divide.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isFinite = require('math-intrinsics/isFinite'); +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-divide + +module.exports = function NumberDivide(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + if (isNaN(x) || isNaN(y) || (!isFinite(x) && !isFinite(y))) { + return NaN; + } + // shortcut for the actual spec mechanics + return x / y; +}; diff --git a/node_modules/es-abstract/2025/Number/equal.js b/node_modules/es-abstract/2025/Number/equal.js new file mode 100644 index 0000000000000000000000000000000000000000..ebd9f7463a062a0b95d80a80e4ef2cbd8efc648e --- /dev/null +++ b/node_modules/es-abstract/2025/Number/equal.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-equal + +module.exports = function NumberEqual(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + if (isNaN(x) || isNaN(y)) { + return false; + } + // shortcut for the actual spec mechanics + return x === y; +}; diff --git a/node_modules/es-abstract/2025/Number/exponentiate.js b/node_modules/es-abstract/2025/Number/exponentiate.js new file mode 100644 index 0000000000000000000000000000000000000000..37812d85bccd0b0438c66595e1e6d5aef4c94bc7 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/exponentiate.js @@ -0,0 +1,74 @@ +'use strict'; + +// var isNegativeZero = require('math-intrinsics/isNegativeZero'); +var $pow = require('math-intrinsics/pow'); + +var $TypeError = require('es-errors/type'); + +/* +var abs = require('math-intrinsics/abs'); +var isFinite = require('math-intrinsics/isFinite'); +var isNaN = require('math-intrinsics/isNaN'); + +var IsInteger = require('math-intrinsics/isInteger'); +*/ + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-exponentiate + +/* eslint max-lines-per-function: 0, max-statements: 0 */ + +module.exports = function NumberExponentiate(base, exponent) { + if (typeof base !== 'number' || typeof exponent !== 'number') { + throw new $TypeError('Assertion failed: `base` and `exponent` arguments must be Numbers'); + } + return $pow(base, exponent); + /* + if (isNaN(exponent)) { + return NaN; + } + if (exponent === 0) { + return 1; + } + if (isNaN(base)) { + return NaN; + } + var aB = abs(base); + if (aB > 1 && exponent === Infinity) { + return Infinity; + } + if (aB > 1 && exponent === -Infinity) { + return 0; + } + if (aB === 1 && (exponent === Infinity || exponent === -Infinity)) { + return NaN; + } + if (aB < 1 && exponent === Infinity) { + return +0; + } + if (aB < 1 && exponent === -Infinity) { + return Infinity; + } + if (base === Infinity) { + return exponent > 0 ? Infinity : 0; + } + if (base === -Infinity) { + var isOdd = true; + if (exponent > 0) { + return isOdd ? -Infinity : Infinity; + } + return isOdd ? -0 : 0; + } + if (exponent > 0) { + return isNegativeZero(base) ? Infinity : 0; + } + if (isNegativeZero(base)) { + if (exponent > 0) { + return isOdd ? -0 : 0; + } + return isOdd ? -Infinity : Infinity; + } + if (base < 0 && isFinite(base) && isFinite(exponent) && !IsInteger(exponent)) { + return NaN; + } + */ +}; diff --git a/node_modules/es-abstract/2025/Number/index.js b/node_modules/es-abstract/2025/Number/index.js new file mode 100644 index 0000000000000000000000000000000000000000..63ec52da69e285d605f9f5db2ffe69ed4af591f2 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/index.js @@ -0,0 +1,43 @@ +'use strict'; + +var add = require('./add'); +var bitwiseAND = require('./bitwiseAND'); +var bitwiseNOT = require('./bitwiseNOT'); +var bitwiseOR = require('./bitwiseOR'); +var bitwiseXOR = require('./bitwiseXOR'); +var divide = require('./divide'); +var equal = require('./equal'); +var exponentiate = require('./exponentiate'); +var leftShift = require('./leftShift'); +var lessThan = require('./lessThan'); +var multiply = require('./multiply'); +var remainder = require('./remainder'); +var sameValue = require('./sameValue'); +var sameValueZero = require('./sameValueZero'); +var signedRightShift = require('./signedRightShift'); +var subtract = require('./subtract'); +var toString = require('./toString'); +var unaryMinus = require('./unaryMinus'); +var unsignedRightShift = require('./unsignedRightShift'); + +module.exports = { + add: add, + bitwiseAND: bitwiseAND, + bitwiseNOT: bitwiseNOT, + bitwiseOR: bitwiseOR, + bitwiseXOR: bitwiseXOR, + divide: divide, + equal: equal, + exponentiate: exponentiate, + leftShift: leftShift, + lessThan: lessThan, + multiply: multiply, + remainder: remainder, + sameValue: sameValue, + sameValueZero: sameValueZero, + signedRightShift: signedRightShift, + subtract: subtract, + toString: toString, + unaryMinus: unaryMinus, + unsignedRightShift: unsignedRightShift +}; diff --git a/node_modules/es-abstract/2025/Number/leftShift.js b/node_modules/es-abstract/2025/Number/leftShift.js new file mode 100644 index 0000000000000000000000000000000000000000..bbaffae5d3e3bca167fbf5e501f43beece5b2e7f --- /dev/null +++ b/node_modules/es-abstract/2025/Number/leftShift.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('../ToInt32'); +var ToUint32 = require('../ToUint32'); +var modulo = require('../modulo'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-leftShift + +module.exports = function NumberLeftShift(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + var lnum = ToInt32(x); + var rnum = ToUint32(y); + + var shiftCount = modulo(rnum, 32); + + return lnum << shiftCount; +}; diff --git a/node_modules/es-abstract/2025/Number/lessThan.js b/node_modules/es-abstract/2025/Number/lessThan.js new file mode 100644 index 0000000000000000000000000000000000000000..538174306dd342a14dc82f25f2b8e5a56c9e6a32 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/lessThan.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-lessThan + +module.exports = function NumberLessThan(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + // If x is NaN, return undefined. + // If y is NaN, return undefined. + if (isNaN(x) || isNaN(y)) { + return void undefined; + } + + // shortcut for the actual spec mechanics + return x < y; +}; diff --git a/node_modules/es-abstract/2025/Number/multiply.js b/node_modules/es-abstract/2025/Number/multiply.js new file mode 100644 index 0000000000000000000000000000000000000000..318787cbab9b472dca1f47e18c0faec44c4da1c3 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/multiply.js @@ -0,0 +1,29 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-multiply + +module.exports = function NumberMultiply(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + if (isNaN(x) || isNaN(y) || (x === 0 && !isFinite(y)) || (!isFinite(x) && y === 0)) { + return NaN; + } + if (!isFinite(x) && !isFinite(y)) { + return x === y ? Infinity : -Infinity; + } + if (!isFinite(x) && y !== 0) { + return x > 0 ? Infinity : -Infinity; + } + if (!isFinite(y) && x !== 0) { + return y > 0 ? Infinity : -Infinity; + } + + // shortcut for the actual spec mechanics + return x * y; +}; diff --git a/node_modules/es-abstract/2025/Number/remainder.js b/node_modules/es-abstract/2025/Number/remainder.js new file mode 100644 index 0000000000000000000000000000000000000000..9390586ae1b15382f226bd8c2b18bacd8a8898b4 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/remainder.js @@ -0,0 +1,38 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isNaN = require('math-intrinsics/isNaN'); +var isFinite = require('math-intrinsics/isFinite'); + +var truncate = require('../truncate'); + +// https://262.ecma-international.org/14.0/#sec-numeric-types-number-remainder + +module.exports = function NumberRemainder(n, d) { + if (typeof n !== 'number' || typeof d !== 'number') { + throw new $TypeError('Assertion failed: `n` and `d` arguments must be Numbers'); + } + + // If either operand is NaN, the result is NaN. + // If the dividend is an infinity, or the divisor is a zero, or both, the result is NaN. + if (isNaN(n) || isNaN(d) || !isFinite(n) || d === 0) { + return NaN; + } + + // If the dividend is finite and the divisor is an infinity, the result equals the dividend. + // If the dividend is a zero and the divisor is nonzero and finite, the result is the same as the dividend. + if (!isFinite(d) || n === 0) { + return n; + } + + if (!isFinite(n) || !isFinite(d) || n === 0 || d === 0) { + throw new $TypeError('Assertion failed: `n` and `d` arguments must be finite and nonzero'); + } + var quotient = n / d; + var q = truncate(quotient); + var r = n - (d * q); + if (r === 0 && n < 0) { + return -0; + } + return r; +}; diff --git a/node_modules/es-abstract/2025/Number/sameValue.js b/node_modules/es-abstract/2025/Number/sameValue.js new file mode 100644 index 0000000000000000000000000000000000000000..f7c6f78a4afc352f3ead59cd4ffc866dadc74130 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/sameValue.js @@ -0,0 +1,18 @@ +'use strict'; + +var isNegativeZero = require('math-intrinsics/isNegativeZero'); +var $TypeError = require('es-errors/type'); + +var NumberSameValueZero = require('./sameValueZero'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-sameValue + +module.exports = function NumberSameValue(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + if (x === 0 && y === 0) { + return !(isNegativeZero(x) ^ isNegativeZero(y)); + } + return NumberSameValueZero(x, y); +}; diff --git a/node_modules/es-abstract/2025/Number/sameValueZero.js b/node_modules/es-abstract/2025/Number/sameValueZero.js new file mode 100644 index 0000000000000000000000000000000000000000..383ab82f70c8612fed5287ec4b0b0b5814f48750 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/sameValueZero.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-sameValueZero + +module.exports = function NumberSameValueZero(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + var xNaN = isNaN(x); + var yNaN = isNaN(y); + if (xNaN || yNaN) { + return xNaN === yNaN; + } + return x === y; +}; diff --git a/node_modules/es-abstract/2025/Number/signedRightShift.js b/node_modules/es-abstract/2025/Number/signedRightShift.js new file mode 100644 index 0000000000000000000000000000000000000000..b22775b14f06bec9ec6e4e1b53096d9e69740327 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/signedRightShift.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('../ToInt32'); +var ToUint32 = require('../ToUint32'); +var modulo = require('../modulo'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-signedRightShift + +module.exports = function NumberSignedRightShift(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + var lnum = ToInt32(x); + var rnum = ToUint32(y); + + var shiftCount = modulo(rnum, 32); + + return lnum >> shiftCount; +}; diff --git a/node_modules/es-abstract/2025/Number/subtract.js b/node_modules/es-abstract/2025/Number/subtract.js new file mode 100644 index 0000000000000000000000000000000000000000..9f66df451ff8029461369d79f81debc17766379a --- /dev/null +++ b/node_modules/es-abstract/2025/Number/subtract.js @@ -0,0 +1,15 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var NumberAdd = require('./add'); +var NumberUnaryMinus = require('./unaryMinus'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-subtract + +module.exports = function NumberSubtract(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + return NumberAdd(x, NumberUnaryMinus(y)); +}; diff --git a/node_modules/es-abstract/2025/Number/toString.js b/node_modules/es-abstract/2025/Number/toString.js new file mode 100644 index 0000000000000000000000000000000000000000..4864dc4d6d04742a32680b559826d424cafd4362 --- /dev/null +++ b/node_modules/es-abstract/2025/Number/toString.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $numberToString = callBound('Number.prototype.toString'); + +// https://262.ecma-international.org/14.0/#sec-numeric-types-number-tostring + +module.exports = function NumberToString(x, radix) { + if (typeof x !== 'number') { + throw new $TypeError('Assertion failed: `x` must be a Number'); + } + if (!isInteger(radix) || radix < 2 || radix > 36) { + throw new $TypeError('Assertion failed: `radix` must be an integer >= 2 and <= 36'); + } + + return $numberToString(x, radix); // steps 1 - 12 +}; diff --git a/node_modules/es-abstract/2025/Number/unaryMinus.js b/node_modules/es-abstract/2025/Number/unaryMinus.js new file mode 100644 index 0000000000000000000000000000000000000000..ab4ed98b2db294cfcd12edd31d9a7fd06649b9dd --- /dev/null +++ b/node_modules/es-abstract/2025/Number/unaryMinus.js @@ -0,0 +1,17 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var isNaN = require('../../helpers/isNaN'); + +// https://262.ecma-international.org/11.0/#sec-numeric-types-number-unaryMinus + +module.exports = function NumberUnaryMinus(x) { + if (typeof x !== 'number') { + throw new $TypeError('Assertion failed: `x` argument must be a Number'); + } + if (isNaN(x)) { + return NaN; + } + return -x; +}; diff --git a/node_modules/es-abstract/2025/Number/unsignedRightShift.js b/node_modules/es-abstract/2025/Number/unsignedRightShift.js new file mode 100644 index 0000000000000000000000000000000000000000..70334bd60c5a4417c07b2a5f51ba942fc8731d8f --- /dev/null +++ b/node_modules/es-abstract/2025/Number/unsignedRightShift.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('../ToInt32'); +var ToUint32 = require('../ToUint32'); +var modulo = require('../modulo'); + +// https://262.ecma-international.org/12.0/#sec-numeric-types-number-unsignedRightShift + +module.exports = function NumberUnsignedRightShift(x, y) { + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + + var lnum = ToInt32(x); + var rnum = ToUint32(y); + + var shiftCount = modulo(rnum, 32); + + return lnum >>> shiftCount; +}; diff --git a/node_modules/es-abstract/2025/NumberBitwiseOp.js b/node_modules/es-abstract/2025/NumberBitwiseOp.js new file mode 100644 index 0000000000000000000000000000000000000000..769d1fa15aee1ba5ee58abd4f96579f9ba38138f --- /dev/null +++ b/node_modules/es-abstract/2025/NumberBitwiseOp.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ToInt32 = require('./ToInt32'); +var ToUint32 = require('./ToUint32'); + +// https://262.ecma-international.org/11.0/#sec-numberbitwiseop + +module.exports = function NumberBitwiseOp(op, x, y) { + if (op !== '&' && op !== '|' && op !== '^') { + throw new $TypeError('Assertion failed: `op` must be `&`, `|`, or `^`'); + } + if (typeof x !== 'number' || typeof y !== 'number') { + throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); + } + var lnum = ToInt32(x); + var rnum = ToUint32(y); + if (op === '&') { + return lnum & rnum; + } + if (op === '|') { + return lnum | rnum; + } + return lnum ^ rnum; +}; diff --git a/node_modules/es-abstract/2025/NumberToBigInt.js b/node_modules/es-abstract/2025/NumberToBigInt.js new file mode 100644 index 0000000000000000000000000000000000000000..27fb6682301aaeb4a93dfad4ed9bcbdbaa24f6c2 --- /dev/null +++ b/node_modules/es-abstract/2025/NumberToBigInt.js @@ -0,0 +1,25 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $RangeError = require('es-errors/range'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var isInteger = require('math-intrinsics/isInteger'); + +// https://262.ecma-international.org/12.0/#sec-numbertobigint + +module.exports = function NumberToBigInt(number) { + if (typeof number !== 'number') { + throw new $TypeError('Assertion failed: `number` must be a String'); + } + if (!isInteger(number)) { + throw new $RangeError('The number ' + number + ' cannot be converted to a BigInt because it is not an integer'); + } + if (!$BigInt) { + throw new $SyntaxError('BigInts are not supported in this environment'); + } + return $BigInt(number); +}; diff --git a/node_modules/es-abstract/2025/NumericToRawBytes.js b/node_modules/es-abstract/2025/NumericToRawBytes.js new file mode 100644 index 0000000000000000000000000000000000000000..8c9bc8a1bbd9dea4112c090663b4f8a29d55bfc7 --- /dev/null +++ b/node_modules/es-abstract/2025/NumericToRawBytes.js @@ -0,0 +1,65 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var hasOwnProperty = require('./HasOwnProperty'); +var ToBigInt64 = require('./ToBigInt64'); +var ToBigUint64 = require('./ToBigUint64'); +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 valueToFloat16Bytes = require('../helpers/valueToFloat16Bytes'); +var valueToFloat32Bytes = require('../helpers/valueToFloat32Bytes'); +var valueToFloat64Bytes = require('../helpers/valueToFloat64Bytes'); +var integerToNBytes = require('../helpers/integerToNBytes'); + +var tableTAO = require('./tables/typed-array-objects'); + +// https://262.ecma-international.org/15.0/#table-the-typedarray-constructors +var TypeToAO = { + __proto__: null, + $INT8: ToInt8, + $UINT8: ToUint8, + $UINT8C: ToUint8Clamp, + $INT16: ToInt16, + $UINT16: ToUint16, + $INT32: ToInt32, + $UINT32: ToUint32, + $BIGINT64: ToBigInt64, + $BIGUINT64: ToBigUint64 +}; + +// https://262.ecma-international.org/16.0/#sec-numerictorawbytes + +module.exports = function NumericToRawBytes(type, value, isLittleEndian) { + if (typeof type !== 'string' || !hasOwnProperty(tableTAO.size, '$' + type)) { + throw new $TypeError('Assertion failed: `type` must be a TypedArray element type'); + } + if (typeof value !== 'number' && typeof value !== 'bigint') { + throw new $TypeError('Assertion failed: `value` must be a Number or a BigInt'); + } + if (typeof isLittleEndian !== 'boolean') { + throw new $TypeError('Assertion failed: `isLittleEndian` must be a Boolean'); + } + + if (type === 'FLOAT16') { // step 1 + return valueToFloat16Bytes(value, isLittleEndian); + } else if (type === 'FLOAT32') { // step 2 + return valueToFloat32Bytes(value, isLittleEndian); + } else if (type === 'FLOAT64') { // step 3 + return valueToFloat64Bytes(value, isLittleEndian); + } // step 4 + + var n = tableTAO.size['$' + type]; // step 4.a + + var convOp = TypeToAO['$' + type]; // step 4.b + + var intValue = convOp(value); // step 4.c + + return integerToNBytes(intValue, n, isLittleEndian); // step 4.d, 4.e, 5 +}; diff --git a/node_modules/es-abstract/2025/ObjectDefineProperties.js b/node_modules/es-abstract/2025/ObjectDefineProperties.js new file mode 100644 index 0000000000000000000000000000000000000000..1df7c688399fe01ca080d3a551ab66f82ee0a751 --- /dev/null +++ b/node_modules/es-abstract/2025/ObjectDefineProperties.js @@ -0,0 +1,33 @@ +'use strict'; + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); +var Get = require('./Get'); +var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); +var ToObject = require('./ToObject'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +var forEach = require('../helpers/forEach'); +var OwnPropertyKeys = require('own-keys'); + +// https://262.ecma-international.org/15.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 = OrdinaryGetOwnProperty(props, nextKey); // 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 + descriptors[descriptors.length] = { '[[Key]]': nextKey, '[[Descriptor]]': desc }; // step 4.b.iii + } + }); + + forEach(descriptors, function (pair) { // step 5 + DefinePropertyOrThrow(O, pair['[[Key]]'], pair['[[Descriptor]]']); // step 5.c + }); + + return O; // step 6 +}; diff --git a/node_modules/es-abstract/2025/OrdinaryCreateFromConstructor.js b/node_modules/es-abstract/2025/OrdinaryCreateFromConstructor.js new file mode 100644 index 0000000000000000000000000000000000000000..ac997c828209e0a91a21801f62f206d4dd642c29 --- /dev/null +++ b/node_modules/es-abstract/2025/OrdinaryCreateFromConstructor.js @@ -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 OrdinaryObjectCreate = require('./OrdinaryObjectCreate'); + +// 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 OrdinaryObjectCreate(proto, slots); +}; diff --git a/node_modules/es-abstract/2025/OrdinaryDefineOwnProperty.js b/node_modules/es-abstract/2025/OrdinaryDefineOwnProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..1a61488c6311f778620cdccb377e0b377040b055 --- /dev/null +++ b/node_modules/es-abstract/2025/OrdinaryDefineOwnProperty.js @@ -0,0 +1,54 @@ +'use strict'; + +var $gOPD = require('gopd'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyDescriptor = require('../helpers/records/property-descriptor'); + +var IsAccessorDescriptor = require('./IsAccessorDescriptor'); +var IsExtensible = require('./IsExtensible'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); +var SameValue = require('./SameValue'); +var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-ordinarydefineownproperty + +module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { + if (!isObject(O)) { + 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); +}; diff --git a/node_modules/es-abstract/2025/OrdinaryGetOwnProperty.js b/node_modules/es-abstract/2025/OrdinaryGetOwnProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..e0c9cb1a595d9273e0bbea4f0b6a99918320b7fd --- /dev/null +++ b/node_modules/es-abstract/2025/OrdinaryGetOwnProperty.js @@ -0,0 +1,41 @@ +'use strict'; + +var $gOPD = require('gopd'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var callBound = require('call-bound'); + +var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); + +var hasOwn = require('hasown'); + +var IsArray = require('./IsArray'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var IsRegExp = require('./IsRegExp'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-ordinarygetownproperty + +module.exports = function OrdinaryGetOwnProperty(O, P) { + if (!isObject(O)) { + 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)); +}; diff --git a/node_modules/es-abstract/2025/OrdinaryGetPrototypeOf.js b/node_modules/es-abstract/2025/OrdinaryGetPrototypeOf.js new file mode 100644 index 0000000000000000000000000000000000000000..7ef8bee34617c4ecaa2bd4b55cf1eb6a6665fe50 --- /dev/null +++ b/node_modules/es-abstract/2025/OrdinaryGetPrototypeOf.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var $getProto = require('get-proto'); + +// https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof + +module.exports = function OrdinaryGetPrototypeOf(O) { + if (!isObject(O)) { + 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); +}; diff --git a/node_modules/es-abstract/2025/OrdinaryHasInstance.js b/node_modules/es-abstract/2025/OrdinaryHasInstance.js new file mode 100644 index 0000000000000000000000000000000000000000..a0a83e6733a49e898d0f9db5df20a54028ad69e3 --- /dev/null +++ b/node_modules/es-abstract/2025/OrdinaryHasInstance.js @@ -0,0 +1,23 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); + +// https://262.ecma-international.org/6.0/#sec-ordinaryhasinstance + +module.exports = function OrdinaryHasInstance(C, O) { + if (!IsCallable(C)) { + return false; + } + if (!isObject(O)) { + return false; + } + var P = Get(C, 'prototype'); + if (!isObject(P)) { + throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); + } + return O instanceof C; +}; diff --git a/node_modules/es-abstract/2025/OrdinaryHasProperty.js b/node_modules/es-abstract/2025/OrdinaryHasProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..c6c5c11961374a2c3c4beb751aca52a9973093d6 --- /dev/null +++ b/node_modules/es-abstract/2025/OrdinaryHasProperty.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); + +// https://262.ecma-international.org/6.0/#sec-ordinaryhasproperty + +module.exports = function OrdinaryHasProperty(O, P) { + if (!isObject(O)) { + 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; +}; diff --git a/node_modules/es-abstract/2025/OrdinaryObjectCreate.js b/node_modules/es-abstract/2025/OrdinaryObjectCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..aca0ac014fead59cc298b13659179c082a4ae82a --- /dev/null +++ b/node_modules/es-abstract/2025/OrdinaryObjectCreate.js @@ -0,0 +1,56 @@ +'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 isObject = require('es-object-atoms/isObject'); + +var IsArray = require('./IsArray'); + +var forEach = require('../helpers/forEach'); + +var SLOT = require('internal-slot'); + +var hasProto = require('has-proto')(); + +// https://262.ecma-international.org/11.0/#sec-objectcreate + +module.exports = function OrdinaryObjectCreate(proto) { + if (proto !== null && !isObject(proto)) { + throw new $TypeError('Assertion failed: `proto` must be null or an object'); + } + var additionalInternalSlotsList = arguments.length < 2 ? [] : arguments[1]; + if (!IsArray(additionalInternalSlotsList)) { + throw new $TypeError('Assertion failed: `additionalInternalSlotsList` must be an Array'); + } + + // var internalSlotsList = ['[[Prototype]]', '[[Extensible]]']; // step 1 + // internalSlotsList.push(...additionalInternalSlotsList); // step 2 + // var O = MakeBasicObject(internalSlotsList); // step 3 + // setProto(O, proto); // step 4 + // return O; // step 5 + + var O; + if (hasProto) { + O = { __proto__: proto }; + } else if ($ObjectCreate) { + O = $ObjectCreate(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 (additionalInternalSlotsList.length > 0) { + forEach(additionalInternalSlotsList, function (slot) { + SLOT.set(O, slot, void undefined); + }); + } + + return O; +}; diff --git a/node_modules/es-abstract/2025/OrdinarySetPrototypeOf.js b/node_modules/es-abstract/2025/OrdinarySetPrototypeOf.js new file mode 100644 index 0000000000000000000000000000000000000000..b493a442ddd22b125fde2ed40eeebddf2d080a2d --- /dev/null +++ b/node_modules/es-abstract/2025/OrdinarySetPrototypeOf.js @@ -0,0 +1,50 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var $setProto = require('set-proto'); +var isObject = require('es-object-atoms/isObject'); + +var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); + +// https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof + +module.exports = function OrdinarySetPrototypeOf(O, V) { + if (V !== null && !isObject(V)) { + 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; + */ +}; diff --git a/node_modules/es-abstract/2025/OrdinaryToPrimitive.js b/node_modules/es-abstract/2025/OrdinaryToPrimitive.js new file mode 100644 index 0000000000000000000000000000000000000000..5feb5694e8aba94591eac365aa6bd8a6b985f305 --- /dev/null +++ b/node_modules/es-abstract/2025/OrdinaryToPrimitive.js @@ -0,0 +1,36 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var Call = require('./Call'); +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); + +var inspect = require('object-inspect'); + +// https://262.ecma-international.org/8.0/#sec-ordinarytoprimitive + +module.exports = function OrdinaryToPrimitive(O, hint) { + if (!isObject(O)) { + 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 (!isObject(result)) { + return result; + } + } + } + + throw new $TypeError('No primitive value for ' + inspect(O)); +}; diff --git a/node_modules/es-abstract/2025/ParseHexOctet.js b/node_modules/es-abstract/2025/ParseHexOctet.js new file mode 100644 index 0000000000000000000000000000000000000000..0c55b32dc9dc4d81fdacaf100e6db71957afd79f --- /dev/null +++ b/node_modules/es-abstract/2025/ParseHexOctet.js @@ -0,0 +1,40 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var substring = require('./substring'); + +var isInteger = require('math-intrinsics/isInteger'); +var isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/14.0/#sec-parsehexoctet + +module.exports = function ParseHexOctet(string, position) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + if (!isInteger(position) || position < 0) { + throw new $TypeError('Assertion failed: `position` must be a nonnegative integer'); + } + + var len = string.length; // step 1 + if ((position + 2) > len) { // step 2 + var error = new $SyntaxError('requested a position on a string that does not contain 2 characters at that position'); // step 2.a + return [error]; // step 2.b + } + var hexDigits = substring(string, position, position + 2); // step 3 + + var n = +('0x' + hexDigits); + if (isNaN(n)) { + return [new $SyntaxError('Invalid hexadecimal characters')]; + } + return n; + + /* + 4. Let _parseResult_ be ParseText(StringToCodePoints(_hexDigits_), |HexDigits[~Sep]|). + 5. If _parseResult_ is not a Parse Node, return _parseResult_. + 6. Let _n_ be the unsigned 8-bit value corresponding with the MV of _parseResult_. + 7. Return _n_. + */ +}; diff --git a/node_modules/es-abstract/2025/PromiseResolve.js b/node_modules/es-abstract/2025/PromiseResolve.js new file mode 100644 index 0000000000000000000000000000000000000000..dfb7d82fd2e9a378da3188a73ff006a06ce14463 --- /dev/null +++ b/node_modules/es-abstract/2025/PromiseResolve.js @@ -0,0 +1,18 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBind = require('call-bind'); +var $SyntaxError = require('es-errors/syntax'); + +var $resolve = GetIntrinsic('%Promise.resolve%', true); +var $PromiseResolve = $resolve && callBind($resolve); + +// https://262.ecma-international.org/9.0/#sec-promise-resolve + +module.exports = function PromiseResolve(C, x) { + if (!$PromiseResolve) { + throw new $SyntaxError('This environment does not support Promises.'); + } + return $PromiseResolve(C, x); +}; + diff --git a/node_modules/es-abstract/2025/QuoteJSONString.js b/node_modules/es-abstract/2025/QuoteJSONString.js new file mode 100644 index 0000000000000000000000000000000000000000..2e0c15b64451c199fdd125d63946025921d9a329 --- /dev/null +++ b/node_modules/es-abstract/2025/QuoteJSONString.js @@ -0,0 +1,52 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); +var forEach = require('../helpers/forEach'); +var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); +var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); + +var $charCodeAt = callBound('String.prototype.charCodeAt'); +var $strSplit = callBound('String.prototype.split'); + +var StringToCodePoints = require('./StringToCodePoints'); +var UnicodeEscape = require('./UnicodeEscape'); +var UTF16EncodeCodePoint = require('./UTF16EncodeCodePoint'); + +var hasOwn = require('hasown'); + +// https://262.ecma-international.org/12.0/#sec-quotejsonstring + +var escapes = { + '\u0008': '\\b', + '\u0009': '\\t', + '\u000A': '\\n', + '\u000C': '\\f', + '\u000D': '\\r', + '\u0022': '\\"', + '\u005c': '\\\\' +}; + +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(StringToCodePoints(value), ''), function (C) { + if (hasOwn(escapes, C)) { + product += escapes[C]; + } else { + var cCharCode = $charCodeAt(C, 0); + if (cCharCode < 0x20 || isLeadingSurrogate(cCharCode) || isTrailingSurrogate(cCharCode)) { + product += UnicodeEscape(C); + } else { + product += UTF16EncodeCodePoint(cCharCode); + } + } + }); + } + product += '"'; + return product; +}; diff --git a/node_modules/es-abstract/2025/RawBytesToNumeric.js b/node_modules/es-abstract/2025/RawBytesToNumeric.js new file mode 100644 index 0000000000000000000000000000000000000000..a3640836f5c1c23675ac36a04e9fc18a3c090ace --- /dev/null +++ b/node_modules/es-abstract/2025/RawBytesToNumeric.js @@ -0,0 +1,72 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); + +var $RangeError = require('es-errors/range'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var $BigInt = GetIntrinsic('%BigInt%', true); + +var hasOwnProperty = require('./HasOwnProperty'); +var IsArray = require('./IsArray'); +var IsBigIntElementType = require('./IsBigIntElementType'); +var IsUnsignedElementType = require('./IsUnsignedElementType'); + +var bytesAsFloat16 = require('../helpers/bytesAsFloat16'); +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 $reverse = callBound('Array.prototype.reverse'); +var $slice = callBound('Array.prototype.slice'); + +var tableTAO = require('./tables/typed-array-objects'); + +// https://262.ecma-international.org/15.0/#sec-rawbytestonumeric + +module.exports = function RawBytesToNumeric(type, rawBytes, isLittleEndian) { + if (!hasOwnProperty(tableTAO.size, '$' + type)) { + throw new $TypeError('Assertion failed: `type` must be a TypedArray element type'); + } + 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 = tableTAO.size['$' + 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); + } + + var isBigInt = IsBigIntElementType(type); + if (isBigInt && !$BigInt) { + throw new $SyntaxError('this environment does not support BigInts'); + } + + // eslint-disable-next-line no-param-reassign + rawBytes = $slice(rawBytes, 0, elementSize); + if (!isLittleEndian) { + $reverse(rawBytes); // step 2 + } + + if (type === 'FLOAT16') { // step 3 + return bytesAsFloat16(rawBytes); + } + + if (type === 'FLOAT32') { // step 4 + return bytesAsFloat32(rawBytes); + } + + if (type === 'FLOAT64') { // step 5 + return bytesAsFloat64(rawBytes); + } + + return bytesAsInteger(rawBytes, elementSize, IsUnsignedElementType(type), isBigInt); +}; diff --git a/node_modules/es-abstract/2025/RegExpCreate.js b/node_modules/es-abstract/2025/RegExpCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..68e31605ed1764b9e1addddc5b910e9c9d73fba2 --- /dev/null +++ b/node_modules/es-abstract/2025/RegExpCreate.js @@ -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); +}; diff --git a/node_modules/es-abstract/2025/RegExpExec.js b/node_modules/es-abstract/2025/RegExpExec.js new file mode 100644 index 0000000000000000000000000000000000000000..15762b8343aa380c2c90257eef552a87c56745ae --- /dev/null +++ b/node_modules/es-abstract/2025/RegExpExec.js @@ -0,0 +1,29 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var regexExec = require('call-bound')('RegExp.prototype.exec'); + +var Call = require('./Call'); +var Get = require('./Get'); +var IsCallable = require('./IsCallable'); + +// https://262.ecma-international.org/6.0/#sec-regexpexec + +module.exports = function RegExpExec(R, S) { + if (!isObject(R)) { + 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 (result === null || isObject(result)) { + return result; + } + throw new $TypeError('"exec" method must return `null` or an Object'); + } + return regexExec(R, S); +}; diff --git a/node_modules/es-abstract/2025/RegExpHasFlag.js b/node_modules/es-abstract/2025/RegExpHasFlag.js new file mode 100644 index 0000000000000000000000000000000000000000..a1f06ce29172dfbdb155c0307a422851141db649 --- /dev/null +++ b/node_modules/es-abstract/2025/RegExpHasFlag.js @@ -0,0 +1,38 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $RegExpPrototype = GetIntrinsic('%RegExp.prototype%'); + +var SameValue = require('./SameValue'); + +var $indexOf = callBound('String.prototype.indexOf'); + +var hasRegExpMatcher = require('is-regex'); +var getFlags = require('regexp.prototype.flags'); + +// https://262.ecma-international.org/13.0/#sec-regexphasflag + +module.exports = function RegExpHasFlag(R, codeUnit) { + if (typeof codeUnit !== 'string' || codeUnit.length !== 1) { + throw new $TypeError('Assertion failed: `string` must be a code unit - a String of length 1'); + } + + if (!isObject(R)) { + throw new $TypeError('Assertion failed: Type(R) is not Object'); + } + + if (!hasRegExpMatcher(R)) { // step 2 + if (SameValue(R, $RegExpPrototype)) { + return void undefined; // step 2.a + } + throw new $TypeError('`R` must be a RegExp object'); // step 2.b + } + + var flags = getFlags(R); // step 3 + + return $indexOf(flags, codeUnit) > -1; // steps 4-5 +}; diff --git a/node_modules/es-abstract/2025/RequireObjectCoercible.js b/node_modules/es-abstract/2025/RequireObjectCoercible.js new file mode 100644 index 0000000000000000000000000000000000000000..b816d1f34b01a80352e783672836a17c49cc06f0 --- /dev/null +++ b/node_modules/es-abstract/2025/RequireObjectCoercible.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('es-object-atoms/RequireObjectCoercible'); diff --git a/node_modules/es-abstract/2025/ReturnCompletion.js b/node_modules/es-abstract/2025/ReturnCompletion.js new file mode 100644 index 0000000000000000000000000000000000000000..ff2ff6bb6203fc757ff60653c92fa3da02ae6540 --- /dev/null +++ b/node_modules/es-abstract/2025/ReturnCompletion.js @@ -0,0 +1,9 @@ +'use strict'; + +var CompletionRecord = require('./CompletionRecord'); + +// https://tc39.es/ecma262/#sec-returncompletion + +module.exports = function ReturnCompletion(value) { + return new CompletionRecord('return', value); +}; diff --git a/node_modules/es-abstract/2025/SameType.js b/node_modules/es-abstract/2025/SameType.js new file mode 100644 index 0000000000000000000000000000000000000000..e8b17c9cabf35a13ca0599021974b5ed40892fa4 --- /dev/null +++ b/node_modules/es-abstract/2025/SameType.js @@ -0,0 +1,16 @@ +'use strict'; + +// https://262.ecma-international.org/16.0/#sec-sametype + +module.exports = function SameType(x, y) { + if (x === y) { + return true; + } + if ( + (x === null && y !== null) + || (x !== null && y === null) + ) { + return false; + } + return typeof x === typeof y; +}; diff --git a/node_modules/es-abstract/2025/SameValue.js b/node_modules/es-abstract/2025/SameValue.js new file mode 100644 index 0000000000000000000000000000000000000000..d07bbb8a8f3fec5ad22ffdfb617245331fcff412 --- /dev/null +++ b/node_modules/es-abstract/2025/SameValue.js @@ -0,0 +1,13 @@ +'use strict'; + +var $isNaN = require('math-intrinsics/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); +}; diff --git a/node_modules/es-abstract/2025/SameValueNonNumber.js b/node_modules/es-abstract/2025/SameValueNonNumber.js new file mode 100644 index 0000000000000000000000000000000000000000..7014307b6af85d106d1eecc2a1155276b36ade16 --- /dev/null +++ b/node_modules/es-abstract/2025/SameValueNonNumber.js @@ -0,0 +1,18 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var SameValue = require('./SameValue'); +var SameType = require('./SameType'); + +// https://262.ecma-international.org/16.0/#sec-samevaluenonnumeric + +module.exports = function SameValueNonNumber(x, y) { + if (typeof x === 'number') { + throw new $TypeError('Assertion failed: SameValueNonNumber does not accept Number values'); + } + if (!SameType(x, y)) { + throw new $TypeError('SameValueNonNumber requires two non-Number values of the same type.'); + } + return SameValue(x, y); +}; diff --git a/node_modules/es-abstract/2025/SameValueZero.js b/node_modules/es-abstract/2025/SameValueZero.js new file mode 100644 index 0000000000000000000000000000000000000000..8880e915941eeae2d890f2bdeb1bd057516e3d50 --- /dev/null +++ b/node_modules/es-abstract/2025/SameValueZero.js @@ -0,0 +1,9 @@ +'use strict'; + +var $isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/6.0/#sec-samevaluezero + +module.exports = function SameValueZero(x, y) { + return (x === y) || ($isNaN(x) && $isNaN(y)); +}; diff --git a/node_modules/es-abstract/2025/SecFromTime.js b/node_modules/es-abstract/2025/SecFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..fc2e44560240f134cf345e63ab69d5f8a2d8cec1 --- /dev/null +++ b/node_modules/es-abstract/2025/SecFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/2025/Set.js b/node_modules/es-abstract/2025/Set.js new file mode 100644 index 0000000000000000000000000000000000000000..f814076a8fb813648eb16093fe86a46182c0fccf --- /dev/null +++ b/node_modules/es-abstract/2025/Set.js @@ -0,0 +1,45 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var isPropertyKey = require('../helpers/isPropertyKey'); +var SameValue = require('./SameValue'); + +// 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 (!isObject(O)) { + 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; + } + +}; diff --git a/node_modules/es-abstract/2025/SetDataHas.js b/node_modules/es-abstract/2025/SetDataHas.js new file mode 100644 index 0000000000000000000000000000000000000000..b15aed6c4b9d26560059397419fa9d51348ae625 --- /dev/null +++ b/node_modules/es-abstract/2025/SetDataHas.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CanonicalizeKeyedCollectionKey = require('./CanonicalizeKeyedCollectionKey'); +var IsArray = require('./IsArray'); +var SameValue = require('./SameValue'); + +var some = require('../helpers/some'); + +// https://262.ecma-international.org/16.0/#sec-setdatahas + +module.exports = function SetDataHas(setData, value) { + if (!IsArray(setData) && setData !== 'EMPTY') { + throw new $TypeError('Assertion failed: `setData` must be a List or ~EMPTY~'); + } + + // if (SetDataIndex(setData, value) === 'NOT-FOUND') { return false; } // step 1 + // return true; // step 2 + + var canonValue = CanonicalizeKeyedCollectionKey(value); + + return some(setData, function (e) { + return SameValue(e, canonValue); + }); +}; diff --git a/node_modules/es-abstract/2025/SetDataIndex.js b/node_modules/es-abstract/2025/SetDataIndex.js new file mode 100644 index 0000000000000000000000000000000000000000..df487eae4d0af5dc3ea808db591c491c389b38b9 --- /dev/null +++ b/node_modules/es-abstract/2025/SetDataIndex.js @@ -0,0 +1,32 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CanonicalizeKeyedCollectionKey = require('./CanonicalizeKeyedCollectionKey'); +var SameValue = require('./SameValue'); + +var isArray = require('../helpers/IsArray'); + +// https://262.ecma-international.org/16.0/#sec-setdataindex + +module.exports = function SetDataIndex(setData, value) { + if (!isArray(setData) && setData !== 'EMPTY') { + throw new $TypeError('Assertion failed: `setData` must be a List or ~EMPTY~'); + } + + var canonValue = CanonicalizeKeyedCollectionKey(value); // step 1 + + var size = setData.length; // step 2 + + var index = 0; // step 3 + + while (index < size) { // step 4 + var e = setData[index]; // step 4.a + if (/* e !== ~EMPTY~ && */ SameValue(e, canonValue)) { // step 4.b + return index; // step 4.b.i + } + index += 1; // step 4.c + } + + return 'NOT-FOUND'; // step 5 +}; diff --git a/node_modules/es-abstract/2025/SetDataSize.js b/node_modules/es-abstract/2025/SetDataSize.js new file mode 100644 index 0000000000000000000000000000000000000000..45bf4dca4a14486ee93ca899cbea0232fc91567b --- /dev/null +++ b/node_modules/es-abstract/2025/SetDataSize.js @@ -0,0 +1,30 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var forEach = require('../helpers/forEach'); +var isArray = require('../helpers/IsArray'); + +// https://262.ecma-international.org/16.0/#sec-setdatasize + +// TODO: when spec enums are unforgeable, uncomment ~EMPTY~ check + +module.exports = function SetDataSize(setData) { + if (!isArray(setData) && setData !== 'EMPTY') { + throw new $TypeError('Assertion failed: `setData` must be a List or ~EMPTY~'); + } + + if (setData === 'EMPTY') { + return 0; + } + + var count = 0; // step 1 + + forEach(setData, function (e, i) { // step 2 + if (i in setData /* && e !== ~EMPTY~ */) { + count += 1; // step 2.a + } + }); + + return count; // step 3 +}; diff --git a/node_modules/es-abstract/2025/SetFunctionLength.js b/node_modules/es-abstract/2025/SetFunctionLength.js new file mode 100644 index 0000000000000000000000000000000000000000..193be1c6a6d343f59353756163216d4fae5a57ff --- /dev/null +++ b/node_modules/es-abstract/2025/SetFunctionLength.js @@ -0,0 +1,28 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); +var HasOwnProperty = require('./HasOwnProperty'); +var IsExtensible = require('./IsExtensible'); + +// https://262.ecma-international.org/12.0/#sec-setfunctionlength + +module.exports = function SetFunctionLength(F, length) { + if (typeof F !== 'function' || !IsExtensible(F) || HasOwnProperty(F, 'length')) { + throw new $TypeError('Assertion failed: `F` must be an extensible function and lack an own `length` property'); + } + if (typeof length !== 'number') { + throw new $TypeError('Assertion failed: `length` must be a Number'); + } + if (length !== Infinity && (!isInteger(length) || length < 0)) { + throw new $TypeError('Assertion failed: `length` must be ∞, or an integer >= 0'); + } + return DefinePropertyOrThrow(F, 'length', { + '[[Configurable]]': true, + '[[Enumerable]]': false, + '[[Value]]': length, + '[[Writable]]': false + }); +}; diff --git a/node_modules/es-abstract/2025/SetFunctionName.js b/node_modules/es-abstract/2025/SetFunctionName.js new file mode 100644 index 0000000000000000000000000000000000000000..9e8511fd46bc115d0459cc66f44bb6560ba2bc3a --- /dev/null +++ b/node_modules/es-abstract/2025/SetFunctionName.js @@ -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 + }); +}; diff --git a/node_modules/es-abstract/2025/SetIntegrityLevel.js b/node_modules/es-abstract/2025/SetIntegrityLevel.js new file mode 100644 index 0000000000000000000000000000000000000000..ad92fb99b004f2b05e23fa0b2ef45dfc3775025e --- /dev/null +++ b/node_modules/es-abstract/2025/SetIntegrityLevel.js @@ -0,0 +1,57 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); +var $gOPD = require('gopd'); +var $preventExtensions = GetIntrinsic('%Object.preventExtensions%', true); +var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true); + +var forEach = require('../helpers/forEach'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); +var IsAccessorDescriptor = require('./IsAccessorDescriptor'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-setintegritylevel + +module.exports = function SetIntegrityLevel(O, level) { + if (!isObject(O)) { + 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; +}; diff --git a/node_modules/es-abstract/2025/SetTypedArrayFromArrayLike.js b/node_modules/es-abstract/2025/SetTypedArrayFromArrayLike.js new file mode 100644 index 0000000000000000000000000000000000000000..a11b34ad56589df6f320acebb093a82be9624768 --- /dev/null +++ b/node_modules/es-abstract/2025/SetTypedArrayFromArrayLike.js @@ -0,0 +1,64 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); + +var isTypedArray = require('is-typed-array'); +var whichTypedArray = require('which-typed-array'); + +var Get = require('./Get'); +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var LengthOfArrayLike = require('./LengthOfArrayLike'); +var MakeTypedArrayWithBufferWitnessRecord = require('./MakeTypedArrayWithBufferWitnessRecord'); +var ToObject = require('./ToObject'); +var ToString = require('./ToString'); +var TypedArrayLength = require('./TypedArrayLength'); +var TypedArraySetElement = require('./TypedArraySetElement'); + +// https://262.ecma-international.org/15.0/#sec-settypedarrayfromarraylike + +module.exports = function SetTypedArrayFromArrayLike(target, targetOffset, source) { + var whichTarget = whichTypedArray(target); + if (!whichTarget) { + throw new $TypeError('Assertion failed: `target` must be a Typed Array'); + } + + if (targetOffset !== Infinity && (!isInteger(targetOffset) || targetOffset < 0)) { + throw new $TypeError('Assertion failed: `targetOffset` must be a non-negative integer or +Infinity'); + } + + if (isTypedArray(source)) { + throw new $TypeError('Assertion failed: `source` must not be a Typed Array'); + } + + var targetRecord = MakeTypedArrayWithBufferWitnessRecord(target, 'SEQ-CST'); // step 1 + + if (IsTypedArrayOutOfBounds(targetRecord)) { + throw new $TypeError('target is out of bounds'); // step 2 + } + + var targetLength = TypedArrayLength(targetRecord); // step 3 + + var src = ToObject(source); // step 4 + + var srcLength = LengthOfArrayLike(src); // step 5 + + if (targetOffset === Infinity) { + throw new $RangeError('targetOffset must be a finite integer'); // step 6 + } + + if (srcLength + targetOffset > targetLength) { + throw new $RangeError('targetOffset + srcLength must be <= target.length'); // step 7 + } + + var k = 0; // step 8 + + while (k < srcLength) { // step 9 + var Pk = ToString(k); // step 9.a + var value = Get(src, Pk); // step 9.b + var targetIndex = targetOffset + k; // step 9.c + TypedArraySetElement(target, targetIndex, value); // step 9.d + k += 1; // step 9.e + } +}; diff --git a/node_modules/es-abstract/2025/SetTypedArrayFromTypedArray.js b/node_modules/es-abstract/2025/SetTypedArrayFromTypedArray.js new file mode 100644 index 0000000000000000000000000000000000000000..0cc2b6662d15392aa366c3b7e96bd208643f993c --- /dev/null +++ b/node_modules/es-abstract/2025/SetTypedArrayFromTypedArray.js @@ -0,0 +1,133 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var CloneArrayBuffer = require('./CloneArrayBuffer'); +var GetValueFromBuffer = require('./GetValueFromBuffer'); +var IsSharedArrayBuffer = require('./IsSharedArrayBuffer'); +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var MakeTypedArrayWithBufferWitnessRecord = require('./MakeTypedArrayWithBufferWitnessRecord'); +var SameValue = require('./SameValue'); +var SetValueInBuffer = require('./SetValueInBuffer'); +var TypedArrayByteLength = require('./TypedArrayByteLength'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); +var TypedArrayElementType = require('./TypedArrayElementType'); +var TypedArrayLength = require('./TypedArrayLength'); + +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayByteOffset = require('typed-array-byte-offset'); +var whichTypedArray = require('which-typed-array'); +var GetIntrinsic = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $ArrayBuffer = GetIntrinsic('%ArrayBuffer%', true); + +// https://262.ecma-international.org/15.0/#sec-settypedarrayfromtypedarray + +module.exports = function SetTypedArrayFromTypedArray(target, targetOffset, source) { + var whichTarget = whichTypedArray(target); + if (!whichTarget) { + throw new $TypeError('Assertion failed: `target` must be a Typed Array'); + } + + if (targetOffset !== Infinity && (!isInteger(targetOffset) || targetOffset < 0)) { + throw new $TypeError('Assertion failed: `targetOffset` must be a non-negative integer or +Infinity'); + } + + var whichSource = whichTypedArray(source); + if (!whichSource) { + throw new $TypeError('Assertion failed: `source` must be a Typed Array'); + } + + var targetBuffer = typedArrayBuffer(target); // step 1 + + var targetRecord = MakeTypedArrayWithBufferWitnessRecord(target, 'SEQ-CST'); // step 2 + + if (IsTypedArrayOutOfBounds(targetRecord)) { + throw new $TypeError('target is out of bounds'); // step 3 + } + + var targetLength = TypedArrayLength(targetRecord); // step 4 + + var srcBuffer = typedArrayBuffer(source); // step 5 + + var srcRecord = MakeTypedArrayWithBufferWitnessRecord(source, 'SEQ-CST'); // step 6 + + if (IsTypedArrayOutOfBounds(srcRecord)) { + throw new $TypeError('target is out of bounds'); // step 7 + } + + var srcLength = TypedArrayLength(srcRecord); // step 8 + + var targetType = TypedArrayElementType(target); // step 9 + + var targetElementSize = TypedArrayElementSize(target); // step 10 + + var targetByteOffset = typedArrayByteOffset(target); // step 11 + + var srcType = TypedArrayElementType(source); // step 12 + + var srcElementSize = TypedArrayElementSize(source); // step 13 + + var srcByteOffset = typedArrayByteOffset(source); // step 14 + + if (targetOffset === Infinity) { + throw new $RangeError('targetOffset must be a non-negative integer or +Infinity'); // step 15 + } + + if (srcLength + targetOffset > targetLength) { + throw new $RangeError('targetOffset + source.length must not be greater than target.length'); // step 16 + } + + var targetContentType = whichTarget === 'BigInt64Array' || whichTarget === 'BigUint64Array' ? 'BIGINT' : 'NUMBER'; + var sourceContentType = whichSource === 'BigInt64Array' || whichSource === 'BigUint64Array' ? 'BIGINT' : 'NUMBER'; + if (targetContentType !== sourceContentType) { + throw new $TypeError('source and target must have the same content type'); // step 17 + } + + var sameSharedArrayBuffer = false; + if (IsSharedArrayBuffer(srcBuffer) && IsSharedArrayBuffer(targetBuffer)) { // step 18 + // a. If srcBuffer.[[ArrayBufferData]] and targetBuffer.[[ArrayBufferData]] are the same Shared Data Block values, let same be true; else let same be false. + throw new $SyntaxError('SharedArrayBuffer is not supported by this implementation'); + } + + var srcByteIndex; + if (SameValue(srcBuffer, targetBuffer) || sameSharedArrayBuffer) { // step 19 + var srcByteLength = TypedArrayByteLength(srcRecord); // step 19.a + srcBuffer = CloneArrayBuffer(srcBuffer, srcByteOffset, srcByteLength, $ArrayBuffer); // step 19.b + srcByteIndex = 0; // step 19.c + } else { // step 20 + srcByteIndex = srcByteOffset; // step 20.a + } + + var targetByteIndex = (targetOffset * targetElementSize) + targetByteOffset; // step 21 + + var limit = targetByteIndex + (targetElementSize * srcLength); // step 22 + + var value; + if (srcType === targetType) { // step 23 + // a. NOTE: The transfer must be performed in a manner that preserves the bit-level encoding of the source data. + + while (targetByteIndex < limit) { // step 23.b + value = GetValueFromBuffer(srcBuffer, srcByteIndex, 'UINT8', true, 'UNORDERED'); // step 23.b.i + + SetValueInBuffer(targetBuffer, targetByteIndex, 'UINT8', value, true, 'UNORDERED'); // step 23.b.ii + + srcByteIndex += 1; // step 23.b.iii + + targetByteIndex += 1; // step 23.b.iv + } + } else { // step 24 + while (targetByteIndex < limit) { // step 24.a + value = GetValueFromBuffer(srcBuffer, srcByteIndex, srcType, true, 'UNORDERED'); // step 24.a.i + + SetValueInBuffer(targetBuffer, targetByteIndex, targetType, value, true, 'UNORDERED'); // step 24.a.ii + + srcByteIndex += srcElementSize; // step 24.a.iii + + targetByteIndex += targetElementSize; // step 24.a.iv + } + } +}; diff --git a/node_modules/es-abstract/2025/SetValueInBuffer.js b/node_modules/es-abstract/2025/SetValueInBuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..039579e331472771f1e947611332addaca718595 --- /dev/null +++ b/node_modules/es-abstract/2025/SetValueInBuffer.js @@ -0,0 +1,92 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var $Uint8Array = GetIntrinsic('%Uint8Array%', true); + +var IsBigIntElementType = require('./IsBigIntElementType'); +var IsDetachedBuffer = require('./IsDetachedBuffer'); +var NumericToRawBytes = require('./NumericToRawBytes'); + +var isArrayBuffer = require('is-array-buffer'); +var isSharedArrayBuffer = require('is-shared-array-buffer'); +var hasOwn = require('hasown'); + +var tableTAO = require('./tables/typed-array-objects'); + +var defaultEndianness = require('../helpers/defaultEndianness'); +var forEach = require('../helpers/forEach'); + +// https://262.ecma-international.org/15.0/#sec-setvalueinbuffer + +/* eslint max-params: 0 */ + +module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value, 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) || byteIndex < 0) { + throw new $TypeError('Assertion failed: `byteIndex` must be a non-negative integer'); + } + + if (typeof type !== 'string' || !hasOwn(tableTAO.size, '$' + type)) { + throw new $TypeError('Assertion failed: `type` must be one of ' + tableTAO.choices); + } + + if (typeof value !== 'number' && typeof value !== 'bigint') { + throw new $TypeError('Assertion failed: `value` must be a Number or a BigInt'); + } + + if (typeof isTypedArray !== 'boolean') { + throw new $TypeError('Assertion failed: `isTypedArray` must be a boolean'); + } + if (order !== 'SEQ-CST' && order !== 'UNORDERED' && order !== 'INIT') { + throw new $TypeError('Assertion failed: `order` must be `"SEQ-CST"`, `"UNORDERED"`, or `"INIT"`'); + } + + if (arguments.length > 6 && typeof arguments[6] !== '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 (IsBigIntElementType(type) ? typeof value !== 'bigint' : typeof value !== 'number') { // step 3 + throw new $TypeError('Assertion failed: `value` must be a BigInt if type is ~BIGINT64~ or ~BIGUINT64~, otherwise a Number'); + } + + // 4. Let block be arrayBuffer’s [[ArrayBufferData]] internal slot. + + var elementSize = tableTAO.size['$' + type]; // step 5 + + // 6. 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 > 6 ? arguments[6] : defaultEndianness === 'little'; // step 6 + + var rawBytes = NumericToRawBytes(type, value, isLittleEndian); // step 7 + + if (isSAB) { // step 8 + /* + Let execution be the [[CandidateExecution]] field of the surrounding agent's Agent Record. + Let eventList be the [[EventList]] field of the element in execution.[[EventsRecords]] whose [[AgentSignifier]] is AgentSignifier(). + If isTypedArray is true and IsNoTearConfiguration(type, order) is true, let noTear be true; otherwise let noTear be false. + Append WriteSharedMemory { [[Order]]: order, [[NoTear]]: noTear, [[Block]]: block, [[ByteIndex]]: byteIndex, [[ElementSize]]: elementSize, [[Payload]]: rawBytes } to eventList. + */ + throw new $SyntaxError('SharedArrayBuffer is not supported by this implementation'); + } else { + // 9. 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; + }); + } + + // 10. Return NormalCompletion(undefined). +}; diff --git a/node_modules/es-abstract/2025/SetterThatIgnoresPrototypeProperties.js b/node_modules/es-abstract/2025/SetterThatIgnoresPrototypeProperties.js new file mode 100644 index 0000000000000000000000000000000000000000..9dbd7caaf866c6e9424417bb66979c8550570a02 --- /dev/null +++ b/node_modules/es-abstract/2025/SetterThatIgnoresPrototypeProperties.js @@ -0,0 +1,38 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var gOPD = require('gopd'); + +var isObject = require('../helpers/isObject'); +var isPropertyKey = require('../helpers/isPropertyKey'); + +var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); +var SameValue = require('./SameValue'); +var Set = require('./Set'); + +// https://262.ecma-international.org/16.0/#sec-SetterThatIgnoresPrototypeProperties + +module.exports = function SetterThatIgnoresPrototypeProperties(thisValue, home, p, v) { + if (!isObject(home)) { + throw new $TypeError('Assertion failed: `home` must be an object'); + } + if (!isPropertyKey(p)) { + throw new $TypeError('Assertion failed: `p` must be a Property Key'); + } + + if (!isObject(thisValue)) { // step 1 + throw new $TypeError('Assertion failed: `thisValue` must be an Object'); // step 1.a + } + + if (SameValue(thisValue, home)) { // step 2 + throw new $TypeError('Throwing here emulates assignment to a non-writable data property on the `home` object in strict mode code'); // step 2.b + } + + var desc = gOPD(thisValue, p); // step 3 + + if (typeof desc === 'undefined') { // step 4 + CreateDataPropertyOrThrow(thisValue, p, v); // step 4.a + } else { // step 5 + Set(thisValue, p, v, true); // step 5.a + } +}; diff --git a/node_modules/es-abstract/2025/SortIndexedProperties.js b/node_modules/es-abstract/2025/SortIndexedProperties.js new file mode 100644 index 0000000000000000000000000000000000000000..7d80fee7aaa4f7b17c9cf6dde1c1c84318e6e8d2 --- /dev/null +++ b/node_modules/es-abstract/2025/SortIndexedProperties.js @@ -0,0 +1,49 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); +var isObject = require('es-object-atoms/isObject'); + +var Get = require('./Get'); +var HasProperty = require('./HasProperty'); +var ToString = require('./ToString'); + +var isAbstractClosure = require('../helpers/isAbstractClosure'); + +var $sort = callBound('Array.prototype.sort'); + +// https://262.ecma-international.org/14.0/#sec-sortindexedproperties + +module.exports = function SortIndexedProperties(obj, len, SortCompare, holes) { + if (!isObject(obj)) { + throw new $TypeError('Assertion failed: Type(obj) is not Object'); + } + if (!isInteger(len) || len < 0) { + throw new $TypeError('Assertion failed: `len` must be an integer >= 0'); + } + if (!isAbstractClosure(SortCompare) || SortCompare.length !== 2) { + throw new $TypeError('Assertion failed: `SortCompare` must be an abstract closure taking 2 arguments'); + } + if (holes !== 'skip-holes' && holes !== 'read-through-holes') { + throw new $TypeError('Assertion failed: `holes` must be either ~skip-holes~ or ~read-through-holes~'); + } + + var items = []; // step 1 + + var k = 0; // step 2 + + while (k < len) { // step 3 + var Pk = ToString(k); + var kRead = holes === 'skip-holes' ? HasProperty(obj, Pk) : true; // step 3.b - 3.c + if (kRead) { // step 3.d + var kValue = Get(obj, Pk); + items[items.length] = kValue; + } + k += 1; // step 3.e + } + + $sort(items, SortCompare); // step 4 + + return items; // step 5 +}; diff --git a/node_modules/es-abstract/2025/SpeciesConstructor.js b/node_modules/es-abstract/2025/SpeciesConstructor.js new file mode 100644 index 0000000000000000000000000000000000000000..23e32b443ef3655f56639920d5cf58474500bf67 --- /dev/null +++ b/node_modules/es-abstract/2025/SpeciesConstructor.js @@ -0,0 +1,32 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $species = GetIntrinsic('%Symbol.species%', true); +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var IsConstructor = require('./IsConstructor'); + +// https://262.ecma-international.org/6.0/#sec-speciesconstructor + +module.exports = function SpeciesConstructor(O, defaultConstructor) { + if (!isObject(O)) { + throw new $TypeError('Assertion failed: Type(O) is not Object'); + } + var C = O.constructor; + if (typeof C === 'undefined') { + return defaultConstructor; + } + if (!isObject(C)) { + throw new $TypeError('O.constructor is not an Object'); + } + var S = $species ? C[$species] : void 0; + if (S == null) { + return defaultConstructor; + } + if (IsConstructor(S)) { + return S; + } + throw new $TypeError('no constructor found'); +}; diff --git a/node_modules/es-abstract/2025/StringCreate.js b/node_modules/es-abstract/2025/StringCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..3e2aa43c50d8aa6317c0eef7eaf0b87e32916d4d --- /dev/null +++ b/node_modules/es-abstract/2025/StringCreate.js @@ -0,0 +1,38 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Object = require('es-object-atoms'); +var $StringPrototype = GetIntrinsic('%String.prototype%'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var setProto = require('set-proto'); + +var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); + +// https://262.ecma-international.org/6.0/#sec-stringcreate + +module.exports = function StringCreate(value, prototype) { + if (typeof value !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + + var S = $Object(value); + if (prototype !== $StringPrototype) { + if (setProto) { + setProto(S, prototype); + } else { + throw new $SyntaxError('StringCreate: a `proto` argument that is not `String.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); + } + } + + var length = value.length; + DefinePropertyOrThrow(S, 'length', { + '[[Configurable]]': false, + '[[Enumerable]]': false, + '[[Value]]': length, + '[[Writable]]': false + }); + + return S; +}; diff --git a/node_modules/es-abstract/2025/StringGetOwnProperty.js b/node_modules/es-abstract/2025/StringGetOwnProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..59e8a23f8969db47a1f1eae85a542594c4b64406 --- /dev/null +++ b/node_modules/es-abstract/2025/StringGetOwnProperty.js @@ -0,0 +1,46 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isNegativeZero = require('math-intrinsics/isNegativeZero'); +var isObject = require('es-object-atoms/isObject'); + +var callBound = require('call-bound'); +var $charAt = callBound('String.prototype.charAt'); +var $stringToString = callBound('String.prototype.toString'); + +var CanonicalNumericIndexString = require('./CanonicalNumericIndexString'); + +var isPropertyKey = require('../helpers/isPropertyKey'); +var isInteger = require('math-intrinsics/isInteger'); + +// https://262.ecma-international.org/12.0/#sec-stringgetownproperty + +module.exports = function StringGetOwnProperty(S, P) { + var str; + if (isObject(S)) { + try { + str = $stringToString(S); + } catch (e) { /**/ } + } + if (typeof str !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a boxed string object'); + } + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P is not a Property Key'); + } + if (typeof P !== 'string') { + return void undefined; + } + var index = CanonicalNumericIndexString(P); + var len = str.length; + if (typeof index === 'undefined' || !isInteger(index) || isNegativeZero(index) || index < 0 || len <= index) { + return void undefined; + } + var resultStr = $charAt(S, index); + return { + '[[Configurable]]': false, + '[[Enumerable]]': true, + '[[Value]]': resultStr, + '[[Writable]]': false + }; +}; diff --git a/node_modules/es-abstract/2025/StringIndexOf.js b/node_modules/es-abstract/2025/StringIndexOf.js new file mode 100644 index 0000000000000000000000000000000000000000..f32e478b8f0c8b8baaef9021df14ac2c214ed1c7 --- /dev/null +++ b/node_modules/es-abstract/2025/StringIndexOf.js @@ -0,0 +1,36 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); + +var $slice = callBound('String.prototype.slice'); + +// https://262.ecma-international.org/16.0/#sec-stringindexof + +module.exports = function StringIndexOf(string, searchValue, fromIndex) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + if (typeof searchValue !== 'string') { + throw new $TypeError('Assertion failed: `searchValue` must be a String'); + } + if (!isInteger(fromIndex) || fromIndex < 0) { + throw new $TypeError('Assertion failed: `fromIndex` must be a non-negative integer'); + } + + var len = string.length; // step 1 + if (searchValue === '' && fromIndex <= len) { + return fromIndex; // step 2 + } + + var searchLen = searchValue.length; // step 3 + for (var i = fromIndex; i <= (len - searchLen); i += 1) { // step 4 + var candidate = $slice(string, i, i + searchLen); // step 4.a + if (candidate === searchValue) { + return i; // step 4.b + } + } + return 'NOT-FOUND'; // step 5 +}; diff --git a/node_modules/es-abstract/2025/StringLastIndexOf.js b/node_modules/es-abstract/2025/StringLastIndexOf.js new file mode 100644 index 0000000000000000000000000000000000000000..a3633463fd3c9a4f41e03993ecb6d2fd48e205da --- /dev/null +++ b/node_modules/es-abstract/2025/StringLastIndexOf.js @@ -0,0 +1,38 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var substring = require('./substring'); + +var isInteger = require('../helpers/isInteger'); + +// https://262.ecma-international.org/16.0/#sec-stringlastindexof + +module.exports = function StringLastIndexOf(string, searchValue, fromIndex) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a string'); + } + if (typeof searchValue !== 'string') { + throw new $TypeError('Assertion failed: `searchValue` must be a string'); + } + if (!isInteger(fromIndex) || fromIndex < 0) { + throw new $TypeError('Assertion failed: `fromIndex` must be a non-negative integer'); + } + + var len = string.length; // step 1 + + var searchLen = searchValue.length; // step 2 + + if (!((fromIndex + searchLen) <= len)) { + throw new $TypeError('Assertion failed: fromIndex + searchLen ≤ len'); // step 3 + } + + for (var i = fromIndex; i >= 0; i--) { // step 4 + var candidate = substring(string, i, i + searchLen); // step 4.a + if (candidate === searchValue) { + return i; // step 4.b + } + } + + return 'NOT-FOUND'; // step 5 +}; diff --git a/node_modules/es-abstract/2025/StringPad.js b/node_modules/es-abstract/2025/StringPad.js new file mode 100644 index 0000000000000000000000000000000000000000..3a317469d67a9eb39e22ff4f839024623aaa87c0 --- /dev/null +++ b/node_modules/es-abstract/2025/StringPad.js @@ -0,0 +1,43 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $strSlice = callBound('String.prototype.slice'); + +// https://262.ecma-international.org/15.0/#sec-stringpad + +module.exports = function StringPad(S, maxLength, fillString, placement) { + if (typeof S !== 'string') { + throw new $TypeError('Assertion failed: `S` must be a String'); + } + if (!isInteger(maxLength) || maxLength < 0) { + throw new $TypeError('Assertion failed: `maxLength` must be a non-negative integer'); + } + if (typeof fillString !== 'string') { + throw new $TypeError('Assertion failed: `fillString` must be a String'); + } + if (placement !== 'start' && placement !== 'end' && placement !== 'START' && placement !== 'END') { + throw new $TypeError('Assertion failed: `placement` must be ~START~ or ~END~'); + } + + var stringLength = S.length; // step 1 + + if (maxLength <= stringLength) { return S; } // step 2 + + if (fillString === '') { return S; } // step 3 + + var fillLen = maxLength - stringLength; // step 4 + + // 5. Let _truncatedStringFiller_ be the String value consisting of repeated concatenations of _fillString_ truncated to length _fillLen_. + var truncatedStringFiller = ''; + while (truncatedStringFiller.length < fillLen) { + truncatedStringFiller += fillString; + } + truncatedStringFiller = $strSlice(truncatedStringFiller, 0, fillLen); + + if (placement === 'start' || placement === 'START') { return truncatedStringFiller + S; } // step 6 + + return S + truncatedStringFiller; // step 7 +}; diff --git a/node_modules/es-abstract/2025/StringPaddingBuiltinsImpl.js b/node_modules/es-abstract/2025/StringPaddingBuiltinsImpl.js new file mode 100644 index 0000000000000000000000000000000000000000..bfd84ca4d12ff773636291485e6595fafbd13d61 --- /dev/null +++ b/node_modules/es-abstract/2025/StringPaddingBuiltinsImpl.js @@ -0,0 +1,27 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var StringPad = require('./StringPad'); +var ToLength = require('./ToLength'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/15.0/#sec-stringpaddingbuiltinsimpl + +module.exports = function StringPaddingBuiltinsImpl(O, maxLength, fillString, placement) { + if (placement !== 'start' && placement !== 'end' && placement !== 'START' && placement !== 'END') { + throw new $TypeError('Assertion failed: `placement` must be ~START~ or ~END~'); + } + + var S = ToString(O); // step 1 + + var intMaxLength = ToLength(maxLength); // step 2 + + var stringLength = S.length; // step 3 + + if (intMaxLength <= stringLength) { return S; } // step 4 + + var filler = typeof fillString === 'undefined' ? ' ' : ToString(fillString); // steps 5-6 + + return StringPad(S, intMaxLength, filler, placement); // step 7 +}; diff --git a/node_modules/es-abstract/2025/StringToBigInt.js b/node_modules/es-abstract/2025/StringToBigInt.js new file mode 100644 index 0000000000000000000000000000000000000000..1cf9856a24538efe8dbefd9374da40dacebcd008 --- /dev/null +++ b/node_modules/es-abstract/2025/StringToBigInt.js @@ -0,0 +1,23 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $TypeError = require('es-errors/type'); +var $SyntaxError = require('es-errors/syntax'); + +// https://262.ecma-international.org/14.0/#sec-stringtobigint + +module.exports = function StringToBigInt(argument) { + if (typeof argument !== 'string') { + throw new $TypeError('`argument` must be a string'); + } + if (!$BigInt) { + throw new $SyntaxError('BigInts are not supported in this environment'); + } + try { + return $BigInt(argument); + } catch (e) { + return void undefined; + } +}; diff --git a/node_modules/es-abstract/2025/StringToCodePoints.js b/node_modules/es-abstract/2025/StringToCodePoints.js new file mode 100644 index 0000000000000000000000000000000000000000..9a104c41ac2fb5b9d3181d23172df9430c7a3827 --- /dev/null +++ b/node_modules/es-abstract/2025/StringToCodePoints.js @@ -0,0 +1,22 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CodePointAt = require('./CodePointAt'); + +// https://262.ecma-international.org/12.0/#sec-stringtocodepoints + +module.exports = function StringToCodePoints(string) { + if (typeof string !== 'string') { + throw new $TypeError('Assertion failed: `string` must be a String'); + } + var codePoints = []; + var size = string.length; + var position = 0; + while (position < size) { + var cp = CodePointAt(string, position); + codePoints[codePoints.length] = cp['[[CodePoint]]']; + position += cp['[[CodeUnitCount]]']; + } + return codePoints; +}; diff --git a/node_modules/es-abstract/2025/StringToNumber.js b/node_modules/es-abstract/2025/StringToNumber.js new file mode 100644 index 0000000000000000000000000000000000000000..e9b4a8b3368ac9f42ea786e90828a27733c259cd --- /dev/null +++ b/node_modules/es-abstract/2025/StringToNumber.js @@ -0,0 +1,42 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $RegExp = GetIntrinsic('%RegExp%'); +var $TypeError = require('es-errors/type'); +var $parseInteger = GetIntrinsic('%parseInt%'); + +var callBound = require('call-bound'); +var regexTester = require('safe-regex-test'); + +var $strSlice = callBound('String.prototype.slice'); +var isBinary = regexTester(/^0b[01]+$/i); +var isOctal = regexTester(/^0o[0-7]+$/i); +var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); +var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); +var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); +var hasNonWS = regexTester(nonWSregex); + +var $trim = require('string.prototype.trim'); + +// https://262.ecma-international.org/13.0/#sec-stringtonumber + +module.exports = function StringToNumber(argument) { + if (typeof argument !== 'string') { + throw new $TypeError('Assertion failed: `argument` is not a String'); + } + if (isBinary(argument)) { + return +$parseInteger($strSlice(argument, 2), 2); + } + if (isOctal(argument)) { + return +$parseInteger($strSlice(argument, 2), 8); + } + if (hasNonWS(argument) || isInvalidHexLiteral(argument)) { + return NaN; + } + var trimmed = $trim(argument); + if (trimmed !== argument) { + return StringToNumber(trimmed); + } + return +argument; +}; diff --git a/node_modules/es-abstract/2025/SymbolDescriptiveString.js b/node_modules/es-abstract/2025/SymbolDescriptiveString.js new file mode 100644 index 0000000000000000000000000000000000000000..444e3f70004626a3053f672a290e5e81b0f5cf51 --- /dev/null +++ b/node_modules/es-abstract/2025/SymbolDescriptiveString.js @@ -0,0 +1,16 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +var $SymbolToString = callBound('Symbol.prototype.toString', true); + +// https://262.ecma-international.org/6.0/#sec-symboldescriptivestring + +module.exports = function SymbolDescriptiveString(sym) { + if (typeof sym !== 'symbol') { + throw new $TypeError('Assertion failed: `sym` must be a Symbol'); + } + return $SymbolToString(sym); +}; diff --git a/node_modules/es-abstract/2025/SystemTimeZoneIdentifier.js b/node_modules/es-abstract/2025/SystemTimeZoneIdentifier.js new file mode 100644 index 0000000000000000000000000000000000000000..c2f366be30a39890932b18d72d7d48a59cd3aa42 --- /dev/null +++ b/node_modules/es-abstract/2025/SystemTimeZoneIdentifier.js @@ -0,0 +1,18 @@ +'use strict'; + +var callBind = require('call-bind'); + +var I402 = typeof Intl === 'undefined' ? null : Intl; +var DateTimeFormat = !!I402 && I402.DateTimeFormat; +var resolvedOptions = !!DateTimeFormat && callBind(DateTimeFormat.prototype.resolvedOptions); + +// https://262.ecma-international.org/15.0/#sec-systemtimezoneidentifier + +module.exports = function SystemTimeZoneIdentifier() { + if (DateTimeFormat && resolvedOptions) { + return resolvedOptions(new DateTimeFormat()).timeZone; // steps 2 - 3 + + } + + return 'UTC'; // step 1 +}; diff --git a/node_modules/es-abstract/2025/TestIntegrityLevel.js b/node_modules/es-abstract/2025/TestIntegrityLevel.js new file mode 100644 index 0000000000000000000000000000000000000000..0e802f42786f89bac378b6a58e6009c9620be721 --- /dev/null +++ b/node_modules/es-abstract/2025/TestIntegrityLevel.js @@ -0,0 +1,40 @@ +'use strict'; + +var $gOPD = require('gopd'); +var $TypeError = require('es-errors/type'); + +var every = require('../helpers/every'); +var OwnPropertyKeys = require('own-keys'); +var isObject = require('es-object-atoms/isObject'); + +var IsDataDescriptor = require('./IsDataDescriptor'); +var IsExtensible = require('./IsExtensible'); +var ToPropertyDescriptor = require('./ToPropertyDescriptor'); + +// https://262.ecma-international.org/6.0/#sec-testintegritylevel + +module.exports = function TestIntegrityLevel(O, level) { + if (!isObject(O)) { + 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"`'); + } + var status = IsExtensible(O); + if (status || !$gOPD) { + return false; + } + var theKeys = OwnPropertyKeys(O); + return theKeys.length === 0 || every(theKeys, function (k) { + var currentDesc = $gOPD(O, k); + if (typeof currentDesc !== 'undefined') { + if (currentDesc.configurable) { + return false; + } + if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { + return false; + } + } + return true; + }); +}; diff --git a/node_modules/es-abstract/2025/ThisBigIntValue.js b/node_modules/es-abstract/2025/ThisBigIntValue.js new file mode 100644 index 0000000000000000000000000000000000000000..caf8989bcd0557ba533fb3954393ae940a7b0917 --- /dev/null +++ b/node_modules/es-abstract/2025/ThisBigIntValue.js @@ -0,0 +1,20 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $SyntaxError = require('es-errors/syntax'); +var $bigIntValueOf = callBound('BigInt.prototype.valueOf', true); + +// https://262.ecma-international.org/15.0/#sec-thisbigintvalue + +module.exports = function ThisBigIntValue(value) { + if (typeof value === 'bigint') { + return value; + } + + if (!$bigIntValueOf) { + throw new $SyntaxError('BigInt is not supported'); + } + + return $bigIntValueOf(value); +}; diff --git a/node_modules/es-abstract/2025/ThisBooleanValue.js b/node_modules/es-abstract/2025/ThisBooleanValue.js new file mode 100644 index 0000000000000000000000000000000000000000..ae592bb10be81147bf69e136838d315349e6aeac --- /dev/null +++ b/node_modules/es-abstract/2025/ThisBooleanValue.js @@ -0,0 +1,13 @@ +'use strict'; + +var $BooleanValueOf = require('call-bound')('Boolean.prototype.valueOf'); + +// https://262.ecma-international.org/15.0/#sec-properties-of-the-boolean-prototype-object + +module.exports = function ThisBooleanValue(value) { + if (typeof value === 'boolean') { + return value; + } + + return $BooleanValueOf(value); +}; diff --git a/node_modules/es-abstract/2025/ThisNumberValue.js b/node_modules/es-abstract/2025/ThisNumberValue.js new file mode 100644 index 0000000000000000000000000000000000000000..f3da1422f0b0acd47844b1444722f221fdd87562 --- /dev/null +++ b/node_modules/es-abstract/2025/ThisNumberValue.js @@ -0,0 +1,15 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $NumberValueOf = callBound('Number.prototype.valueOf'); + +// https://262.ecma-international.org/15.0/#sec-thisnumbervalue + +module.exports = function ThisNumberValue(value) { + if (typeof value === 'number') { + return value; + } + + return $NumberValueOf(value); +}; diff --git a/node_modules/es-abstract/2025/ThisStringValue.js b/node_modules/es-abstract/2025/ThisStringValue.js new file mode 100644 index 0000000000000000000000000000000000000000..cfe618d764bda27107aeb52118faaefcd71bc20c --- /dev/null +++ b/node_modules/es-abstract/2025/ThisStringValue.js @@ -0,0 +1,13 @@ +'use strict'; + +var $StringValueOf = require('call-bound')('String.prototype.valueOf'); + +// https://262.ecma-international.org/15.0/#sec-properties-of-the-string-prototype-object + +module.exports = function ThisStringValue(value) { + if (typeof value === 'string') { + return value; + } + + return $StringValueOf(value); +}; diff --git a/node_modules/es-abstract/2025/ThisSymbolValue.js b/node_modules/es-abstract/2025/ThisSymbolValue.js new file mode 100644 index 0000000000000000000000000000000000000000..0cf6e0ed7ce7499169fa16302c592a86e2ed632f --- /dev/null +++ b/node_modules/es-abstract/2025/ThisSymbolValue.js @@ -0,0 +1,20 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var callBound = require('call-bound'); + +var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true); + +// https://262.ecma-international.org/15.0/#sec-thissymbolvalue + +module.exports = function ThisSymbolValue(value) { + if (typeof value === 'symbol') { + return value; + } + + if (!$SymbolValueOf) { + throw new $SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object'); + } + + return $SymbolValueOf(value); +}; diff --git a/node_modules/es-abstract/2025/ThrowCompletion.js b/node_modules/es-abstract/2025/ThrowCompletion.js new file mode 100644 index 0000000000000000000000000000000000000000..b7d388a35292e2a9faf88d4808b74e2c4878bbe7 --- /dev/null +++ b/node_modules/es-abstract/2025/ThrowCompletion.js @@ -0,0 +1,9 @@ +'use strict'; + +var CompletionRecord = require('./CompletionRecord'); + +// https://262.ecma-international.org/9.0/#sec-throwcompletion + +module.exports = function ThrowCompletion(argument) { + return new CompletionRecord('throw', argument); +}; diff --git a/node_modules/es-abstract/2025/TimeClip.js b/node_modules/es-abstract/2025/TimeClip.js new file mode 100644 index 0000000000000000000000000000000000000000..77c8dd4226c4765855024b1784b842f869fa5bfe --- /dev/null +++ b/node_modules/es-abstract/2025/TimeClip.js @@ -0,0 +1,20 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Date = GetIntrinsic('%Date%'); + +var $isFinite = require('math-intrinsics/isFinite'); +var abs = require('math-intrinsics/abs'); + +var ToNumber = require('./ToNumber'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.14 + +module.exports = function TimeClip(time) { + if (!$isFinite(time) || abs(time) > 8.64e15) { + return NaN; + } + return +new $Date(ToNumber(time)); +}; + diff --git a/node_modules/es-abstract/2025/TimeFromYear.js b/node_modules/es-abstract/2025/TimeFromYear.js new file mode 100644 index 0000000000000000000000000000000000000000..f3518a41a19146c9ba59e1362c3fb33f800daaa1 --- /dev/null +++ b/node_modules/es-abstract/2025/TimeFromYear.js @@ -0,0 +1,11 @@ +'use strict'; + +var msPerDay = require('../helpers/timeConstants').msPerDay; + +var DayFromYear = require('./DayFromYear'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.3 + +module.exports = function TimeFromYear(y) { + return msPerDay * DayFromYear(y); +}; diff --git a/node_modules/es-abstract/2025/TimeString.js b/node_modules/es-abstract/2025/TimeString.js new file mode 100644 index 0000000000000000000000000000000000000000..4cc6c6acdc23bda39dc6fe862f23aa35dcfbfb6b --- /dev/null +++ b/node_modules/es-abstract/2025/TimeString.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var $isNaN = require('math-intrinsics/isNaN'); + +var HourFromTime = require('./HourFromTime'); +var MinFromTime = require('./MinFromTime'); +var SecFromTime = require('./SecFromTime'); +var ToZeroPaddedDecimalString = require('./ToZeroPaddedDecimalString'); + +// https://262.ecma-international.org/13.0/#sec-timestring + +module.exports = function TimeString(tv) { + if (typeof tv !== 'number' || $isNaN(tv)) { + throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); + } + + var hour = ToZeroPaddedDecimalString(HourFromTime(tv), 2); // step 1 + + var minute = ToZeroPaddedDecimalString(MinFromTime(tv), 2); // step 2 + + var second = ToZeroPaddedDecimalString(SecFromTime(tv), 2); // step 3 + + return hour + ':' + minute + ':' + second + ' GMT'; // step 4 +}; diff --git a/node_modules/es-abstract/2025/TimeWithinDay.js b/node_modules/es-abstract/2025/TimeWithinDay.js new file mode 100644 index 0000000000000000000000000000000000000000..2bba83386c141873d3b603ed19d0f37069d1016a --- /dev/null +++ b/node_modules/es-abstract/2025/TimeWithinDay.js @@ -0,0 +1,12 @@ +'use strict'; + +var modulo = require('./modulo'); + +var msPerDay = require('../helpers/timeConstants').msPerDay; + +// https://262.ecma-international.org/5.1/#sec-15.9.1.2 + +module.exports = function TimeWithinDay(t) { + return modulo(t, msPerDay); +}; + diff --git a/node_modules/es-abstract/2025/TimeZoneString.js b/node_modules/es-abstract/2025/TimeZoneString.js new file mode 100644 index 0000000000000000000000000000000000000000..2333632760e7bfab41881dbadb4de71f53148431 --- /dev/null +++ b/node_modules/es-abstract/2025/TimeZoneString.js @@ -0,0 +1,41 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Date = GetIntrinsic('%Date%'); +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var isInteger = require('math-intrinsics/isInteger'); + +var $indexOf = callBound('String.prototype.indexOf'); +var $slice = callBound('String.prototype.slice'); +var $toTimeString = callBound('Date.prototype.toTimeString'); + +// https://262.ecma-international.org/14.0/#sec-timezoneestring + +module.exports = function TimeZoneString(tv) { + if (!isInteger(tv)) { + throw new $TypeError('Assertion failed: `tv` must be an integral Number'); + } + + // 1. Let localTimeZone be DefaultTimeZone(). + // 2. If IsTimeZoneOffsetString(localTimeZone) is true, then + // a. Let offsetNs be ParseTimeZoneOffsetString(localTimeZone). + // 3. Else, + // a. Let offsetNs be GetNamedTimeZoneOffsetNanoseconds(localTimeZone, ℤ(ℝ(tv) × 106)). + // 4. Let offset be 𝔽(truncate(offsetNs / 106)). + // 5. If offset is +0𝔽 or offset > +0𝔽, then + // a. Let offsetSign be "+". + // b. Let absOffset be offset. + // 6. Else, + // a. Let offsetSign be "-". + // b. Let absOffset be -offset. + // 7. Let offsetMin be ToZeroPaddedDecimalString(ℝ(MinFromTime(absOffset)), 2). + // 8. Let offsetHour be ToZeroPaddedDecimalString(ℝ(HourFromTime(absOffset)), 2). + // 9. Let tzName be an implementation-defined string that is either the empty String or the string-concatenation of the code unit 0x0020 (SPACE), the code unit 0x0028 (LEFT PARENTHESIS), an implementation-defined timezone name, and the code unit 0x0029 (RIGHT PARENTHESIS). + // 10. Return the string-concatenation of offsetSign, offsetHour, offsetMin, and tzName. + + // hack until DefaultTimeZone, IsTimeZoneOffsetString, ParseTimeZoneOffsetString, GetNamedTimeZoneOffsetNanoseconds, and "implementation-defined string" are available + var ts = $toTimeString(new $Date(tv)); + return $slice(ts, $indexOf(ts, '(') + 1, $indexOf(ts, ')')); +}; diff --git a/node_modules/es-abstract/2025/ToBigInt.js b/node_modules/es-abstract/2025/ToBigInt.js new file mode 100644 index 0000000000000000000000000000000000000000..d6638104de25470c4bbc8a8102c8cd35617eebb6 --- /dev/null +++ b/node_modules/es-abstract/2025/ToBigInt.js @@ -0,0 +1,51 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $Number = GetIntrinsic('%Number%'); +var $TypeError = require('es-errors/type'); +var $SyntaxError = require('es-errors/syntax'); + +var StringToBigInt = require('./StringToBigInt'); +var ToPrimitive = require('./ToPrimitive'); + +// https://262.ecma-international.org/13.0/#sec-tobigint + +module.exports = function ToBigInt(argument) { + if (!$BigInt) { + throw new $SyntaxError('BigInts are not supported in this environment'); + } + + var prim = ToPrimitive(argument, $Number); + + if (prim == null) { + throw new $TypeError('Cannot convert null or undefined to a BigInt'); + } + + if (typeof prim === 'boolean') { + return prim ? $BigInt(1) : $BigInt(0); + } + + if (typeof prim === 'number') { + throw new $TypeError('Cannot convert a Number value to a BigInt'); + } + + if (typeof prim === 'string') { + var n = StringToBigInt(prim); + if (typeof n === 'undefined') { + throw new $TypeError('Failed to parse String to BigInt'); + } + return n; + } + + if (typeof prim === 'symbol') { + throw new $TypeError('Cannot convert a Symbol value to a BigInt'); + } + + if (typeof prim !== 'bigint') { + throw new $SyntaxError('Assertion failed: unknown primitive type'); + } + + return prim; +}; diff --git a/node_modules/es-abstract/2025/ToBigInt64.js b/node_modules/es-abstract/2025/ToBigInt64.js new file mode 100644 index 0000000000000000000000000000000000000000..627acba3d06e0e6d1e8b0b91088efbc7d6d42b0a --- /dev/null +++ b/node_modules/es-abstract/2025/ToBigInt64.js @@ -0,0 +1,25 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); +var $pow = require('math-intrinsics/pow'); + +var ToBigInt = require('./ToBigInt'); +var BigIntRemainder = require('./BigInt/remainder'); + +var modBigInt = require('../helpers/modBigInt'); + +// BigInt(2**63), but node v10.4-v10.8 have a bug where you can't `BigInt(x)` anything larger than MAX_SAFE_INTEGER +var twoSixtyThree = $BigInt && (BigInt($pow(2, 32)) * BigInt($pow(2, 31))); + +// BigInt(2**64), but node v10.4-v10.8 have a bug where you can't `BigInt(x)` anything larger than MAX_SAFE_INTEGER +var twoSixtyFour = $BigInt && (BigInt($pow(2, 32)) * BigInt($pow(2, 32))); + +// https://262.ecma-international.org/11.0/#sec-tobigint64 + +module.exports = function ToBigInt64(argument) { + var n = ToBigInt(argument); + var int64bit = modBigInt(BigIntRemainder, n, twoSixtyFour); + return int64bit >= twoSixtyThree ? int64bit - twoSixtyFour : int64bit; +}; diff --git a/node_modules/es-abstract/2025/ToBigUint64.js b/node_modules/es-abstract/2025/ToBigUint64.js new file mode 100644 index 0000000000000000000000000000000000000000..f4038dc7bcaceb9b24157f6e6bcdfa286138f785 --- /dev/null +++ b/node_modules/es-abstract/2025/ToBigUint64.js @@ -0,0 +1,23 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $BigInt = GetIntrinsic('%BigInt%', true); + +var $pow = require('math-intrinsics/pow'); + +var ToBigInt = require('./ToBigInt'); +var BigIntRemainder = require('./BigInt/remainder'); + +var modBigInt = require('../helpers/modBigInt'); + +// BigInt(2**64), but node v10.4-v10.8 have a bug where you can't `BigInt(x)` anything larger than MAX_SAFE_INTEGER +var twoSixtyFour = $BigInt && (BigInt($pow(2, 32)) * BigInt($pow(2, 32))); + +// https://262.ecma-international.org/11.0/#sec-tobiguint64 + +module.exports = function ToBigUint64(argument) { + var n = ToBigInt(argument); + var int64bit = modBigInt(BigIntRemainder, n, twoSixtyFour); + return int64bit; +}; diff --git a/node_modules/es-abstract/2025/ToBoolean.js b/node_modules/es-abstract/2025/ToBoolean.js new file mode 100644 index 0000000000000000000000000000000000000000..466404bf9992f0ba636249264c620d6c56215d6a --- /dev/null +++ b/node_modules/es-abstract/2025/ToBoolean.js @@ -0,0 +1,5 @@ +'use strict'; + +// http://262.ecma-international.org/5.1/#sec-9.2 + +module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/es-abstract/2025/ToDateString.js b/node_modules/es-abstract/2025/ToDateString.js new file mode 100644 index 0000000000000000000000000000000000000000..d9bb434185ca0adfa055d91bf592efdce3ed1d94 --- /dev/null +++ b/node_modules/es-abstract/2025/ToDateString.js @@ -0,0 +1,21 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $Date = GetIntrinsic('%Date%'); +var $String = GetIntrinsic('%String%'); + +var $isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/6.0/#sec-todatestring + +module.exports = function ToDateString(tv) { + if (typeof tv !== 'number') { + throw new $TypeError('Assertion failed: `tv` must be a Number'); + } + if ($isNaN(tv)) { + return 'Invalid Date'; + } + return $String(new $Date(tv)); +}; diff --git a/node_modules/es-abstract/2025/ToIndex.js b/node_modules/es-abstract/2025/ToIndex.js new file mode 100644 index 0000000000000000000000000000000000000000..0bd5ba24abec4f8863da452e6715f1abdb28f7ed --- /dev/null +++ b/node_modules/es-abstract/2025/ToIndex.js @@ -0,0 +1,20 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); + +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); + +var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger'); + +// https://262.ecma-international.org/15.0/#sec-toindex + +module.exports = function ToIndex(value) { + if (typeof value === 'undefined') { + return 0; + } + var integer = ToIntegerOrInfinity(value); + if (integer < 0 || integer >= MAX_SAFE_INTEGER) { + throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1'); + } + return integer; +}; diff --git a/node_modules/es-abstract/2025/ToInt16.js b/node_modules/es-abstract/2025/ToInt16.js new file mode 100644 index 0000000000000000000000000000000000000000..84440f91783cef9a41c10cbf7cd4249049161c1f --- /dev/null +++ b/node_modules/es-abstract/2025/ToInt16.js @@ -0,0 +1,21 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-toint16 + +var two16 = 0x10000; // Math.pow(2, 16); + +module.exports = function ToInt16(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int16bit = modulo(int, two16); + return int16bit >= 0x8000 ? int16bit - two16 : int16bit; +}; diff --git a/node_modules/es-abstract/2025/ToInt32.js b/node_modules/es-abstract/2025/ToInt32.js new file mode 100644 index 0000000000000000000000000000000000000000..f1317fb70bcf7c53e4c4c11d5a94e348d8171d8c --- /dev/null +++ b/node_modules/es-abstract/2025/ToInt32.js @@ -0,0 +1,23 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-toint32 + +var two31 = 0x80000000; // Math.pow(2, 31); +var two32 = 0x100000000; // Math.pow(2, 32); + +module.exports = function ToInt32(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int32bit = modulo(int, two32); + var result = int32bit >= two31 ? int32bit - two32 : int32bit; + return result === 0 ? 0 : result; // in the spec, these are math values, so we filter out -0 here +}; diff --git a/node_modules/es-abstract/2025/ToInt8.js b/node_modules/es-abstract/2025/ToInt8.js new file mode 100644 index 0000000000000000000000000000000000000000..c2bd91fa022ae1604ec87d037d4f28718a67da49 --- /dev/null +++ b/node_modules/es-abstract/2025/ToInt8.js @@ -0,0 +1,19 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-toint8 + +module.exports = function ToInt8(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int8bit = modulo(int, 0x100); + return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; +}; diff --git a/node_modules/es-abstract/2025/ToIntegerOrInfinity.js b/node_modules/es-abstract/2025/ToIntegerOrInfinity.js new file mode 100644 index 0000000000000000000000000000000000000000..425feed5421d76b210a013080d2fedb88cc4d662 --- /dev/null +++ b/node_modules/es-abstract/2025/ToIntegerOrInfinity.js @@ -0,0 +1,16 @@ +'use strict'; + +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var $isNaN = require('math-intrinsics/isNaN'); +var $isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-tointegerorinfinity + +module.exports = function ToIntegerOrInfinity(value) { + var number = ToNumber(value); + if ($isNaN(number) || number === 0) { return 0; } + if (!$isFinite(number)) { return number; } + return truncate(number); +}; diff --git a/node_modules/es-abstract/2025/ToLength.js b/node_modules/es-abstract/2025/ToLength.js new file mode 100644 index 0000000000000000000000000000000000000000..12c9aac8680d49bfe8591a9a5a4a645d6ca9d18e --- /dev/null +++ b/node_modules/es-abstract/2025/ToLength.js @@ -0,0 +1,14 @@ +'use strict'; + +var MAX_SAFE_INTEGER = require('math-intrinsics/constants/maxSafeInteger'); + +var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); + +// https://262.ecma-international.org/12.0/#sec-tolength + +module.exports = function ToLength(argument) { + var len = ToIntegerOrInfinity(argument); + if (len <= 0) { return 0; } // includes converting -0 to +0 + if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } + return len; +}; diff --git a/node_modules/es-abstract/2025/ToNumber.js b/node_modules/es-abstract/2025/ToNumber.js new file mode 100644 index 0000000000000000000000000000000000000000..2e7dc51676b6f2dcbaead28a8b7b6a2abcb1685e --- /dev/null +++ b/node_modules/es-abstract/2025/ToNumber.js @@ -0,0 +1,26 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $Number = GetIntrinsic('%Number%'); +var isPrimitive = require('../helpers/isPrimitive'); + +var ToPrimitive = require('./ToPrimitive'); +var StringToNumber = require('./StringToNumber'); + +// https://262.ecma-international.org/13.0/#sec-tonumber + +module.exports = function ToNumber(argument) { + var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); + if (typeof value === 'symbol') { + throw new $TypeError('Cannot convert a Symbol value to a number'); + } + if (typeof value === 'bigint') { + throw new $TypeError('Conversion from \'BigInt\' to \'number\' is not allowed.'); + } + if (typeof value === 'string') { + return StringToNumber(value); + } + return +value; +}; diff --git a/node_modules/es-abstract/2025/ToNumeric.js b/node_modules/es-abstract/2025/ToNumeric.js new file mode 100644 index 0000000000000000000000000000000000000000..00a436dc0848803af47df54584e7d851dfe1b4a0 --- /dev/null +++ b/node_modules/es-abstract/2025/ToNumeric.js @@ -0,0 +1,20 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Number = GetIntrinsic('%Number%'); + +var isPrimitive = require('../helpers/isPrimitive'); + +var ToPrimitive = require('./ToPrimitive'); +var ToNumber = require('./ToNumber'); + +// https://262.ecma-international.org/11.0/#sec-tonumeric + +module.exports = function ToNumeric(argument) { + var primValue = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); + if (typeof primValue === 'bigint') { + return primValue; + } + return ToNumber(primValue); +}; diff --git a/node_modules/es-abstract/2025/ToObject.js b/node_modules/es-abstract/2025/ToObject.js new file mode 100644 index 0000000000000000000000000000000000000000..70226aaa331e7fd7aa487e680d4aca6bb6874f5b --- /dev/null +++ b/node_modules/es-abstract/2025/ToObject.js @@ -0,0 +1,5 @@ +'use strict'; + +// https://262.ecma-international.org/6.0/#sec-toobject + +module.exports = require('es-object-atoms/ToObject'); diff --git a/node_modules/es-abstract/2025/ToPrimitive.js b/node_modules/es-abstract/2025/ToPrimitive.js new file mode 100644 index 0000000000000000000000000000000000000000..56bcf1aa9eb269d753119497686556384800b092 --- /dev/null +++ b/node_modules/es-abstract/2025/ToPrimitive.js @@ -0,0 +1,12 @@ +'use strict'; + +var toPrimitive = require('es-to-primitive/es2015'); + +// https://262.ecma-international.org/6.0/#sec-toprimitive + +module.exports = function ToPrimitive(input) { + if (arguments.length > 1) { + return toPrimitive(input, arguments[1]); + } + return toPrimitive(input); +}; diff --git a/node_modules/es-abstract/2025/ToPropertyDescriptor.js b/node_modules/es-abstract/2025/ToPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..017350d593b202573a928ccefeacc7472c803a5e --- /dev/null +++ b/node_modules/es-abstract/2025/ToPropertyDescriptor.js @@ -0,0 +1,50 @@ +'use strict'; + +var hasOwn = require('hasown'); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var IsCallable = require('./IsCallable'); +var ToBoolean = require('./ToBoolean'); + +// https://262.ecma-international.org/5.1/#sec-8.10.5 + +module.exports = function ToPropertyDescriptor(Obj) { + if (!isObject(Obj)) { + throw new $TypeError('ToPropertyDescriptor requires an object'); + } + + var desc = {}; + if (hasOwn(Obj, 'enumerable')) { + desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); + } + if (hasOwn(Obj, 'configurable')) { + desc['[[Configurable]]'] = ToBoolean(Obj.configurable); + } + if (hasOwn(Obj, 'value')) { + desc['[[Value]]'] = Obj.value; + } + if (hasOwn(Obj, 'writable')) { + desc['[[Writable]]'] = ToBoolean(Obj.writable); + } + if (hasOwn(Obj, 'get')) { + var getter = Obj.get; + if (typeof getter !== 'undefined' && !IsCallable(getter)) { + throw new $TypeError('getter must be a function'); + } + desc['[[Get]]'] = getter; + } + if (hasOwn(Obj, 'set')) { + var setter = Obj.set; + if (typeof setter !== 'undefined' && !IsCallable(setter)) { + throw new $TypeError('setter must be a function'); + } + desc['[[Set]]'] = setter; + } + + if ((hasOwn(desc, '[[Get]]') || hasOwn(desc, '[[Set]]')) && (hasOwn(desc, '[[Value]]') || hasOwn(desc, '[[Writable]]'))) { + throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); + } + return desc; +}; diff --git a/node_modules/es-abstract/2025/ToPropertyKey.js b/node_modules/es-abstract/2025/ToPropertyKey.js new file mode 100644 index 0000000000000000000000000000000000000000..e363cd93b1722ddcff99896fb5667079bb95c932 --- /dev/null +++ b/node_modules/es-abstract/2025/ToPropertyKey.js @@ -0,0 +1,15 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $String = GetIntrinsic('%String%'); + +var ToPrimitive = require('./ToPrimitive'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/6.0/#sec-topropertykey + +module.exports = function ToPropertyKey(argument) { + var key = ToPrimitive(argument, $String); + return typeof key === 'symbol' ? key : ToString(key); +}; diff --git a/node_modules/es-abstract/2025/ToString.js b/node_modules/es-abstract/2025/ToString.js new file mode 100644 index 0000000000000000000000000000000000000000..16b4ccf893640ee9162ff07ad484038311e6210d --- /dev/null +++ b/node_modules/es-abstract/2025/ToString.js @@ -0,0 +1,15 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $String = GetIntrinsic('%String%'); +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/6.0/#sec-tostring + +module.exports = function ToString(argument) { + if (typeof argument === 'symbol') { + throw new $TypeError('Cannot convert a Symbol value to a string'); + } + return $String(argument); +}; diff --git a/node_modules/es-abstract/2025/ToUint16.js b/node_modules/es-abstract/2025/ToUint16.js new file mode 100644 index 0000000000000000000000000000000000000000..9e09a6c5986f42aa89de68ec64eddff522e57024 --- /dev/null +++ b/node_modules/es-abstract/2025/ToUint16.js @@ -0,0 +1,21 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-touint16 + +var two16 = 0x10000; // Math.pow(2, 16) + +module.exports = function ToUint16(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int16bit = modulo(int, two16); + return int16bit === 0 ? 0 : int16bit; // in the spec, these are math values, so we filter out -0 here +}; diff --git a/node_modules/es-abstract/2025/ToUint32.js b/node_modules/es-abstract/2025/ToUint32.js new file mode 100644 index 0000000000000000000000000000000000000000..98f7c7fb676eb8dd37dcc7e76bf5966765e32d08 --- /dev/null +++ b/node_modules/es-abstract/2025/ToUint32.js @@ -0,0 +1,21 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +var isFinite = require('math-intrinsics/isFinite'); + +// https://262.ecma-international.org/14.0/#sec-touint32 + +var two32 = 0x100000000; // Math.pow(2, 32); + +module.exports = function ToUint32(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int32bit = modulo(int, two32); + return int32bit === 0 ? 0 : int32bit; // in the spec, these are math values, so we filter out -0 here +}; diff --git a/node_modules/es-abstract/2025/ToUint8.js b/node_modules/es-abstract/2025/ToUint8.js new file mode 100644 index 0000000000000000000000000000000000000000..991af3667ca7ce7cdae085c398f581b7ae641390 --- /dev/null +++ b/node_modules/es-abstract/2025/ToUint8.js @@ -0,0 +1,19 @@ +'use strict'; + +var isFinite = require('math-intrinsics/isFinite'); + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); +var truncate = require('./truncate'); + +// https://262.ecma-international.org/14.0/#sec-touint8 + +module.exports = function ToUint8(argument) { + var number = ToNumber(argument); + if (!isFinite(number) || number === 0) { + return 0; + } + var int = truncate(number); + var int8bit = modulo(int, 0x100); + return int8bit; +}; diff --git a/node_modules/es-abstract/2025/ToUint8Clamp.js b/node_modules/es-abstract/2025/ToUint8Clamp.js new file mode 100644 index 0000000000000000000000000000000000000000..d7132d9d733b0c5fd1b8d324d033fab694f44d44 --- /dev/null +++ b/node_modules/es-abstract/2025/ToUint8Clamp.js @@ -0,0 +1,26 @@ +'use strict'; + +var clamp = require('./clamp'); + +var ToNumber = require('./ToNumber'); +var floor = require('./floor'); + +var $isNaN = require('math-intrinsics/isNaN'); + +// https://262.ecma-international.org/15.0/#sec-touint8clamp + +module.exports = function ToUint8Clamp(argument) { + var number = ToNumber(argument); // step 1 + + if ($isNaN(number)) { return 0; } // step 2 + + var clamped = clamp(number, 0, 255); // step 4 + + var f = floor(clamped); // step 5 + + if (clamped < (f + 0.5)) { return f; } // step 6 + + if (clamped > (f + 0.5)) { return f + 1; } // step 7 + + return f % 2 === 0 ? f : f + 1; // step 8 +}; diff --git a/node_modules/es-abstract/2025/ToZeroPaddedDecimalString.js b/node_modules/es-abstract/2025/ToZeroPaddedDecimalString.js new file mode 100644 index 0000000000000000000000000000000000000000..899863782f720219d850860c324f360d729f2fd3 --- /dev/null +++ b/node_modules/es-abstract/2025/ToZeroPaddedDecimalString.js @@ -0,0 +1,19 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $String = GetIntrinsic('%String%'); +var $RangeError = require('es-errors/range'); +var isInteger = require('math-intrinsics/isInteger'); + +var StringPad = require('./StringPad'); + +// https://262.ecma-international.org/13.0/#sec-tozeropaddeddecimalstring + +module.exports = function ToZeroPaddedDecimalString(n, minLength) { + if (!isInteger(n) || n < 0) { + throw new $RangeError('Assertion failed: `q` must be a non-negative integer'); + } + var S = $String(n); + return StringPad(S, minLength, '0', 'start'); +}; diff --git a/node_modules/es-abstract/2025/TrimString.js b/node_modules/es-abstract/2025/TrimString.js new file mode 100644 index 0000000000000000000000000000000000000000..516ef254819cc6b4d11788176a2e90b7ca18b7e4 --- /dev/null +++ b/node_modules/es-abstract/2025/TrimString.js @@ -0,0 +1,27 @@ +'use strict'; + +var trimStart = require('string.prototype.trimstart'); +var trimEnd = require('string.prototype.trimend'); + +var $TypeError = require('es-errors/type'); + +var RequireObjectCoercible = require('./RequireObjectCoercible'); +var ToString = require('./ToString'); + +// https://262.ecma-international.org/10.0/#sec-trimstring + +module.exports = function TrimString(string, where) { + var str = RequireObjectCoercible(string); + var S = ToString(str); + var T; + if (where === 'start') { + T = trimStart(S); + } else if (where === 'end') { + T = trimEnd(S); + } else if (where === 'start+end') { + T = trimStart(trimEnd(S)); + } else { + throw new $TypeError('Assertion failed: invalid `where` value; must be "start", "end", or "start+end"'); + } + return T; +}; diff --git a/node_modules/es-abstract/2025/TypedArrayByteLength.js b/node_modules/es-abstract/2025/TypedArrayByteLength.js new file mode 100644 index 0000000000000000000000000000000000000000..703ef0ab6a47caa476d9f54d50ce01c0ccb7a39e --- /dev/null +++ b/node_modules/es-abstract/2025/TypedArrayByteLength.js @@ -0,0 +1,43 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); +var TypedArrayLength = require('./TypedArrayLength'); + +var isTypedArrayWithBufferWitnessRecord = require('../helpers/records/typed-array-with-buffer-witness-record'); + +var typedArrayByffer = require('typed-array-buffer'); +var typedArrayByteLength = require('typed-array-byte-length'); + +// https://262.ecma-international.org/15.0/#sec-typedarraybytelength + +module.exports = function TypedArrayByteLength(taRecord) { + if (!isTypedArrayWithBufferWitnessRecord(taRecord)) { + throw new $TypeError('Assertion failed: `taRecord` must be a TypedArray With Buffer Witness Record'); + } + + if (IsTypedArrayOutOfBounds(taRecord)) { + return 0; // step 1 + } + var length = TypedArrayLength(taRecord); // step 2 + + if (length === 0) { + return 0; // step 3 + } + + var O = taRecord['[[Object]]']; // step 4 + + var isFixed = IsFixedLengthArrayBuffer(typedArrayByffer(O)); + + var byteLength = isFixed ? typedArrayByteLength(O) : 'AUTO'; + if (byteLength !== 'AUTO') { + return byteLength; // step 5 + } + + var elementSize = TypedArrayElementSize(O); // step 6 + + return length * elementSize; // step 7 +}; diff --git a/node_modules/es-abstract/2025/TypedArrayCreateFromConstructor.js b/node_modules/es-abstract/2025/TypedArrayCreateFromConstructor.js new file mode 100644 index 0000000000000000000000000000000000000000..32ead21a896eb4d27d195bfe12e6ecd105908785 --- /dev/null +++ b/node_modules/es-abstract/2025/TypedArrayCreateFromConstructor.js @@ -0,0 +1,52 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var IsArray = require('./IsArray'); +var IsConstructor = require('./IsConstructor'); +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var TypedArrayLength = require('./TypedArrayLength'); +var ValidateTypedArray = require('./ValidateTypedArray'); + +var availableTypedArrays = require('available-typed-arrays')(); + +// https://262.ecma-international.org/15.0/#typedarraycreatefromconstructor + +module.exports = function TypedArrayCreateFromConstructor(constructor, argumentList) { + if (!IsConstructor(constructor)) { + throw new $TypeError('Assertion failed: `constructor` must be a constructor'); + } + if (!IsArray(argumentList)) { + throw new $TypeError('Assertion failed: `argumentList` must be a List'); + } + if (availableTypedArrays.length === 0) { + throw new $SyntaxError('Assertion failed: Typed Arrays are not supported in this environment'); + } + + // var newTypedArray = Construct(constructor, argumentList); // step 1 + var newTypedArray; + if (argumentList.length === 0) { + newTypedArray = new constructor(); + } else if (argumentList.length === 1) { + newTypedArray = new constructor(argumentList[0]); + } else if (argumentList.length === 2) { + newTypedArray = new constructor(argumentList[0], argumentList[1]); + } else { + newTypedArray = new constructor(argumentList[0], argumentList[1], argumentList[2]); + } + + var taRecord = ValidateTypedArray(newTypedArray, 'SEQ-CST'); // step 2 + + if (argumentList.length === 1 && typeof argumentList[0] === 'number') { // step 3 + if (IsTypedArrayOutOfBounds(taRecord)) { + throw new $TypeError('new Typed Array is out of bounds'); // step 3.a + } + var length = TypedArrayLength(taRecord); // step 3.b + if (length < argumentList[0]) { + throw new $TypeError('`argumentList[0]` must be <= `newTypedArray.length`'); // step 3.c + } + } + + return newTypedArray; // step 4 +}; diff --git a/node_modules/es-abstract/2025/TypedArrayCreateSameType.js b/node_modules/es-abstract/2025/TypedArrayCreateSameType.js new file mode 100644 index 0000000000000000000000000000000000000000..5c47d3d737e06f5d8c740528541889594f3a426a --- /dev/null +++ b/node_modules/es-abstract/2025/TypedArrayCreateSameType.js @@ -0,0 +1,35 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var whichTypedArray = require('which-typed-array'); +var availableTypedArrays = require('available-typed-arrays')(); + +var IsArray = require('./IsArray'); +var TypedArrayCreateFromConstructor = require('./TypedArrayCreateFromConstructor'); + +var getConstructor = require('../helpers/typedArrayConstructors'); + +// https://262.ecma-international.org/15.0/#sec-typedarray-create-same-type + +module.exports = function TypedArrayCreateSameType(exemplar, argumentList) { + if (availableTypedArrays.length === 0) { + throw new $SyntaxError('Assertion failed: Typed Arrays are not supported in this environment'); + } + + var kind = whichTypedArray(exemplar); + if (!kind) { + throw new $TypeError('Assertion failed: exemplar must be a TypedArray'); // step 1 + } + if (!IsArray(argumentList)) { + throw new $TypeError('Assertion failed: `argumentList` must be a List'); // step 1 + } + + var constructor = getConstructor(kind); // step 2 + if (typeof constructor !== 'function') { + throw new $SyntaxError('Assertion failed: `constructor` of `exemplar` (' + kind + ') must exist. Please report this!'); + } + + return TypedArrayCreateFromConstructor(constructor, argumentList); // steps 3 - 6 +}; diff --git a/node_modules/es-abstract/2025/TypedArrayElementSize.js b/node_modules/es-abstract/2025/TypedArrayElementSize.js new file mode 100644 index 0000000000000000000000000000000000000000..1885af5141b51dd024c1230408987d8bf870d98d --- /dev/null +++ b/node_modules/es-abstract/2025/TypedArrayElementSize.js @@ -0,0 +1,23 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var whichTypedArray = require('which-typed-array'); + +// https://262.ecma-international.org/13.0/#sec-typedarrayelementsize + +var tableTAO = require('./tables/typed-array-objects'); + +module.exports = function TypedArrayElementSize(O) { + var type = whichTypedArray(O); + if (!type) { + throw new $TypeError('Assertion failed: `O` must be a TypedArray'); + } + var size = tableTAO.size['$' + tableTAO.name['$' + type]]; + if (!isInteger(size) || size < 0) { + throw new $SyntaxError('Assertion failed: Unknown TypedArray type `' + type + '`'); + } + + return size; +}; diff --git a/node_modules/es-abstract/2025/TypedArrayElementType.js b/node_modules/es-abstract/2025/TypedArrayElementType.js new file mode 100644 index 0000000000000000000000000000000000000000..0e9abe6a1d3807172b157a934f20fb4e8a4dca81 --- /dev/null +++ b/node_modules/es-abstract/2025/TypedArrayElementType.js @@ -0,0 +1,23 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var whichTypedArray = require('which-typed-array'); + +// https://262.ecma-international.org/13.0/#sec-typedarrayelementtype + +var tableTAO = require('./tables/typed-array-objects'); + +module.exports = function TypedArrayElementType(O) { + var type = whichTypedArray(O); + if (!type) { + throw new $TypeError('Assertion failed: `O` must be a TypedArray'); + } + var result = tableTAO.name['$' + type]; + if (typeof result !== 'string') { + throw new $SyntaxError('Assertion failed: Unknown TypedArray type `' + type + '`'); + } + + return result; +}; diff --git a/node_modules/es-abstract/2025/TypedArrayGetElement.js b/node_modules/es-abstract/2025/TypedArrayGetElement.js new file mode 100644 index 0000000000000000000000000000000000000000..437069adba75cb9df4fa5cfc88ff09e83b986116 --- /dev/null +++ b/node_modules/es-abstract/2025/TypedArrayGetElement.js @@ -0,0 +1,37 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var GetValueFromBuffer = require('./GetValueFromBuffer'); +var IsValidIntegerIndex = require('./IsValidIntegerIndex'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); +var TypedArrayElementType = require('./TypedArrayElementType'); + +var isTypedArray = require('is-typed-array'); +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayByteOffset = require('typed-array-byte-offset'); + +// https://262.ecma-international.org/15.0/#sec-typedarraygetelement + +module.exports = function TypedArrayGetElement(O, index) { + if (!isTypedArray(O)) { + throw new $TypeError('Assertion failed: `O` must be a TypedArray instance'); + } + if (typeof index !== 'number') { + throw new $TypeError('Assertion failed: `index` must be a Number'); + } + + if (!IsValidIntegerIndex(O, index)) { + return undefined; // step 1 + } + + var offset = typedArrayByteOffset(O); // step 2 + + var elementSize = TypedArrayElementSize(O); // step 3 + + var byteIndexInBuffer = (index * elementSize) + offset; // step 4 + + var elementType = TypedArrayElementType(O); // step 5 + + return GetValueFromBuffer(typedArrayBuffer(O), byteIndexInBuffer, elementType, true, 'UNORDERED'); // step 6 +}; diff --git a/node_modules/es-abstract/2025/TypedArrayLength.js b/node_modules/es-abstract/2025/TypedArrayLength.js new file mode 100644 index 0000000000000000000000000000000000000000..30b21acd8fd813cebea1baa7aa6a55b271326195 --- /dev/null +++ b/node_modules/es-abstract/2025/TypedArrayLength.js @@ -0,0 +1,51 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var floor = require('./floor'); +var IsFixedLengthArrayBuffer = require('./IsFixedLengthArrayBuffer'); +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); + +var isTypedArrayWithBufferWitnessRecord = require('../helpers/records/typed-array-with-buffer-witness-record'); + +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayByteOffset = require('typed-array-byte-offset'); +var typedArrayLength = require('typed-array-length'); + +// https://www.ecma-international.org/ecma-262/15.0/#sec-typedarraylength + +module.exports = function TypedArrayLength(taRecord) { + if (!isTypedArrayWithBufferWitnessRecord(taRecord)) { + throw new $TypeError('Assertion failed: `taRecord` must be a TypedArray With Buffer Witness Record'); + } + + if (IsTypedArrayOutOfBounds(taRecord)) { + throw new $TypeError('Assertion failed: `taRecord` is out of bounds'); // step 1 + } + + var O = taRecord['[[Object]]']; // step 2 + + var isFixed = IsFixedLengthArrayBuffer(typedArrayBuffer(O)); + + var length = isFixed ? typedArrayLength(O) : 'AUTO'; + if (length !== 'AUTO') { + return length; // step 3 + } + + if (isFixed) { + throw new $TypeError('Assertion failed: array buffer is not fixed length'); // step 4 + } + + var byteOffset = typedArrayByteOffset(O); // step 5 + + var elementSize = TypedArrayElementSize(O); // step 6 + + var byteLength = taRecord['[[CachedBufferByteLength]]']; // step 7 + + if (byteLength === 'DETACHED') { + throw new $TypeError('Assertion failed: typed array is detached'); // step 8 + } + + return floor((byteLength - byteOffset) / elementSize); // step 9 +}; diff --git a/node_modules/es-abstract/2025/TypedArraySetElement.js b/node_modules/es-abstract/2025/TypedArraySetElement.js new file mode 100644 index 0000000000000000000000000000000000000000..abbc1dfd06f2ede6f66779a15f378a679c701148 --- /dev/null +++ b/node_modules/es-abstract/2025/TypedArraySetElement.js @@ -0,0 +1,42 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsValidIntegerIndex = require('./IsValidIntegerIndex'); +var SetValueInBuffer = require('./SetValueInBuffer'); +var ToBigInt = require('./ToBigInt'); +var ToNumber = require('./ToNumber'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); +var TypedArrayElementType = require('./TypedArrayElementType'); + +var typedArrayBuffer = require('typed-array-buffer'); +var typedArrayByteOffset = require('typed-array-byte-offset'); +var whichTypedArray = require('which-typed-array'); + +// http://www.ecma-international.org/ecma-262/15.0/#sec-typedarraysetelement + +module.exports = function TypedArraySetElement(O, index, value) { + var which = whichTypedArray(O); + if (!which) { + throw new $TypeError('Assertion failed: `O` must be a Typed Array'); + } + if (typeof index !== 'number') { + throw new $TypeError('Assertion failed: `index` must be a Number'); + } + + var contentType = which === 'BigInt64Array' || which === 'BigUint64Array' ? 'BIGINT' : 'NUMBER'; + + var numValue = contentType === 'BIGINT' ? ToBigInt(value) : ToNumber(value); // steps 1 - 2 + + if (IsValidIntegerIndex(O, index)) { // step 3 + var offset = typedArrayByteOffset(O); // step 3.a + + var elementSize = TypedArrayElementSize(O); // step 3.b + + var byteIndexInBuffer = (index * elementSize) + offset; // step 3.c + + var elementType = TypedArrayElementType(O); // step 3.d + + SetValueInBuffer(typedArrayBuffer(O), byteIndexInBuffer, elementType, numValue, true, 'UNORDERED'); // step 3.e + } +}; diff --git a/node_modules/es-abstract/2025/TypedArraySpeciesCreate.js b/node_modules/es-abstract/2025/TypedArraySpeciesCreate.js new file mode 100644 index 0000000000000000000000000000000000000000..85730ee9ffa79253db7c4c1c92121cd2f1f0cd4f --- /dev/null +++ b/node_modules/es-abstract/2025/TypedArraySpeciesCreate.js @@ -0,0 +1,37 @@ +'use strict'; + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var whichTypedArray = require('which-typed-array'); +var availableTypedArrays = require('available-typed-arrays')(); + +var IsArray = require('./IsArray'); +var SpeciesConstructor = require('./SpeciesConstructor'); +var TypedArrayCreateFromConstructor = require('./TypedArrayCreateFromConstructor'); + +var getConstructor = require('../helpers/typedArrayConstructors'); + +// https://262.ecma-international.org/15.0/#typedarray-species-create + +module.exports = function TypedArraySpeciesCreate(exemplar, argumentList) { + if (availableTypedArrays.length === 0) { + throw new $SyntaxError('Assertion failed: Typed Arrays are not supported in this environment'); + } + + var kind = whichTypedArray(exemplar); + if (!kind) { + throw new $TypeError('Assertion failed: exemplar must be a TypedArray'); // step 1 + } + if (!IsArray(argumentList)) { + throw new $TypeError('Assertion failed: `argumentList` must be a List'); // step 1 + } + + var defaultConstructor = getConstructor(kind); // step 2 + if (typeof defaultConstructor !== 'function') { + throw new $SyntaxError('Assertion failed: `constructor` of `exemplar` (' + kind + ') must exist. Please report this!'); + } + var constructor = SpeciesConstructor(exemplar, defaultConstructor); // step 3 + + return TypedArrayCreateFromConstructor(constructor, argumentList); // step 4 +}; diff --git a/node_modules/es-abstract/2025/UTF16EncodeCodePoint.js b/node_modules/es-abstract/2025/UTF16EncodeCodePoint.js new file mode 100644 index 0000000000000000000000000000000000000000..a35458039fc824e81d2832ac91d1fdb2e67bb621 --- /dev/null +++ b/node_modules/es-abstract/2025/UTF16EncodeCodePoint.js @@ -0,0 +1,25 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); + +var floor = require('./floor'); +var modulo = require('./modulo'); + +var isCodePoint = require('../helpers/isCodePoint'); + +// https://262.ecma-international.org/12.0/#sec-utf16encoding + +module.exports = function UTF16EncodeCodePoint(cp) { + if (!isCodePoint(cp)) { + throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); + } + if (cp <= 65535) { + return $fromCharCode(cp); + } + var cu1 = $fromCharCode(floor((cp - 65536) / 1024) + 0xD800); + var cu2 = $fromCharCode(modulo(cp - 65536, 1024) + 0xDC00); + return cu1 + cu2; +}; diff --git a/node_modules/es-abstract/2025/UTF16SurrogatePairToCodePoint.js b/node_modules/es-abstract/2025/UTF16SurrogatePairToCodePoint.js new file mode 100644 index 0000000000000000000000000000000000000000..d08f7be46a27b03ae34ddb71ef37571ea8f72531 --- /dev/null +++ b/node_modules/es-abstract/2025/UTF16SurrogatePairToCodePoint.js @@ -0,0 +1,19 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $TypeError = require('es-errors/type'); +var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); + +var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); +var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); + +// https://262.ecma-international.org/12.0/#sec-utf16decodesurrogatepair + +module.exports = function UTF16SurrogatePairToCodePoint(lead, trail) { + if (!isLeadingSurrogate(lead) || !isTrailingSurrogate(trail)) { + throw new $TypeError('Assertion failed: `lead` must be a leading surrogate char code, and `trail` must be a trailing surrogate char code'); + } + // var cp = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; + return $fromCharCode(lead) + $fromCharCode(trail); +}; diff --git a/node_modules/es-abstract/2025/UnicodeEscape.js b/node_modules/es-abstract/2025/UnicodeEscape.js new file mode 100644 index 0000000000000000000000000000000000000000..739602cc8352d251c3d89180f3042bb397dabb76 --- /dev/null +++ b/node_modules/es-abstract/2025/UnicodeEscape.js @@ -0,0 +1,25 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +var $charCodeAt = callBound('String.prototype.charCodeAt'); +var $numberToString = callBound('Number.prototype.toString'); +var $toLowerCase = callBound('String.prototype.toLowerCase'); + +var StringPad = require('./StringPad'); + +// https://262.ecma-international.org/11.0/#sec-unicodeescape + +module.exports = function UnicodeEscape(C) { + if (typeof C !== 'string' || C.length !== 1) { + throw new $TypeError('Assertion failed: `C` must be a single code unit'); + } + var n = $charCodeAt(C, 0); + if (n > 0xFFFF) { + throw new $TypeError('`Assertion failed: numeric value of `C` must be <= 0xFFFF'); + } + + return '\\u' + StringPad($toLowerCase($numberToString(n, 16)), 4, '0', 'start'); +}; diff --git a/node_modules/es-abstract/2025/UpdateModifiers.js b/node_modules/es-abstract/2025/UpdateModifiers.js new file mode 100644 index 0000000000000000000000000000000000000000..b97956c00ececc7d403f3c2b66e5e2ecce3974b6 --- /dev/null +++ b/node_modules/es-abstract/2025/UpdateModifiers.js @@ -0,0 +1,77 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var callBound = require('call-bound'); +var hasOwn = require('hasown'); + +var isRegExpRecord = require('../helpers/records/regexp-record'); + +var $charAt = callBound('String.prototype.charAt'); + +// https://262.ecma-international.org/16.0/#sec-updatemodifiers + +module.exports = function UpdateModifiers(rer, add, remove) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + if (typeof add !== 'string') { + throw new $TypeError('Assertion failed: `add` must be a string'); + } + if (typeof remove !== 'string') { + throw new $TypeError('Assertion failed: `remove` must be a string'); + } + + // 1. Assert: add and remove have no elements in common. + var adds = { __proto__: null }; + var removes = { __proto__: null }; + for (var i = 0; i < add.length; i++) { + var toAdd = $charAt(add, i); + adds[toAdd] = true; + } + for (var j = 0; j < remove.length; j++) { + var toRemove = $charAt(remove, j); + if (hasOwn(adds, toRemove)) { + throw new $TypeError('Assertion failed: `add` and `remove` have elements in common'); + } + removes[toRemove] = true; + } + + var ignoreCase = rer['[[IgnoreCase]]']; // step 2 + + var multiline = rer['[[Multiline]]']; // step 3 + + var dotAll = rer['[[DotAll]]']; // step 4 + + var unicode = rer['[[Unicode]]']; // step 5 + + var unicodeSets = rer['[[UnicodeSets]]']; // step 6 + + var capturingGroupsCount = rer['[[CapturingGroupsCount]]']; // step 7 + + if (hasOwn(removes, 'i')) { + ignoreCase = false; // step 8 + } else if (hasOwn(adds, 'i')) { + ignoreCase = true; // step 9 + } + + if (hasOwn(removes, 'm')) { + multiline = false; // step 10 + } else if (hasOwn(adds, 'm')) { + multiline = true; // step 11 + } + + if (hasOwn(removes, 's')) { + dotAll = false; // step 12 + } else if (hasOwn(adds, 's')) { + dotAll = true; // step 13 + } + + return { + '[[IgnoreCase]]': !!ignoreCase, + '[[Multiline]]': !!multiline, + '[[DotAll]]': !!dotAll, + '[[Unicode]]': !!unicode, + '[[UnicodeSets]]': !!unicodeSets, + '[[CapturingGroupsCount]]': capturingGroupsCount + }; // step 14 +}; diff --git a/node_modules/es-abstract/2025/ValidateAndApplyPropertyDescriptor.js b/node_modules/es-abstract/2025/ValidateAndApplyPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..6aed0594a2548a610be2a9a812760645bd13c4e2 --- /dev/null +++ b/node_modules/es-abstract/2025/ValidateAndApplyPropertyDescriptor.js @@ -0,0 +1,171 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var DefineOwnProperty = require('../helpers/DefineOwnProperty'); +var isFullyPopulatedPropertyDescriptor = require('../helpers/isFullyPopulatedPropertyDescriptor'); +var isPropertyDescriptor = require('../helpers/records/property-descriptor'); + +var FromPropertyDescriptor = require('./FromPropertyDescriptor'); +var IsAccessorDescriptor = require('./IsAccessorDescriptor'); +var IsDataDescriptor = require('./IsDataDescriptor'); +var IsGenericDescriptor = require('./IsGenericDescriptor'); +var isPropertyKey = require('../helpers/isPropertyKey'); +var SameValue = require('./SameValue'); + +// https://262.ecma-international.org/13.0/#sec-validateandapplypropertydescriptor + +// see https://github.com/tc39/ecma262/pull/2468 for ES2022 changes + +// eslint-disable-next-line max-lines-per-function, max-statements +module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { + if (typeof O !== 'undefined' && !isObject(O)) { + throw new $TypeError('Assertion failed: O must be undefined or an Object'); + } + if (!isPropertyKey(P)) { + throw new $TypeError('Assertion failed: P must be a Property Key'); + } + if (typeof extensible !== 'boolean') { + throw new $TypeError('Assertion failed: extensible must be a Boolean'); + } + if (!isPropertyDescriptor(Desc)) { + throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); + } + if (typeof current !== 'undefined' && !isPropertyDescriptor(current)) { + throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); + } + + if (typeof current === 'undefined') { // step 2 + if (!extensible) { + return false; // step 2.a + } + if (typeof O === 'undefined') { + return true; // step 2.b + } + if (IsAccessorDescriptor(Desc)) { // step 2.c + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + Desc + ); + } + // step 2.d + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + { + '[[Configurable]]': !!Desc['[[Configurable]]'], + '[[Enumerable]]': !!Desc['[[Enumerable]]'], + '[[Value]]': Desc['[[Value]]'], + '[[Writable]]': !!Desc['[[Writable]]'] + } + ); + } + + // 3. Assert: current is a fully populated Property Descriptor. + if ( + !isFullyPopulatedPropertyDescriptor( + { + IsAccessorDescriptor: IsAccessorDescriptor, + IsDataDescriptor: IsDataDescriptor + }, + current + ) + ) { + throw new $TypeError('`current`, when present, must be a fully populated and valid Property Descriptor'); + } + + // 4. If every field in Desc is absent, return true. + // this can't really match the assertion that it's a Property Descriptor in our JS implementation + + // 5. If current.[[Configurable]] is false, then + if (!current['[[Configurable]]']) { + if ('[[Configurable]]' in Desc && Desc['[[Configurable]]']) { + // step 5.a + return false; + } + if ('[[Enumerable]]' in Desc && !SameValue(Desc['[[Enumerable]]'], current['[[Enumerable]]'])) { + // step 5.b + return false; + } + if (!IsGenericDescriptor(Desc) && !SameValue(IsAccessorDescriptor(Desc), IsAccessorDescriptor(current))) { + // step 5.c + return false; + } + if (IsAccessorDescriptor(current)) { // step 5.d + if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { + return false; + } + if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { + return false; + } + } else if (!current['[[Writable]]']) { // step 5.e + if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { + return false; + } + if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { + return false; + } + } + } + + // 6. If O is not undefined, then + if (typeof O !== 'undefined') { + var configurable; + var enumerable; + if (IsDataDescriptor(current) && IsAccessorDescriptor(Desc)) { // step 6.a + configurable = ('[[Configurable]]' in Desc ? Desc : current)['[[Configurable]]']; + enumerable = ('[[Enumerable]]' in Desc ? Desc : current)['[[Enumerable]]']; + // Replace the property named P of object O with an accessor property having [[Configurable]] and [[Enumerable]] attributes as described by current and each other attribute set to its default value. + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + { + '[[Configurable]]': !!configurable, + '[[Enumerable]]': !!enumerable, + '[[Get]]': ('[[Get]]' in Desc ? Desc : current)['[[Get]]'], + '[[Set]]': ('[[Set]]' in Desc ? Desc : current)['[[Set]]'] + } + ); + } else if (IsAccessorDescriptor(current) && IsDataDescriptor(Desc)) { + configurable = ('[[Configurable]]' in Desc ? Desc : current)['[[Configurable]]']; + enumerable = ('[[Enumerable]]' in Desc ? Desc : current)['[[Enumerable]]']; + // i. Replace the property named P of object O with a data property having [[Configurable]] and [[Enumerable]] attributes as described by current and each other attribute set to its default value. + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + { + '[[Configurable]]': !!configurable, + '[[Enumerable]]': !!enumerable, + '[[Value]]': ('[[Value]]' in Desc ? Desc : current)['[[Value]]'], + '[[Writable]]': !!('[[Writable]]' in Desc ? Desc : current)['[[Writable]]'] + } + ); + } + + // For each field of Desc that is present, set the corresponding attribute of the property named P of object O to the value of the field. + return DefineOwnProperty( + IsDataDescriptor, + SameValue, + FromPropertyDescriptor, + O, + P, + Desc + ); + } + + return true; // step 7 +}; diff --git a/node_modules/es-abstract/2025/ValidateAtomicAccess.js b/node_modules/es-abstract/2025/ValidateAtomicAccess.js new file mode 100644 index 0000000000000000000000000000000000000000..b1457e2fa85069465d1b4a353ff5fda5942e3327 --- /dev/null +++ b/node_modules/es-abstract/2025/ValidateAtomicAccess.js @@ -0,0 +1,43 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); + +var ToIndex = require('./ToIndex'); +var TypedArrayElementSize = require('./TypedArrayElementSize'); +var TypedArrayLength = require('./TypedArrayLength'); + +var isTypedArrayWithBufferWitnessRecord = require('../helpers/records/typed-array-with-buffer-witness-record'); + +var typedArrayByteOffset = require('typed-array-byte-offset'); + +// https://262.ecma-international.org/15.0/#sec-validateatomicaccess + +module.exports = function ValidateAtomicAccess(taRecord, requestIndex) { + if (!isTypedArrayWithBufferWitnessRecord(taRecord)) { + throw new $TypeError('Assertion failed: `taRecord` must be a TypedArray With Buffer Witness Record'); + } + + var length = TypedArrayLength(taRecord); // step 1 + + var accessIndex = ToIndex(requestIndex); // step 2 + + /* + // this assertion can never be reached + if (!(accessIndex >= 0)) { + throw new $TypeError('Assertion failed: accessIndex >= 0'); // step 4 + } + */ + + if (accessIndex >= length) { + throw new $RangeError('index out of range'); // step 4 + } + + var typedArray = taRecord['[[Object]]']; // step 5 + + var elementSize = TypedArrayElementSize(typedArray); // step 6 + + var offset = typedArrayByteOffset(typedArray); // step 7 + + return (accessIndex * elementSize) + offset; // step 8 +}; diff --git a/node_modules/es-abstract/2025/ValidateAtomicAccessOnIntegerTypedArray.js b/node_modules/es-abstract/2025/ValidateAtomicAccessOnIntegerTypedArray.js new file mode 100644 index 0000000000000000000000000000000000000000..d17509caa5ec414a6f2332832e68735be8d4e1d5 --- /dev/null +++ b/node_modules/es-abstract/2025/ValidateAtomicAccessOnIntegerTypedArray.js @@ -0,0 +1,19 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var ValidateAtomicAccess = require('./ValidateAtomicAccess'); +var ValidateIntegerTypedArray = require('./ValidateIntegerTypedArray'); + +// https://262.ecma-international.org/15.0/#sec-availablenamedtimezoneidentifiers + +module.exports = function ValidateAtomicAccessOnIntegerTypedArray(typedArray, requestIndex) { + var waitable = arguments.length > 2 ? arguments[2] : false; // step 1 + + if (typeof waitable !== 'boolean') { + throw new $TypeError('waitable must be a boolean'); + } + + var taRecord = ValidateIntegerTypedArray(typedArray, waitable); // step 2 + return ValidateAtomicAccess(taRecord, requestIndex); // step 3 +}; diff --git a/node_modules/es-abstract/2025/ValidateIntegerTypedArray.js b/node_modules/es-abstract/2025/ValidateIntegerTypedArray.js new file mode 100644 index 0000000000000000000000000000000000000000..838db2ddcc5eb93838f3fd0c1cab365d191e0bed --- /dev/null +++ b/node_modules/es-abstract/2025/ValidateIntegerTypedArray.js @@ -0,0 +1,31 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsBigIntElementType = require('./IsBigIntElementType'); +var IsUnclampedIntegerElementType = require('./IsUnclampedIntegerElementType'); +var TypedArrayElementType = require('./TypedArrayElementType'); +var ValidateTypedArray = require('./ValidateTypedArray'); + +// https://262.ecma-international.org/15.0/#sec-validateintegertypedarray + +module.exports = function ValidateIntegerTypedArray(typedArray, waitable) { + if (typeof waitable !== 'boolean') { + throw new $TypeError('Assertion failed: `waitable` must be a Boolean'); + } + + var taRecord = ValidateTypedArray(typedArray, 'UNORDERED'); // step 1 + + // 2. NOTE: Bounds checking is not a synchronizing operation when typedArray's backing buffer is a growable SharedArrayBuffer. + + var type = TypedArrayElementType(typedArray); // step 4.a + if (waitable) { // step 3 + if (type !== 'INT32' && type !== 'BIGINT64') { + throw new $TypeError('Assertion failed: `typedArray` must be an Int32Array or BigInt64Array when `waitable` is true'); // step 5.a + } + } else if (!IsUnclampedIntegerElementType(type) && !IsBigIntElementType(type)) { // step 4 + throw new $TypeError('Assertion failed: `typedArray` must be an integer TypedArray'); // step 4.b + } + + return taRecord; // step 5 +}; diff --git a/node_modules/es-abstract/2025/ValidateTypedArray.js b/node_modules/es-abstract/2025/ValidateTypedArray.js new file mode 100644 index 0000000000000000000000000000000000000000..4c17e52e1e21637c603466829b6b35cfae7bd425 --- /dev/null +++ b/node_modules/es-abstract/2025/ValidateTypedArray.js @@ -0,0 +1,32 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var IsTypedArrayOutOfBounds = require('./IsTypedArrayOutOfBounds'); +var MakeTypedArrayWithBufferWitnessRecord = require('./MakeTypedArrayWithBufferWitnessRecord'); + +var isTypedArray = require('is-typed-array'); + +// https://262.ecma-international.org/15.0/#sec-validatetypedarray + +module.exports = function ValidateTypedArray(O, order) { + if (order !== 'SEQ-CST' && order !== 'UNORDERED') { + throw new $TypeError('Assertion failed: `order` must be ~SEQ-CST~ or ~UNORDERED~'); + } + + if (!isObject(O)) { + throw new $TypeError('Assertion failed: `O` must be an Object'); // step 1 + } + if (!isTypedArray(O)) { + throw new $TypeError('Assertion failed: `O` must be a Typed Array'); // steps 1 - 2 + } + + var taRecord = MakeTypedArrayWithBufferWitnessRecord(O, order); // step 3 + + if (IsTypedArrayOutOfBounds(taRecord)) { + throw new $TypeError('`O` must be in-bounds and backed by a non-detached buffer'); // step 4 + } + + return taRecord; // step 5 +}; diff --git a/node_modules/es-abstract/2025/WeakRefDeref.js b/node_modules/es-abstract/2025/WeakRefDeref.js new file mode 100644 index 0000000000000000000000000000000000000000..195b654b653be3eb14c01787a9c185e4cea2e5ac --- /dev/null +++ b/node_modules/es-abstract/2025/WeakRefDeref.js @@ -0,0 +1,23 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $TypeError = require('es-errors/type'); +var $deref = callBound('WeakRef.prototype.deref', true); + +var isWeakRef = require('is-weakref'); + +var AddToKeptObjects = require('./AddToKeptObjects'); + +// https://262.ecma-international.org/12.0/#sec-weakrefderef + +module.exports = function WeakRefDeref(weakRef) { + if (!isWeakRef(weakRef)) { + throw new $TypeError('Assertion failed: `weakRef` must be a WeakRef'); + } + var target = $deref(weakRef); + if (target) { + AddToKeptObjects(target); + } + return target; +}; diff --git a/node_modules/es-abstract/2025/WeekDay.js b/node_modules/es-abstract/2025/WeekDay.js new file mode 100644 index 0000000000000000000000000000000000000000..17cf94ca34ce0aae649c1e0236cd18f248d54e3d --- /dev/null +++ b/node_modules/es-abstract/2025/WeekDay.js @@ -0,0 +1,10 @@ +'use strict'; + +var Day = require('./Day'); +var modulo = require('./modulo'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.6 + +module.exports = function WeekDay(t) { + return modulo(Day(t) + 4, 7); +}; diff --git a/node_modules/es-abstract/2025/WordCharacters.js b/node_modules/es-abstract/2025/WordCharacters.js new file mode 100644 index 0000000000000000000000000000000000000000..488b213b05a139c789b1dd8e433da8c4e046c11f --- /dev/null +++ b/node_modules/es-abstract/2025/WordCharacters.js @@ -0,0 +1,47 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); +var $indexOf = callBound('String.prototype.indexOf'); + +var Canonicalize = require('./Canonicalize'); + +var caseFolding = require('../helpers/caseFolding.json'); +var forEach = require('../helpers/forEach'); +var isRegExpRecord = require('../helpers/records/regexp-record'); +var OwnPropertyKeys = require('own-keys'); + +var basicWordChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'; // step 1 + +// https://262.ecma-international.org/14.0/#sec-runtime-semantics-wordcharacters-abstract-operation + +module.exports = function WordCharacters(rer) { + if (!isRegExpRecord(rer)) { + throw new $TypeError('Assertion failed: `rer` must be a RegExp Record'); + } + + var extraWordChars = ''; + forEach(OwnPropertyKeys(caseFolding.C), function (c) { + if ( + $indexOf(basicWordChars, c) === -1 // c not in A + && $indexOf(basicWordChars, Canonicalize(rer, c)) > -1 // canonicalized c IS in A + ) { + extraWordChars += caseFolding.C[c]; // step 3 + } + }); + forEach(OwnPropertyKeys(caseFolding.S), function (c) { + if ( + $indexOf(basicWordChars, c) === -1 // c not in A + && $indexOf(basicWordChars, Canonicalize(rer, c)) > -1 // canonicalized c IS in A + ) { + extraWordChars += caseFolding.S[c]; // step 3 + } + }); + + if ((!rer['[[Unicode]]'] || !rer['[[IgnoreCase]]']) && extraWordChars.length > 0) { + throw new $TypeError('Assertion failed: `extraWordChars` must be empty when `rer.[[IgnoreCase]]` and `rer.[[Unicode]]` are not both true'); // step 3 + } + + return basicWordChars + extraWordChars; // step 4 +}; diff --git a/node_modules/es-abstract/2025/YearFromTime.js b/node_modules/es-abstract/2025/YearFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..18958182021b0ecc71645057fe8ed826ef786586 --- /dev/null +++ b/node_modules/es-abstract/2025/YearFromTime.js @@ -0,0 +1,16 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Date = GetIntrinsic('%Date%'); + +var callBound = require('call-bound'); + +var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.3 + +module.exports = function YearFromTime(t) { + // largest y such that this.TimeFromYear(y) <= t + return $getUTCFullYear(new $Date(t)); +}; diff --git a/node_modules/es-abstract/2025/abs.js b/node_modules/es-abstract/2025/abs.js new file mode 100644 index 0000000000000000000000000000000000000000..457f2a4a3d48f83c061c763cd26724fd8d4297f3 --- /dev/null +++ b/node_modules/es-abstract/2025/abs.js @@ -0,0 +1,9 @@ +'use strict'; + +var $abs = require('math-intrinsics/abs'); + +// https://262.ecma-international.org/11.0/#eqn-abs + +module.exports = function abs(x) { + return typeof x === 'bigint' ? BigInt($abs(Number(x))) : $abs(x); +}; diff --git a/node_modules/es-abstract/2025/clamp.js b/node_modules/es-abstract/2025/clamp.js new file mode 100644 index 0000000000000000000000000000000000000000..3fda648424302a451ffa63433b7f7933dcc6d13e --- /dev/null +++ b/node_modules/es-abstract/2025/clamp.js @@ -0,0 +1,14 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var max = require('math-intrinsics/max'); +var min = require('math-intrinsics/min'); + +// https://262.ecma-international.org/12.0/#clamping + +module.exports = function clamp(x, lower, upper) { + if (typeof x !== 'number' || typeof lower !== 'number' || typeof upper !== 'number' || !(lower <= upper)) { + throw new $TypeError('Assertion failed: all three arguments must be MVs, and `lower` must be `<= upper`'); + } + return min(max(lower, x), upper); +}; diff --git a/node_modules/es-abstract/2025/floor.js b/node_modules/es-abstract/2025/floor.js new file mode 100644 index 0000000000000000000000000000000000000000..eece19b5cbf2bd71a7655ea6d2f329cc8cd1a11d --- /dev/null +++ b/node_modules/es-abstract/2025/floor.js @@ -0,0 +1,14 @@ +'use strict'; + +// var modulo = require('./modulo'); +var $floor = require('math-intrinsics/floor'); + +// http://262.ecma-international.org/11.0/#eqn-floor + +module.exports = function floor(x) { + // return x - modulo(x, 1); + if (typeof x === 'bigint') { + return x; + } + return $floor(x); +}; diff --git a/node_modules/es-abstract/2025/max.js b/node_modules/es-abstract/2025/max.js new file mode 100644 index 0000000000000000000000000000000000000000..f83b038a221fed3a500c72b41f5fdc31e1100827 --- /dev/null +++ b/node_modules/es-abstract/2025/max.js @@ -0,0 +1,5 @@ +'use strict'; + +// https://262.ecma-international.org/6.0/#sec-algorithm-conventions + +module.exports = require('math-intrinsics/max'); diff --git a/node_modules/es-abstract/2025/min.js b/node_modules/es-abstract/2025/min.js new file mode 100644 index 0000000000000000000000000000000000000000..3a8f50539f0a6519251299edf4169f98a6db0bd9 --- /dev/null +++ b/node_modules/es-abstract/2025/min.js @@ -0,0 +1,5 @@ +'use strict'; + +// https://262.ecma-international.org/6.0/#sec-algorithm-conventions + +module.exports = require('math-intrinsics/min'); diff --git a/node_modules/es-abstract/2025/modulo.js b/node_modules/es-abstract/2025/modulo.js new file mode 100644 index 0000000000000000000000000000000000000000..b94bb52bb3c62e45629a4b1e8f0ebba219d5e41e --- /dev/null +++ b/node_modules/es-abstract/2025/modulo.js @@ -0,0 +1,9 @@ +'use strict'; + +var mod = require('../helpers/mod'); + +// https://262.ecma-international.org/5.1/#sec-5.2 + +module.exports = function modulo(x, y) { + return mod(x, y); +}; diff --git a/node_modules/es-abstract/2025/msFromTime.js b/node_modules/es-abstract/2025/msFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..a6bae767aed31c8a467b8ea1fb2128e64860a972 --- /dev/null +++ b/node_modules/es-abstract/2025/msFromTime.js @@ -0,0 +1,11 @@ +'use strict'; + +var modulo = require('./modulo'); + +var msPerSecond = require('../helpers/timeConstants').msPerSecond; + +// https://262.ecma-international.org/5.1/#sec-15.9.1.10 + +module.exports = function msFromTime(t) { + return modulo(t, msPerSecond); +}; diff --git a/node_modules/es-abstract/2025/substring.js b/node_modules/es-abstract/2025/substring.js new file mode 100644 index 0000000000000000000000000000000000000000..75fbf10e9c5e754041b8b0b509cc61f56b289fe3 --- /dev/null +++ b/node_modules/es-abstract/2025/substring.js @@ -0,0 +1,15 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var isInteger = require('math-intrinsics/isInteger'); +var callBound = require('call-bound'); + +var $slice = callBound('String.prototype.slice'); + +// https://262.ecma-international.org/12.0/#substring +module.exports = function substring(S, inclusiveStart, exclusiveEnd) { + if (typeof S !== 'string' || !isInteger(inclusiveStart) || (arguments.length > 2 && !isInteger(exclusiveEnd))) { + throw new $TypeError('`S` must be a String, and `inclusiveStart` and `exclusiveEnd` must be integers'); + } + return $slice(S, inclusiveStart, arguments.length > 2 ? exclusiveEnd : S.length); +}; diff --git a/node_modules/es-abstract/2025/tables/typed-array-objects.js b/node_modules/es-abstract/2025/tables/typed-array-objects.js new file mode 100644 index 0000000000000000000000000000000000000000..ae91d62be920163362497fa90338b4359f27a604 --- /dev/null +++ b/node_modules/es-abstract/2025/tables/typed-array-objects.js @@ -0,0 +1,38 @@ +'use strict'; + +// https://262.ecma-international.org/16.0/#table-the-typedarray-constructors + +module.exports = { + __proto__: null, + name: { + __proto__: null, + $Int8Array: 'INT8', + $Uint8Array: 'UINT8', + $Uint8ClampedArray: 'UINT8C', + $Int16Array: 'INT16', + $Uint16Array: 'UINT16', + $Int32Array: 'INT32', + $Uint32Array: 'UINT32', + $BigInt64Array: 'BIGINT64', + $BigUint64Array: 'BIGUINT64', + $Float16Array: 'FLOAT16', + $Float32Array: 'FLOAT32', + $Float64Array: 'FLOAT64' + }, + size: { + __proto__: null, + $INT8: 1, + $UINT8: 1, + $UINT8C: 1, + $INT16: 2, + $UINT16: 2, + $INT32: 4, + $UINT32: 4, + $BIGINT64: 8, + $BIGUINT64: 8, + $FLOAT16: 2, + $FLOAT32: 4, + $FLOAT64: 8 + }, + choices: '"INT8", "UINT8", "UINT8C", "INT16", "UINT16", "INT32", "UINT32", "BIGINT64", "BIGUINT64", "FLOAT16", "FLOAT32", or "FLOAT64"' +}; diff --git a/node_modules/es-abstract/2025/truncate.js b/node_modules/es-abstract/2025/truncate.js new file mode 100644 index 0000000000000000000000000000000000000000..aca9303095cc72650baca6857793ecd3c5265869 --- /dev/null +++ b/node_modules/es-abstract/2025/truncate.js @@ -0,0 +1,15 @@ +'use strict'; + +var floor = require('./floor'); + +var $TypeError = require('es-errors/type'); + +// https://262.ecma-international.org/14.0/#eqn-truncate + +module.exports = function truncate(x) { + if (typeof x !== 'number' && typeof x !== 'bigint') { + throw new $TypeError('argument must be a Number or a BigInt'); + } + var result = x < 0 ? -floor(-x) : floor(x); + return result === 0 ? 0 : result; // in the spec, these are math values, so we filter out -0 here +}; diff --git a/node_modules/es-abstract/5/AbstractEqualityComparison.js b/node_modules/es-abstract/5/AbstractEqualityComparison.js new file mode 100644 index 0000000000000000000000000000000000000000..8280e7cbeac28a648ac5208bb8449be3a0431a56 --- /dev/null +++ b/node_modules/es-abstract/5/AbstractEqualityComparison.js @@ -0,0 +1,38 @@ +'use strict'; + +var isObject = require('es-object-atoms/isObject'); + +var ToNumber = require('./ToNumber'); +var ToPrimitive = require('./ToPrimitive'); + +var isSameType = require('../helpers/isSameType'); + +// https://262.ecma-international.org/5.1/#sec-11.9.3 + +module.exports = function AbstractEqualityComparison(x, y) { + if (isSameType(x, y)) { + return x === y; // ES6+ specified this shortcut anyways. + } + if (x == null && y == null) { + return true; + } + if (typeof x === 'number' && typeof y === 'string') { + return AbstractEqualityComparison(x, ToNumber(y)); + } + if (typeof x === 'string' && typeof y === 'number') { + return AbstractEqualityComparison(ToNumber(x), y); + } + if (typeof x === 'boolean') { + return AbstractEqualityComparison(ToNumber(x), y); + } + if (typeof y === 'boolean') { + return AbstractEqualityComparison(x, ToNumber(y)); + } + if ((typeof x === 'string' || typeof x === 'number') && isObject(y)) { + return AbstractEqualityComparison(x, ToPrimitive(y)); + } + if (isObject(x) && (typeof y === 'string' || typeof y === 'number')) { + return AbstractEqualityComparison(ToPrimitive(x), y); + } + return false; +}; diff --git a/node_modules/es-abstract/5/AbstractRelationalComparison.js b/node_modules/es-abstract/5/AbstractRelationalComparison.js new file mode 100644 index 0000000000000000000000000000000000000000..443cfe0c767c876171b94fd060556bd037666807 --- /dev/null +++ b/node_modules/es-abstract/5/AbstractRelationalComparison.js @@ -0,0 +1,62 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Number = GetIntrinsic('%Number%'); +var $TypeError = require('es-errors/type'); +var $isNaN = require('math-intrinsics/isNaN'); +var $isFinite = require('math-intrinsics/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 +}; diff --git a/node_modules/es-abstract/5/Canonicalize.js b/node_modules/es-abstract/5/Canonicalize.js new file mode 100644 index 0000000000000000000000000000000000000000..78257a313c5f2a4cee8b6ff97d346f6f31add3eb --- /dev/null +++ b/node_modules/es-abstract/5/Canonicalize.js @@ -0,0 +1,38 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var callBound = require('call-bound'); + +var $charCodeAt = callBound('String.prototype.charCodeAt'); +var $toUpperCase = callBound('String.prototype.toUpperCase'); + +// https://262.ecma-international.org/5.1/#sec-15.10.2.8 + +module.exports = function Canonicalize(ch, IgnoreCase) { + if (typeof ch !== 'string' || ch.length !== 1) { + throw new $TypeError('Assertion failed: `ch` must be a character'); + } + + if (typeof IgnoreCase !== 'boolean') { + throw new $TypeError('Assertion failed: `IgnoreCase` must be a Boolean'); + } + + if (!IgnoreCase) { + return ch; // step 1 + } + + 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; +}; diff --git a/node_modules/es-abstract/5/CheckObjectCoercible.js b/node_modules/es-abstract/5/CheckObjectCoercible.js new file mode 100644 index 0000000000000000000000000000000000000000..78153d1e55a5d3063885aaf51a5c0976135a9fea --- /dev/null +++ b/node_modules/es-abstract/5/CheckObjectCoercible.js @@ -0,0 +1,9 @@ +'use strict'; + +var RequireObjectCoercible = require('es-object-atoms/RequireObjectCoercible'); + +// http://262.ecma-international.org/5.1/#sec-9.10 + +module.exports = function CheckObjectCoercible(value) { + return RequireObjectCoercible(value, arguments.length > 1 ? arguments[1] : void undefined); +}; diff --git a/node_modules/es-abstract/5/DateFromTime.js b/node_modules/es-abstract/5/DateFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..ec7edcd295f8bdd79eb60e44d8a17bb0b90fd80d --- /dev/null +++ b/node_modules/es-abstract/5/DateFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/5/Day.js b/node_modules/es-abstract/5/Day.js new file mode 100644 index 0000000000000000000000000000000000000000..51d01033c81cbd356ff4da8010c166137364237d --- /dev/null +++ b/node_modules/es-abstract/5/Day.js @@ -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); +}; diff --git a/node_modules/es-abstract/5/DayFromYear.js b/node_modules/es-abstract/5/DayFromYear.js new file mode 100644 index 0000000000000000000000000000000000000000..341bf22a6c19352ec6225944fb49adeed22983e8 --- /dev/null +++ b/node_modules/es-abstract/5/DayFromYear.js @@ -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); +}; + diff --git a/node_modules/es-abstract/5/DayWithinYear.js b/node_modules/es-abstract/5/DayWithinYear.js new file mode 100644 index 0000000000000000000000000000000000000000..4c580940a58c58dcc3f7c2f96c5bca8e8237ebfc --- /dev/null +++ b/node_modules/es-abstract/5/DayWithinYear.js @@ -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)); +}; diff --git a/node_modules/es-abstract/5/DaysInYear.js b/node_modules/es-abstract/5/DaysInYear.js new file mode 100644 index 0000000000000000000000000000000000000000..7116c69027022323e41130f384db7cc3d35709f9 --- /dev/null +++ b/node_modules/es-abstract/5/DaysInYear.js @@ -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; +}; diff --git a/node_modules/es-abstract/5/FromPropertyDescriptor.js b/node_modules/es-abstract/5/FromPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..309ac1905f17f4822b481d430edfdd08bc11f678 --- /dev/null +++ b/node_modules/es-abstract/5/FromPropertyDescriptor.js @@ -0,0 +1,38 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsDataDescriptor = require('./IsDataDescriptor'); +var IsAccessorDescriptor = require('./IsAccessorDescriptor'); + +var isPropertyDescriptor = require('../helpers/records/property-descriptor'); + +// https://262.ecma-international.org/5.1/#sec-8.10.4 + +module.exports = function FromPropertyDescriptor(Desc) { + if (typeof Desc === 'undefined') { + return Desc; + } + + if (!isPropertyDescriptor(Desc)) { + throw new $TypeError('Assertion failed: `Desc` must be a Property Descriptor'); + } + + if (IsDataDescriptor(Desc)) { + return { + value: Desc['[[Value]]'], + writable: !!Desc['[[Writable]]'], + enumerable: !!Desc['[[Enumerable]]'], + configurable: !!Desc['[[Configurable]]'] + }; + } else if (IsAccessorDescriptor(Desc)) { + return { + get: Desc['[[Get]]'], + set: Desc['[[Set]]'], + enumerable: !!Desc['[[Enumerable]]'], + configurable: !!Desc['[[Configurable]]'] + }; + } + throw new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor'); + +}; diff --git a/node_modules/es-abstract/5/HourFromTime.js b/node_modules/es-abstract/5/HourFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..f963bfb68540ba21f46be00b623cb89db98d63f5 --- /dev/null +++ b/node_modules/es-abstract/5/HourFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/5/InLeapYear.js b/node_modules/es-abstract/5/InLeapYear.js new file mode 100644 index 0000000000000000000000000000000000000000..4a283a4b6097f4b2c4e872b0cc775024ff517b77 --- /dev/null +++ b/node_modules/es-abstract/5/InLeapYear.js @@ -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); +}; diff --git a/node_modules/es-abstract/5/IsAccessorDescriptor.js b/node_modules/es-abstract/5/IsAccessorDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..f7bf73afb1c1617b04596a6e2af6d1617857bf1e --- /dev/null +++ b/node_modules/es-abstract/5/IsAccessorDescriptor.js @@ -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; +}; diff --git a/node_modules/es-abstract/5/IsCallable.js b/node_modules/es-abstract/5/IsCallable.js new file mode 100644 index 0000000000000000000000000000000000000000..3a69b19267dff33491a84421b667a0d82cba21f9 --- /dev/null +++ b/node_modules/es-abstract/5/IsCallable.js @@ -0,0 +1,5 @@ +'use strict'; + +// http://262.ecma-international.org/5.1/#sec-9.11 + +module.exports = require('is-callable'); diff --git a/node_modules/es-abstract/5/IsDataDescriptor.js b/node_modules/es-abstract/5/IsDataDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..d56bd36d4294369f6486f6dfc5d60dada2cc410a --- /dev/null +++ b/node_modules/es-abstract/5/IsDataDescriptor.js @@ -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; +}; diff --git a/node_modules/es-abstract/5/IsGenericDescriptor.js b/node_modules/es-abstract/5/IsGenericDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..de05b37f4044da87ac3c8539d95d079c8eca25b4 --- /dev/null +++ b/node_modules/es-abstract/5/IsGenericDescriptor.js @@ -0,0 +1,26 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var IsAccessorDescriptor = require('./IsAccessorDescriptor'); +var IsDataDescriptor = require('./IsDataDescriptor'); + +var isPropertyDescriptor = require('./IsPropertyDescriptor'); + +// https://262.ecma-international.org/5.1/#sec-8.10.3 + +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; +}; diff --git a/node_modules/es-abstract/5/IsPropertyDescriptor.js b/node_modules/es-abstract/5/IsPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..d1e21ac0ec943ac40b6eaf9090b079de98feb712 --- /dev/null +++ b/node_modules/es-abstract/5/IsPropertyDescriptor.js @@ -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); +}; diff --git a/node_modules/es-abstract/5/MakeDate.js b/node_modules/es-abstract/5/MakeDate.js new file mode 100644 index 0000000000000000000000000000000000000000..3256ae1092afd21a469f4ca086dc028a73ecaa52 --- /dev/null +++ b/node_modules/es-abstract/5/MakeDate.js @@ -0,0 +1,14 @@ +'use strict'; + +var $isFinite = require('math-intrinsics/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; +}; diff --git a/node_modules/es-abstract/5/MakeDay.js b/node_modules/es-abstract/5/MakeDay.js new file mode 100644 index 0000000000000000000000000000000000000000..d03d683855826fe3e3889b737b06a08c34ff4442 --- /dev/null +++ b/node_modules/es-abstract/5/MakeDay.js @@ -0,0 +1,33 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $DateUTC = GetIntrinsic('%Date.UTC%'); + +var $isFinite = require('math-intrinsics/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; +}; diff --git a/node_modules/es-abstract/5/MakeTime.js b/node_modules/es-abstract/5/MakeTime.js new file mode 100644 index 0000000000000000000000000000000000000000..94096d6d4ec8833fa6df121cdef28a8da19c150a --- /dev/null +++ b/node_modules/es-abstract/5/MakeTime.js @@ -0,0 +1,24 @@ +'use strict'; + +var $isFinite = require('math-intrinsics/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; +}; diff --git a/node_modules/es-abstract/5/MinFromTime.js b/node_modules/es-abstract/5/MinFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..a0c631d4cc56cb21e15712def6008d5623edd0f9 --- /dev/null +++ b/node_modules/es-abstract/5/MinFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/5/MonthFromTime.js b/node_modules/es-abstract/5/MonthFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..e551ee2be6da5cc49c7da94be78095c0803c53d9 --- /dev/null +++ b/node_modules/es-abstract/5/MonthFromTime.js @@ -0,0 +1,51 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); + +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; + } + + throw new $RangeError('Assertion failed: `day` is out of range'); +}; diff --git a/node_modules/es-abstract/5/SameValue.js b/node_modules/es-abstract/5/SameValue.js new file mode 100644 index 0000000000000000000000000000000000000000..d07bbb8a8f3fec5ad22ffdfb617245331fcff412 --- /dev/null +++ b/node_modules/es-abstract/5/SameValue.js @@ -0,0 +1,13 @@ +'use strict'; + +var $isNaN = require('math-intrinsics/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); +}; diff --git a/node_modules/es-abstract/5/SecFromTime.js b/node_modules/es-abstract/5/SecFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..fc2e44560240f134cf345e63ab69d5f8a2d8cec1 --- /dev/null +++ b/node_modules/es-abstract/5/SecFromTime.js @@ -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); +}; diff --git a/node_modules/es-abstract/5/StrictEqualityComparison.js b/node_modules/es-abstract/5/StrictEqualityComparison.js new file mode 100644 index 0000000000000000000000000000000000000000..d056c44e79a546022718908720ab19cd27e7415e --- /dev/null +++ b/node_modules/es-abstract/5/StrictEqualityComparison.js @@ -0,0 +1,15 @@ +'use strict'; + +var Type = require('./Type'); + +// https://262.ecma-international.org/5.1/#sec-11.9.6 + +module.exports = function StrictEqualityComparison(x, y) { + if (Type(x) !== Type(y)) { + return false; + } + if (typeof x === 'undefined' || x === null) { + return true; + } + return x === y; // shortcut for steps 4-7 +}; diff --git a/node_modules/es-abstract/5/TimeClip.js b/node_modules/es-abstract/5/TimeClip.js new file mode 100644 index 0000000000000000000000000000000000000000..77c8dd4226c4765855024b1784b842f869fa5bfe --- /dev/null +++ b/node_modules/es-abstract/5/TimeClip.js @@ -0,0 +1,20 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Date = GetIntrinsic('%Date%'); + +var $isFinite = require('math-intrinsics/isFinite'); +var abs = require('math-intrinsics/abs'); + +var ToNumber = require('./ToNumber'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.14 + +module.exports = function TimeClip(time) { + if (!$isFinite(time) || abs(time) > 8.64e15) { + return NaN; + } + return +new $Date(ToNumber(time)); +}; + diff --git a/node_modules/es-abstract/5/TimeFromYear.js b/node_modules/es-abstract/5/TimeFromYear.js new file mode 100644 index 0000000000000000000000000000000000000000..f3518a41a19146c9ba59e1362c3fb33f800daaa1 --- /dev/null +++ b/node_modules/es-abstract/5/TimeFromYear.js @@ -0,0 +1,11 @@ +'use strict'; + +var msPerDay = require('../helpers/timeConstants').msPerDay; + +var DayFromYear = require('./DayFromYear'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.3 + +module.exports = function TimeFromYear(y) { + return msPerDay * DayFromYear(y); +}; diff --git a/node_modules/es-abstract/5/TimeWithinDay.js b/node_modules/es-abstract/5/TimeWithinDay.js new file mode 100644 index 0000000000000000000000000000000000000000..2bba83386c141873d3b603ed19d0f37069d1016a --- /dev/null +++ b/node_modules/es-abstract/5/TimeWithinDay.js @@ -0,0 +1,12 @@ +'use strict'; + +var modulo = require('./modulo'); + +var msPerDay = require('../helpers/timeConstants').msPerDay; + +// https://262.ecma-international.org/5.1/#sec-15.9.1.2 + +module.exports = function TimeWithinDay(t) { + return modulo(t, msPerDay); +}; + diff --git a/node_modules/es-abstract/5/ToBoolean.js b/node_modules/es-abstract/5/ToBoolean.js new file mode 100644 index 0000000000000000000000000000000000000000..466404bf9992f0ba636249264c620d6c56215d6a --- /dev/null +++ b/node_modules/es-abstract/5/ToBoolean.js @@ -0,0 +1,5 @@ +'use strict'; + +// http://262.ecma-international.org/5.1/#sec-9.2 + +module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/es-abstract/5/ToInt32.js b/node_modules/es-abstract/5/ToInt32.js new file mode 100644 index 0000000000000000000000000000000000000000..b879ccc479e039097fa2d1017299579a2d8a8162 --- /dev/null +++ b/node_modules/es-abstract/5/ToInt32.js @@ -0,0 +1,9 @@ +'use strict'; + +var ToNumber = require('./ToNumber'); + +// http://262.ecma-international.org/5.1/#sec-9.5 + +module.exports = function ToInt32(x) { + return ToNumber(x) >> 0; +}; diff --git a/node_modules/es-abstract/5/ToInteger.js b/node_modules/es-abstract/5/ToInteger.js new file mode 100644 index 0000000000000000000000000000000000000000..d5bd3342ea8cb6671895dfc62ed62a4415ed1540 --- /dev/null +++ b/node_modules/es-abstract/5/ToInteger.js @@ -0,0 +1,18 @@ +'use strict'; + +var ToNumber = require('./ToNumber'); + +var abs = require('math-intrinsics/abs'); +var floor = require('math-intrinsics/floor'); +var $isNaN = require('math-intrinsics/isNaN'); +var $isFinite = require('math-intrinsics/isFinite'); +var $sign = require('math-intrinsics/sign'); + +// http://262.ecma-international.org/5.1/#sec-9.4 + +module.exports = function ToInteger(value) { + var number = ToNumber(value); + if ($isNaN(number)) { return 0; } + if (number === 0 || !$isFinite(number)) { return number; } + return $sign(number) * floor(abs(number)); +}; diff --git a/node_modules/es-abstract/5/ToNumber.js b/node_modules/es-abstract/5/ToNumber.js new file mode 100644 index 0000000000000000000000000000000000000000..3788bb73238bc7ed3483dbbecfae26e673b8544c --- /dev/null +++ b/node_modules/es-abstract/5/ToNumber.js @@ -0,0 +1,34 @@ +'use strict'; + +var ToPrimitive = require('./ToPrimitive'); + +var callBound = require('call-bound'); + +var $replace = callBound('String.prototype.replace'); + +var safeRegexTester = require('safe-regex-test'); + +var isNonDecimal = safeRegexTester(/^0[ob]|^[+-]0x/); + +var $Number = Number; + +// http://262.ecma-international.org/5.1/#sec-9.3 + +module.exports = function ToNumber(value) { + var prim = ToPrimitive(value, $Number); + if (typeof prim !== 'string') { + return $Number(prim); + } + + var trimmed = $replace( + prim, + // eslint-disable-next-line no-control-regex + /^[ \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u0085]+|[ \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u0085]+$/g, + '' + ); + if (isNonDecimal(trimmed)) { + return NaN; + } + + return +trimmed; +}; diff --git a/node_modules/es-abstract/5/ToObject.js b/node_modules/es-abstract/5/ToObject.js new file mode 100644 index 0000000000000000000000000000000000000000..cd257240e48ad56bc86f453f7b8d01816a96934f --- /dev/null +++ b/node_modules/es-abstract/5/ToObject.js @@ -0,0 +1,5 @@ +'use strict'; + +// http://262.ecma-international.org/5.1/#sec-9.9 + +module.exports = require('es-object-atoms/ToObject'); diff --git a/node_modules/es-abstract/5/ToPrimitive.js b/node_modules/es-abstract/5/ToPrimitive.js new file mode 100644 index 0000000000000000000000000000000000000000..56dfdb0cbfabdd4d38f111f9234ac01046ad4f89 --- /dev/null +++ b/node_modules/es-abstract/5/ToPrimitive.js @@ -0,0 +1,5 @@ +'use strict'; + +// http://262.ecma-international.org/5.1/#sec-9.1 + +module.exports = require('es-to-primitive/es5'); diff --git a/node_modules/es-abstract/5/ToPropertyDescriptor.js b/node_modules/es-abstract/5/ToPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..017350d593b202573a928ccefeacc7472c803a5e --- /dev/null +++ b/node_modules/es-abstract/5/ToPropertyDescriptor.js @@ -0,0 +1,50 @@ +'use strict'; + +var hasOwn = require('hasown'); + +var $TypeError = require('es-errors/type'); +var isObject = require('es-object-atoms/isObject'); + +var IsCallable = require('./IsCallable'); +var ToBoolean = require('./ToBoolean'); + +// https://262.ecma-international.org/5.1/#sec-8.10.5 + +module.exports = function ToPropertyDescriptor(Obj) { + if (!isObject(Obj)) { + throw new $TypeError('ToPropertyDescriptor requires an object'); + } + + var desc = {}; + if (hasOwn(Obj, 'enumerable')) { + desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); + } + if (hasOwn(Obj, 'configurable')) { + desc['[[Configurable]]'] = ToBoolean(Obj.configurable); + } + if (hasOwn(Obj, 'value')) { + desc['[[Value]]'] = Obj.value; + } + if (hasOwn(Obj, 'writable')) { + desc['[[Writable]]'] = ToBoolean(Obj.writable); + } + if (hasOwn(Obj, 'get')) { + var getter = Obj.get; + if (typeof getter !== 'undefined' && !IsCallable(getter)) { + throw new $TypeError('getter must be a function'); + } + desc['[[Get]]'] = getter; + } + if (hasOwn(Obj, 'set')) { + var setter = Obj.set; + if (typeof setter !== 'undefined' && !IsCallable(setter)) { + throw new $TypeError('setter must be a function'); + } + desc['[[Set]]'] = setter; + } + + if ((hasOwn(desc, '[[Get]]') || hasOwn(desc, '[[Set]]')) && (hasOwn(desc, '[[Value]]') || hasOwn(desc, '[[Writable]]'))) { + throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); + } + return desc; +}; diff --git a/node_modules/es-abstract/5/ToString.js b/node_modules/es-abstract/5/ToString.js new file mode 100644 index 0000000000000000000000000000000000000000..c39faeb0dbe3662c0ab48aec5cb9cfcb2f8112c9 --- /dev/null +++ b/node_modules/es-abstract/5/ToString.js @@ -0,0 +1,12 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $String = GetIntrinsic('%String%'); + +// http://262.ecma-international.org/5.1/#sec-9.8 + +module.exports = function ToString(value) { + return $String(value); +}; + diff --git a/node_modules/es-abstract/5/ToUint16.js b/node_modules/es-abstract/5/ToUint16.js new file mode 100644 index 0000000000000000000000000000000000000000..117485e616437b348b9b74dddc3fc5e7af9f9ed0 --- /dev/null +++ b/node_modules/es-abstract/5/ToUint16.js @@ -0,0 +1,19 @@ +'use strict'; + +var modulo = require('./modulo'); +var ToNumber = require('./ToNumber'); + +var abs = require('math-intrinsics/abs'); +var floor = require('math-intrinsics/floor'); +var $isNaN = require('math-intrinsics/isNaN'); +var $isFinite = require('math-intrinsics/isFinite'); +var $sign = require('math-intrinsics/sign'); + +// http://262.ecma-international.org/5.1/#sec-9.7 + +module.exports = function ToUint16(value) { + var number = ToNumber(value); + if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } + var posInt = $sign(number) * floor(abs(number)); + return modulo(posInt, 0x10000); +}; diff --git a/node_modules/es-abstract/5/ToUint32.js b/node_modules/es-abstract/5/ToUint32.js new file mode 100644 index 0000000000000000000000000000000000000000..2a8e9dd6a3794a0940b6bae175a99f00c0e2d25d --- /dev/null +++ b/node_modules/es-abstract/5/ToUint32.js @@ -0,0 +1,9 @@ +'use strict'; + +var ToNumber = require('./ToNumber'); + +// http://262.ecma-international.org/5.1/#sec-9.6 + +module.exports = function ToUint32(x) { + return ToNumber(x) >>> 0; +}; diff --git a/node_modules/es-abstract/5/Type.js b/node_modules/es-abstract/5/Type.js new file mode 100644 index 0000000000000000000000000000000000000000..c893a5ade71c61f3492a3ad7dc646336910de190 --- /dev/null +++ b/node_modules/es-abstract/5/Type.js @@ -0,0 +1,26 @@ +'use strict'; + +var isObject = require('es-object-atoms/isObject'); + +// https://262.ecma-international.org/5.1/#sec-8 + +module.exports = function Type(x) { + if (x === null) { + return 'Null'; + } + if (typeof x === 'undefined') { + return 'Undefined'; + } + if (isObject(x)) { + return 'Object'; + } + if (typeof x === 'number') { + return 'Number'; + } + if (typeof x === 'boolean') { + return 'Boolean'; + } + if (typeof x === 'string') { + return 'String'; + } +}; diff --git a/node_modules/es-abstract/5/WeekDay.js b/node_modules/es-abstract/5/WeekDay.js new file mode 100644 index 0000000000000000000000000000000000000000..17cf94ca34ce0aae649c1e0236cd18f248d54e3d --- /dev/null +++ b/node_modules/es-abstract/5/WeekDay.js @@ -0,0 +1,10 @@ +'use strict'; + +var Day = require('./Day'); +var modulo = require('./modulo'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.6 + +module.exports = function WeekDay(t) { + return modulo(Day(t) + 4, 7); +}; diff --git a/node_modules/es-abstract/5/YearFromTime.js b/node_modules/es-abstract/5/YearFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..18958182021b0ecc71645057fe8ed826ef786586 --- /dev/null +++ b/node_modules/es-abstract/5/YearFromTime.js @@ -0,0 +1,16 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Date = GetIntrinsic('%Date%'); + +var callBound = require('call-bound'); + +var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); + +// https://262.ecma-international.org/5.1/#sec-15.9.1.3 + +module.exports = function YearFromTime(t) { + // largest y such that this.TimeFromYear(y) <= t + return $getUTCFullYear(new $Date(t)); +}; diff --git a/node_modules/es-abstract/5/abs.js b/node_modules/es-abstract/5/abs.js new file mode 100644 index 0000000000000000000000000000000000000000..342aa85c66060f7b1cf3a8773cea18b487f3f0a4 --- /dev/null +++ b/node_modules/es-abstract/5/abs.js @@ -0,0 +1,9 @@ +'use strict'; + +var $abs = require('math-intrinsics/abs'); + +// https://262.ecma-international.org/5.1/#sec-5.2 + +module.exports = function abs(x) { + return $abs(x); +}; diff --git a/node_modules/es-abstract/5/floor.js b/node_modules/es-abstract/5/floor.js new file mode 100644 index 0000000000000000000000000000000000000000..cc53b951167e8f73498de0a1f0e970c52c598f80 --- /dev/null +++ b/node_modules/es-abstract/5/floor.js @@ -0,0 +1,11 @@ +'use strict'; + +// var modulo = require('./modulo'); +var $floor = require('math-intrinsics/floor'); + +// http://262.ecma-international.org/5.1/#sec-5.2 + +module.exports = function floor(x) { + // return x - modulo(x, 1); + return $floor(x); +}; diff --git a/node_modules/es-abstract/5/modulo.js b/node_modules/es-abstract/5/modulo.js new file mode 100644 index 0000000000000000000000000000000000000000..b94bb52bb3c62e45629a4b1e8f0ebba219d5e41e --- /dev/null +++ b/node_modules/es-abstract/5/modulo.js @@ -0,0 +1,9 @@ +'use strict'; + +var mod = require('../helpers/mod'); + +// https://262.ecma-international.org/5.1/#sec-5.2 + +module.exports = function modulo(x, y) { + return mod(x, y); +}; diff --git a/node_modules/es-abstract/5/msFromTime.js b/node_modules/es-abstract/5/msFromTime.js new file mode 100644 index 0000000000000000000000000000000000000000..a6bae767aed31c8a467b8ea1fb2128e64860a972 --- /dev/null +++ b/node_modules/es-abstract/5/msFromTime.js @@ -0,0 +1,11 @@ +'use strict'; + +var modulo = require('./modulo'); + +var msPerSecond = require('../helpers/timeConstants').msPerSecond; + +// https://262.ecma-international.org/5.1/#sec-15.9.1.10 + +module.exports = function msFromTime(t) { + return modulo(t, msPerSecond); +}; diff --git a/node_modules/es-abstract/CHANGELOG.md b/node_modules/es-abstract/CHANGELOG.md new file mode 100644 index 0000000000000000000000000000000000000000..a4c7a5ce75d022bb93d6752f00bc3e89c98083d8 --- /dev/null +++ b/node_modules/es-abstract/CHANGELOG.md @@ -0,0 +1,962 @@ +1.24.1 / 2025-12-12 +================= + - [Fix] `ES2025`+: `GeneratorResumeAbrupt`: properly handle return completions + - [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@unicode/unicode-15.0.0`, `make-generator-function`, `npmignore`, `ses` + +1.24.0 / 2025-05-28 +================= + - [New] add `ES2025` (#159) + - [New] `ES2023`+: add `GetNamedTimeZoneEpochNanoseconds`, `GetUTCEpochNanoseconds`, `IsTimeZoneOffsetString` + - [New] `ES2015`+: `CharacterRange`: also accept CharSets + - [New] `ES2024`+: add `AllCharacters`, `CharacterComplement` + - [Refactor] StringIndexOf: anticipate ES2025 not found sentinel change + - [Deps] update `stop-iteration-iterator` + - [Tests] increase coverage + +1.23.10 / 2025-05-21 +================= + - [Fix] properly handle Float16Array + - [Fix] `ES2024`+: `IsViewOutOfBounds`: properly handle resizable array buffers + - [Fix] `ES2024`+: `IsTypedArrayOutOfBounds`: properly handle resizable arrays + - [Fix] `ES2024`+: `GetViewByteLength`, `TypedArrayByteLength`, `TypedArrayLength`: properly handle resizable arrays + - [Fix] `ES2020`+: `abs` should accept bigints too + - [Fix] `ES2024`+: `ArrayBufferByteLength`: return the byte length for SABs, not NaN + - [Fix] `ES2024`+: `ArrayBufferCopyAndDetach`: properly handle resizable ArrayBuffers; add tests + - [Fix] `ES2021`: `SetTypedArrayFromTypedArray`: get proper source element size + - [Fix] `ES2023`+: `SetTypedArrayFromTypedArray`: ArrayBuffer shouldn‘t be bound + - [Fix] `ES2022`,`ES2023`: `ValidateIntegerTypedArray`: return the buffer + - [patch] `ES2023`+: `SortIndexedProperties`: improve error message + - [patch] clean up some comments + - [patch] `ES2023`+: `InternalizeJSONProperty`: remove extra argument + - [patch] `ES2020`+`: `GetIterator`: fix comment to indicate that it changed in ES2018 + - [Refactor] Typed Array stuff: store "choices" string in the table file + - [Refactor] `ES2021`+: use isInteger directly in a few AOs + - [Refactor] `ES2022`+: `ValidateAndApplyPropertyDescriptor`: use `typeof` over `Type()` + - [Refactor] `helpers/getIteratorMethod`: no longer require a passed-in `IsArray` + - [Refactor] `ES2017`+: `Num{ber,eric}ToRawBytes`, `RawBytesToNum{ber,eric}`: use TAO table sizes + - [Refactor] `ES2015`+: `{,Ordinary}ObjectCreate`: prefer `__proto__` syntax over `Object.create` + - [Refactor] `CopyDataProperties` tests are the same in ES2020 as in ES2018 + - [Refactor] `ES2016` - `ES2020`: `UTF16Encoding`: match `UTF16EncodeCodePoint` + - [Refactor] use `es-object-atoms/isObject` directly + - [Refactor] add `isSameType` helper, and use it + - [Refactor] `ES2017`+: `WordCharacters`: `String.prototype.indexOf` should always be present + - [Refactor] use `arr[arr.length] = x` instead of `$push(arr, x)` + - [Robustness] `ES2015`+: `ObjectDefineProperties`: use `OrdinaryGetOwnProperty` to handle a missing `gOPD` + - [meta] add missing comments + - [meta] fix operations npmignores + - [meta] fix URL in comment + - [meta] note `isNegativeZero` helper is slated for removal (#155) + - [Deps] update `call-bound`, `which-typed-array`, `es-object-atoms`, `get-intrinsic`, `get-proto`, `regexp.prototype.flags`, `is-weakref`, `object-inspect` + - [Dev Deps] pin `glob` to v7 + - [Dev Deps] update `@unicode/unicode-15.0.0`, `es-value-fixtures`, `for-each`, `has-strict-mode`, `ses` + - [Tests] avoid an OOM in node 20 on SES tests + - [Tests] compare correct TA type + - [Tests] consolidate map of AO property names to prose names + - [Tests] extract common helpers + - [Tests] increase coverage + - [Tests] increase coverage + - [Tests] node 20 throws with RABs that are not a multiple of 4 and 8 + - [Tests] refactor TA types arrays to year-taking functions + - [Tests] refactor test megafile into file-per-method tests + - [Tests] remove now-unused test mega-file + - [Tests] some cleanups + - [Tests] use proper import + +1.23.9 / 2025-01-02 +================= + * [Refactor] use `get-proto` directly + * [Refactor] use `set-proto` directly + * [Refactor] use `Reflect.setPrototypeOf` and `dunder-proto` in `setProto` helper + * [Refactor] `ES2015`+: `ArrayCreate`: use `setProto` helper + * [Deps] update `es-set-tostringtag`, `own-keys` + * [Dev Deps] update `is-core-module` + * [Tests] use `own-keys` directly + +1.23.8 / 2024-12-28 +================= + * [Refactor] use `own-keys` + * [Refactor] use `safe-push-apply` + +1.23.7 / 2024-12-20 +================= + * [Refactor] create and use `helpers/isPropertyKey` + * [Refactor] add `timeValue` helper, use it + * [Deps] update `array-buffer-byte-length`, `data-view-buffer`, `data-view-byte-length`, `data-view-byte-offset`, `function.prototype.name`, `get-symbol-description`, `is-array-buffer`, `is-shared-array-buffer`, `is-typed-array`, `math-intrinsics`, `object.assign`, `typed-array-buffer`, `typed-array-byte-length`, `typed-array-byte-offset`, `unbox-primitive`, `which-typed-array` + * [Deps] remove unused dep + * [Dev Deps] update `array.prototype.indexof`, `has-bigints`, `is-registered-symbol`, `safe-bigint` + +1.23.6 / 2024-12-15 +================= + * [Fix] `ES2015` - `ES2019`: `IntegerIndexedElementSet`: reject BigInt Typed Arrays prior to ES2020 + * [Fix] `ES2023`+: `SetTypedArrayFromTypedArray`: provide missing `cloneConstructor` argument to `CloneArrayBuffer` + * [Fix] `ES2024`+: `FindViaPredicate`: spec enums are uppercase now + * [Fix] `ES2017` - `ES2019`: `SetValueInBuffer`: handle proper number of arguments + * [Fix] `ES2015`+: `QuoteJSONString`: properly handle surrogates + * [Fix] `ES2015`+: `TestIntegrityLevel`: properly handle envs without property descriptors + * [patch] `ES2018` - `ES2023`: `thisSymbolValue`: only require `Symbol.prototype.valueOf` for boxed Symbols + * [Robustness] `ES2015` - `ES2016`: `SetValueInBuffer`: salt dictionary keys in case of pre-proto envs + * [Refactor] use `math-intrinsics` + * [Refactor] use `call-bound` directly + * [Refactor] `ES2015`+: `GetIterator`: hoist an object to module scope + * [Refactor] use `typeof` over `Type()` when possible + * [Refactor] `ES2015` - `ES2016`: `GetValueFromBuffer`: remove unnecessary extra helper argument + * [Refactor] misc cleanups + * [Refactor] make and use `isObject` helper + * [Refactor] `ES5`+: `MonthFromTime`: throw a `RangeError` for an out of range timestamp + * [Refactor] use `+` over `Number()` + * [Deps] update `arraybuffer.prototype.slice`, `call-bind`, `es-define-property`, `es-to-primitive`, `function.prototype.name`, `get-intrinsic`, `gopd`, `has-proto`, `has-symbols`, `internal-slot`, `is-data-view`, `is-regex`, `is-string`, `which-typed-array`, `is-weakref`, `safe-array-concat`, `safe-regex-test`, `string.prototype.trim`, `string.prototype.trimend`, `typed-array-byte-offset`, `typed-array-length` + * [meta] remove unnecessary unspackles + * [Tests] `isStringOrUndefined`: increase coverage + * [Tests] bigint tests are ES2020+ only + * [Dev Deps] update `array.prototype.flatmap`, `is-core-module`, `is-registered-symbol` + +1.23.5 / 2024-11-14 +================= + * [Fix] `ES2015`+: `CompletionRecord`: ensure `?` works on any non-abrupt completion + +1.23.4 / 2024-11-12 +================= + * [Fix] `ES2024`+: Iterator Records can now have non-functions in `[[NextMethod]]` + * [meta] update spec URL comments + * [Deps] update `globalthis`, `object-inspect`, `regexp.prototype.flags` + * [Dev Deps] update `@ljharb/eslint-config`, `@unicode/unicode-15.0.0`, `diff`, `es-value-fixtures`, `is-core-module`, `mock-property`, `ses`, `tape` + * [actions] split out node 10-20, and 20+ + * [Tests] switch to `npm audit` from `aud` + * [Tests] use `.assertion` instead of monkeypatching tape + * [Tests] increase coverage + +1.23.3 / 2024-03-29 +================= + * [Fix] `ES2024`: `StringPad`, `StringPaddingBuiltinsImpl`: prefer uppercase spec enums + * [Fix] `helpers/bytesAsInteger`: avoid a crash in node 10.4 - 10.8 + * [Fix] `ES5`: `CheckObjectCoercible`: restore `optMessage` optional arg + * [Refactor] `ES2022`+: update `TimeString` to use `ToZeroPaddedDecimalString` + * [Robustness] use cached copies of builtins + * [Deps] update `string.prototype.trimstart`, `typed-array-length` + * [Dev Deps] update `array.from`, `array.prototype.filter`, `array.prototype.indexof`, `object.fromentries`, `safe-bigint` + +1.23.2 / 2024-03-17 +================= + * [Fix] `records/regexp-record`: add optional `[[UnicodeSets]]` boolean field + * [Fix] `ES2024`+: `AddValueToKeyedGroup`: avoid adding matched values twice + * [Fix] `ES5`: `CheckObjectCoercible`: use the right function name + * [Fix] `ES2024`+: `AddEntriesFromIterable`, `GetIterator`, `GroupBy`: properly capitalize spec enums + * [Deps] update `string.prototype.trim`, `string.prototype.trimend` + * [Tests] increase coverage + +1.23.1 / 2024-03-16 +================= + * [Refactor] use `es-object-atoms` + * [Deps] update `hasown`, `which-typed-array`, `data-view-byte-length`, `safe-array-concat` + * [Dev Deps] update `diff` + +1.23.0 / 2024-03-04 +================= + * [New] add `ES2024` + * [New] `ES2015`+: add `InternalizeJSONProperty` + * [New] `ES2015`+: add `IntegerIndexedElement{Get,Set}` + * [New] `ES2018`+: add `TimeZoneString` + * [New] `ES2022`+: add `DefineMethodProperty` + * [New] `ES2023`: add `DefaultTimeZone` + * [Fix] `ES2023`+: `SetTypedArrayFrom{TypedArray,ArrayLike}`: match engine reality + * [Fix] `ES2024`+: `GetViewByteLength`, `IsViewOutOfBounds`: support engines with only own DV properties + * [Tests] use `safe-bigint` + +1.22.5 / 2024-02-28 +================= + * [Fix] `ES2015`+: `DetachArrayBuffer`: node v21.0.0+ structuredClone throws with an already-detached ArrayBuffer + * [Fix] `helpers/assertRecord`: partial revert of 87c340d2; unintentional breaking change + * [patch] records: fix indentation, improve object checks + * [Refactor] extract TA tables to separate files + * [meta] extract "list spackled files" to separate run-script + * [Deps] update `available-typed-arrays`, `es-set-tostringtag`, `has-proto`, `is-negative-zero`, `is-shared-array-buffer`, `typed-array-buffer`, `typed-array-byte-length`, `typed-array-byte-offset`, `typed-array-length` + * [Dev Deps] update `available-regexp-flags`, `tape` + * [Dev Deps] pin `jackspeak` and `glob`, since v2.1.2+ and v10.3.8+ respectively depend on npm aliases, which kill the install process in npm < 6 + * [Tests] use `define-{accessor,data}-property` + * [Tests] fix some test cases + * [Tests] use `safeBigInt` for `Z()` pattern to handle node 10.4 - 10.8 + +1.22.4 / 2024-02-13 +================= + * [Fix] `ES2017`+: `IsDetachedBuffer`: properly allow SABs + * [Fix] `ES2022`+: `ToBigInt`: properly throw on an unparseable string + * [Fix] `ES2015`+: `ValidateTypedArray`: proper detachment check and return value + * [Fix] `ES2022`+: `GetSubstitution`: match updated semantics + * [Refactor] prefer `typeof` over `Type()`, except for Object, where possible + * [Refactor] use `es-errors` instead of `get-intrinsic` where possible + * [Refactor] use `es-define-property` + * [Refactor] records: extract predicates to individual files + * [Refactor] `ES2015`+: `Canonicalize`, `WordCharacters`: use explicit `.json` extension for imports + * [Deps] update `array-buffer-byte-length`, `arraybuffer.prototype.slice`, `available-typed-arrays`, `call-bind`, `es-set-tostringtag`, `get-intrinsic`, `get-symbol-description`, `has-proper ty-descriptors`, `has-property-descriptors`, `hasown`, `internal-slot`, `is-array-buffer`, `is-typed-array`, `object.assign`, `regexp.prototype.flags`, `safe-array-concat`, `safe-regex-test`, `typed-array-buffer`, `which-typed-array` + * [eslint] remove unused overrides + * [Tests] increase/fix coverage + * [Dev Deps] update `aud`, `npmignore`, `mock-property`, `tape` + +1.22.3 / 2023-10-20 +================= + * [Fix] `ES2015`+: `GetSubstitution`: accept `undefined` instead of a hole + * [Refactor] use `hasown` instead of `has` + * [Deps] update `call-bind`, `get-intrinsic`, `object-inspect`, `which-typed-array` + * [Dev Deps] update `function-bind`, `is-core-module`, `mock-property`, `tape` + +1.22.2 / 2023-09-14 +================= + * [Fix] `ES2015`+: `NewPromiseCapability`: use AOs from the current year, not 2022 + * [Refactor] `ES2021`+: `SetTypedArrayFromArrayLike`: use `IsBigIntElementType` + * [Refactor] properly name `helpers/typedArrayConstructors` + * [Refactor] simplify helpers + * [Deps] update `arraybuffer.prototype.slice`, `function.prototype.name`, `is-typed-array`, `regexp.prototype.flags`, `safe-array-concat`, `string.prototype.trim`, `string.prototype.trimend`, `string.prototype.trimstart`, `which-typed-array` + * [actions] update actions + * [Tests] run SES tests on more node versions + * [Dev Deps] update `@unicode/unicode-15.0.0`, `array.from`, `array.prototype.filter`, `array.prototype.flatmap`, `array.prototype.indexof`, `is-core-module`, `object.fromentries`, `ses`, `tape` + +1.22.1 / 2023-07-15 +================= + * [Deps] add missing `safe-array-concat` dep + +1.22.0 / 2023-07-15 +================= + * [New] add `ES2023` + * [New] `ES2021+`: add `SetTypedArrayFromArrayLike`, `SetTypedArrayFromTypedArray` + * [New] `ES2021`+: add `CloneArrayBuffer` + * [New] `ES2020`+: add `IsValidIntegerIndex` + * [New] `ES2015`+: add `GetValueFromBuffer`, `SetValueInBuffer` + * [New] `ES2016`+: add `TypedArrayCreate`, `TypedArraySpeciesCreate` + * [New] `ES2015`+: add `IsWordChar` + * [New] `ES2017`+ add `WordCharacters` + * [New] `ES2015`+: add `Canonicalize` + * [New] `ES2015`+: add `NewPromiseCapability` + * [Fix] `ES2017+`: `NumberToRawBytes`, `NumericToRawBytes`: reimplement Float64, fix integer scenarios + * [Refactor] add `helpers/isLineTerminator` + * [Refactor] add `isInteger` helper, and use it + * [Refactor] extract `isStringOrHole` to a helper + * [Refactor] `ES2017`+: `RawBytesToNumber`, `RawBytesToNumeric`: extract common code to helpers + * [Refactor] make a `MAX_VALUE` helper + * [Tests] fix RawBytesToNumeric tests in node v10.4-10.8 + * [Tests] fix buffer test cases in node v10.4-v10.8 + +1.21.3 / 2023-07-12 +================= + * [Fix] `ES2017+`: `RawBytesToNumber`, `RawBytesToNumeric`: properly handle some scenarios + * [Fix] `ES2015`+: `GetV`: the receiver is `V`, not `O` + * [Fix] `ES2017`+: `RawBytesToNumber`, `RawBytesToNumeric`: fix exponent calculation for Float64, improve tests + * [Fix] `ES2017`+: `RawBytesToNumber`, `RawBytesToNumeric`: fix logic, improve tests + * [Fix] `ES2019`+: `thisTimeValue`: fix spackling + * [Robustness] `ES2017`+: `NumberToRawBytes`, `NumericToRawBytes`: use `SameValue` instead of `Object.is` + * [Refactor] `ES2021`+: `ValidateAtomicAccess`: use `typed-array-byte-offset` + * [Refactor] `ES2019`+: `AddEntriesFromIterable`: use `ThrowCompletion` + * [patch] `ES2015`+: `ObjectDefineProperties`: satisfy TODO + * [patch] `ES2015`+: `GetV`: improve error message + * [patch] fix spec URLs + * [Deps] update `get-intrinsic`, `regexp.prototype.flags`, `which-typed-array` + * [actions] fix permissions + * [Tests] add buffer test case fixtures + tests + * [Tests] skip test that modifies the env in SES + * [Tests] fix regex flags tests for node 20 + * [Dev Deps] update `@ljharb/eslint-config`, `aud`, `available-regexp-flags`, `is-core-module`, `tape` + +1.21.2 / 2023-03-12 +================= + * [Fix] `ES2015`+: `CreateDataProperty`: use `OrdinaryDefineOwnProperty` + * [Fix] `ES2015`+: `CreateDataProperty`: use `OrdinaryDefineOwnProperty` + * [Fix] `ES2015`+: `GetPrototypeFromConstructor`: add missing assertion that `intrinsicDefaultProto` is an object + * [Fix] `ES2015`+: `IsDetachedBuffer`: ensure a nullish error does not crash + * [Fix] `ES2015`+: `ToDateString`: properly handle time values that aren’t "now" + * [Fix] `ES2015`+: `ToUint8Clamp`: avoid an extra observable ToNumber + * [Fix] `ES2015`+`: `GetMethod`: when `func` is not callable and `P` is a symbol, avoid the wrong TypeError + * [Fix] `ES2020`+: `ToBigInt`: properly throw on anything besides string, bigint, boolean + * [Fix] `ES2021`+: `SplitMatch`: instead of `false`, return `'not-matched'` + * [Fix] `helpers/assertRecord`: handle nullish input + * [Fix] `helpers/isFullyPopulatedPropertyDescriptor`: handle primitive inputs + * [Robustness] `ES5`: `ToNumber`: avoid relying on runtime `.test` and `.replace` + * [Refactor] `ES2015`: mark `IsDataDescriptor` and `IsAccessorDescriptor` as spackled + * [Refactor] `ES2015`+: `IsDetachedBuffer`: use `array-buffer-byte-length` package + * [Refactor] `ES2015`+: `OrdinaryHasInstance`: rely on falsiness + * [Refactor] `ES2016`+: `CreateListFromArrayLike`: hoist default element types to module level + * [Refactor] `ES2022`+: `StringToNumber`, `ToNumber`: use `string.prototype.trim` + * [patch] `ES2022`+: `IsLessThan`: fix a comment + * [patch] `ES2022`+: `TypedArrayElementSize`, `TypedArrayElementType`: throw a SyntaxError with an unknown TA type + * [patch] `ES2022`+: `IsLessThan`: fix a comment + * [patch] `ES2020`+: `thisBigIntValue`: throw a SyntaxError, not TypeError, for unsupported features + * [patch] `helpers/getIteratorMethod`: `String` is always available + * [patch] fix commented spec URLs + * [patch] omit `%` for `callBound` + * [meta] fix spec URLs + * [meta] fix spackle metadata, comments + * [Deps] update `get-intrinsic`, `internal-slot`, `is-array-buffer`, `object-inspect` + * [Deps] move `function-bind` to dev deps + * [Tests] String.fromCharCode takes numbers, not strings + * [Tests] use `makeIteratorRecord` helper + * [Tests] increase coverage + * [Tests] fix tests that throw a sentinel + * [Dev Deps] update `array.from`, `available-regexp-flags`, `tape` + +1.21.1 / 2023-01-10 +================= + * [Fix] move `available-typed-arrays` to runtime deps + * [Fix] `ES2021`+: `NumberToBigInt`: throw the proper error on an env without BigInts + * [Fix] `ES2018`+: `CreateAsyncFromSyncIterator`: properly check `next` method args length + * [Fix] `ES2020`-`ES2021`: Abstract Relational Comparison: handle BigInts properly + * [Fix] `ES2022`+: `StringToBigInt`: invalid BigInts should be `undefined`, not `NaN` as in previous years + * [Fix] `helpers/isFinite`: properly handle BigInt values + * [Fix] `ES2020`+: `CreateListFromArrayLike`: accept BigInts + * [Fix] `ES2019`+: `AsyncFromSyncIteratorContinuation`: throw a SyntaxError when > 1 arg is passed + * [patch] `ES2020`+: `GetIterator`: use SyntaxError for intentionally unsupported + * [patch] `ES2015`+: `GetPrototypeFromContructor`: use SyntaxError for intentionally unsupported + * [patch] `ES2022`+: `StringToNumber`: fix non-string assertion failure message + * [Deps] update `es-set-tostringtag`, `is-array-buffer` + * [Tests] increase coverage + * [Tests] exclude coverage from files that have been replaced by an extracted package + +1.21.0 / 2023-01-04 +================= + * [New] `ES2015`+: add `IsDetachedBuffer` + * [New] `ES2015+`: add `DetachArrayBuffer` + * [New] `ES2020`+: add `NumericToRawBytes` + * [New] `ES2017` - `ES2019`: add `NumberToRawBytes` + * [New] `ES2020+`: add `RawBytesToNumeric` + * [New] `ES2017-ES2019`: add `RawBytesToNumber` + * [New] `ES2017`+: add `ValidateAtomicAccess` + * [New] `ES2021`+: add `ValidateIntegerTypedArray` + * [New] `ES2015`+: add `ValidateTypedArray` + * [New] `ES2015`+: add `GetGlobalObject` + * [New] `ES2022`+: add `TypedArrayElementSize`, `TypedArrayElementType` + * [New] `ES2015`+: add `max`, `min` + * [New] `helpers/assertRecord`: add predicates for PromiseCapability and AsyncGeneratorRequest Records + * [New] `ES2018`+: add `AsyncIteratorClose` + * [New] `ES2015`+: `IteratorClose`: also accept a Completion Record instance instead of a completion thunk + * [New] `ES2015`+ (CompletionRecord, NormalCompletion), `ES2018`+ (ThrowCompletion): add new AOs + * [New] `ES2015`+ (`ObjectCreate`) and `ES2020`+ (`OrdinaryObjectCreate`): use `internal-slot` to support additional slots + * [New] `ES2018`+: add `CreateAsyncFromSyncIterator` + * [patch] `ES2015`+: `GetMethod`: better failure message + * [Refactor] use `es-set-tostringtag` package + * [Refactor] use `has-proto` package + * [Deps] update `has-proto`, `es-set-tostringtag`, `internal-slot` + * [meta] fix spackle script to `git add` after all writing is done + * [meta] autogenerate esX entry points + * [meta] use a leading slash in gitattributes for proper spackle matching + * [Tests] fix comments on missing AOs + * [Tests] filter out host-defined AOs + * [Dev Deps] update `@ljharb/eslint-config`, `aud` + +1.20.5 / 2022-12-07 +================= + * [Fix] `ES2020+`: `floor`: make it work with BigInts as well + * [Refactor] use `gopd` + * [Tests] add `mod` helper tests (#147) + * [Deps] update `string.prototype.trimend`, `string.prototype.trimstart` + * [Dev Deps] update `array.prototype.filter`, `array.prototype.flatmap`, `array.prototype.indexof`, `object.fromentries` + +1.20.4 / 2022-10-06 +================= + * [Fix] `ES2021+`: values that truncate to -0 in `ToIntegerOrInfinity` (#146) + * [Deps] update `is-callable` + +1.20.3 / 2022-09-22 +================= + * [Refactor] extract regex tester to `safe-regex-test` package + * [Deps] update `get-intrinsic`, `is-callable` + * [Dev Deps] update `aud`, `tape` + +1.20.2 / 2022-09-01 +================= + * [Fix] `ES2020+`: `SameValueNonNumeric`: properly throw on BigInt values + * [Deps] update `object.assign`, `get-intrinsic`, `object-inspect` + * [Dev Deps] update `array.prototype.indexof`, `diff`, `es-value-fixtures`, `tape` + * [meta] `spackle`: always mkdirp new files to be written + * [Tests] fix vscode auto-const from 8fc256d + +1.20.1 / 2022-05-16 +================= + * [Fix] `thisTimeValue`: use `getTime`, not `valueOf`, to get the time value + * [Refactor] create `IsArray` helper + * [Deps] update `regexp.prototype.flags` + * [Dev Deps] use `for-each` instead of `foreach` + +1.20.0 / 2022-05-05 +================= + * [New] add ES2022 + * [New] `ES2015+`: add `ObjectDefineProperties` + * [Refactor] create `fromPropertyDescriptor` helper + * [Refactor] use `has-property-descriptors` + * [Deps] update `string.prototype.trimend`, `string.prototype.trimstart`, `unbox-primitive` + * [meta] use `npmignore` to autogenerate an npmignore file + * [Dev Deps] update `es-value-fixtures`, `has-bigints`, `functions-have-names` + * [Tests] copy GetIntrinsic tests over from `get-intrinsic` + +1.19.5 / 2022-04-13 +================= + * [Fix] `DefineOwnProperty`: FF 4-22 throws an exception when defining length of an array + * [Dev Deps] update `@ljharb/eslint-config` + +1.19.4 / 2022-04-12 +================= + * [Fix] `ES2015+`: `CreateDataProperty`: a nonwritable but configurable property is still converted to a data property + +1.19.3 / 2022-04-11 +================= + * [Fix] `ES2015+`: `GetIterator`, `IterableToArrayLike`: in Symbol-less envs, handle boxed string objects + * [Robustness] use `exec` instead of `test`, since the latter observably looks up `exec` + * [Deps] update `is-shared-array-buffer` + * [actions] restrict permissions + * [Dev Deps] update `tape` + * [Tests] add test coverage + * [Tests] avoid a bug in node v4.0 with bound function names + +1.19.2 / 2022-03-28 +================= + * [Fix] `ES2018+`: `EnumerableOwnPropertyNames`, `ToIntegerOrInfinity`, `UTF16SurrogatePairToCodePoint`: proper function names + * [Fix] `ES2015+`: `GetOwnPropertyKeys`/`IsExtensible`/`{Set,Test}IntegrityLevel`: avoid a crash in IE 8 on missing ES5 intrinsics + * [Fix] `helpers/DefineOwnProperty`: avoid a crash in IE 8 + * [Fix] `ES2015+`: `StringCreate`: properly check for `prototype` being `String.prototype` + * [Docs] `ES2015+`: `GetV`: Fix spec URL + * [meta] operations: use a URL object instead of a URL string + * [meta] remove defunct greenkeeper config + * [meta] better `eccheck` command; fix indentation + * [Tests] node v0.6 lacks `RegExp.prototype.source` + * [Tests] remove a stray `console.log` + * [Tests] properly set the lastIndex in IE 8 + * [Tests] skip test due to IE 6-8 sparse/undefined bug + * [Tests] in IE 8, an empty regex is `` and not `(?:)` + * [Tests] ES3 engines don’t have `.bind` + * [Tests] avoid needless failures in ES3 engines that don't support descriptors + * [Tests] add test to cover https://github.com/tc39/ecma262/issues/2611 + * [Deps] update `has-symbols`, `is-negative-zero`, `is-weakref`, `object-inspect` + * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object.fromentries`, `safe-publish-latest`, `tape` + * [actions] reuse common workflows + * [actions] update codecov uploader + +1.19.1 / 2021-10-02 +================= + * [Fix] `ES2020+`: `CreateRegExpStringIterator`: should not have enumerable methods + * [Dev Deps] update `array.prototype.filter`, `array.prototype.indexof` + +1.19.0 / 2021-09-30 +================= + * [New] `ES2021+`: `IterableToList`: make `method` parameter optional (#61) + * [New] add ES2021 + * [New] `ES2020+`: add `StringToBigInt`, `ToBigInt`, `ToBigInt64`, `ToBigUint64` + * [New] `ES2017`+: add `IsSharedArrayBuffer`, `OrdinaryToPrimitive` + * [New] `ES2015+`: add `CharacterRange`, `IsCompatiblePropertyDescriptor` + * [New] `ES2020+`: add `CreateRegExpStringIterator` + * [Fix] `ES2020+`: `ToBigInt64`/`ToBigUint64`: avoid node v10.4-v10.8 bug with limited BigInt range + * [Fix] `ES2020+`: `AbstractRelationalComparison`, `AbstractEqualityComparison`: support BigInt + * [Fix] `ES2020+`: `ToBigInt64`/`ToBigUint64`: Improve the definitions of twoSixtyThree and twoSixtyFour (#140) + * [meta] do not publish .gitattributes + * [Tests] Correct the behavior of `safeBigInt` + * [Tests] Exclude dotfiles from the testing sweep (#141) + +1.18.7 / 2021-09-28 +================= + * [Fix] `getOwnPropertyDescriptor` helper: avoid crashing in IE < 9 + * [Fix] `ArraySetLength`: `node` `v0.6` has a bug where array lengths can be Set but not Defined + * [eslint] remove unused directive + * [Tests] fix spelling + +1.18.6 / 2021-09-07 +================= + * [Fix] `ES2020+`: `NumberToBigInt`: throw a SyntaxError when BigInts are not supported + * [Refactor] extract getSymbolDescription logic to `get-symbol-description` + * [Refactor] `ES2018+`: `AbstractRelationalComparison`: use `IsStringPrefix` + * [Deps] update `is-callable`, `is-regex`, `is-string` + * [Dev Deps] update `@ljharb/eslint-config`, `tape` + * [Tests] `GetSubstitution`: add cases + +1.18.5 / 2021-08-01 +================= + * [meta] remove "exports" (#133) + * [Dev Deps] update `eslint` + +1.18.4 / 2021-07-29 +================= + * [meta] partial revert of b54cfe8525faff482450e843a49d43be3a086225 + * [Deps] update `internal-slot`, `object-inspect` + * [Dev Deps] update `eslint`, `tape` + * [Tests] `ArraySetLength`: increase coverage + +1.18.3 / 2021-05-27 +================= + * [Fix] `ES2020+`: `ToNumber`: ensure it throws on a BigInt (#130) + +1.18.2 / 2021-05-25 +================= + * [meta] add `helpers` to "exports" field, for back compat + +1.18.1 / 2021-05-25 +================= + * [readme] update and clarify entry points + * [meta] add "exports" field, with escape hatch + * [meta] add `sideEffects` field + * [meta] use `prepublishOnly`, for npm 7+ + * [eslint] clean up eslint rules + * [Deps] update `is-regex`, `is-string`, `object-inspect`, `unbox-primitive` + * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` + * [actions] disable fail-fast on matrix jobs + * [actions] use `node/install` action instead of `node/run` + * [actions] update codeql-analysis to new best practices + +1.18.0 / 2021-03-03 +================= + * [New] add `ES2020`, and a number of additional AOs: See the changelog entries for the prereleases for more information: + - [next.3](./CHANGELOG.md#1180-next3--2021-03-01) + - [next.2](./CHANGELOG.md#1180-next2--2021-01-17) + - [next.1](./CHANGELOG.md#1180-next1--2020-09-30) + - [next.0](./CHANGELOG.md#1180-next0--2020-08-14) + * [Refactor] `ES5+`: `Abstract Relational Comparison`: increase coverage + * [Tests] increase coverage + * [Tests] do not run coverage on node 0.6 + +1.18.0-next.3 / 2021-03-01 +================= + * [New] `ES2015`: add `StringGetIndexProperty` + * [New] `ES2015+`: add `RegExpCreate`, `SplitMatch`, `StringCreate` + * [New] `ES2016-ES2019`: add `UTF16Decode` + * [New] `ES2020+`: add `NumberToBigInt` + * [New] `ES2020+: add `BigInt::`/`Number::` methods: + * [Fix] `ES5`: `ToNumber`: properly refuse to parse ES6+ forms + * [Fix] `ES2015+`: `Invoke`: optional argumentsList must be a List of arguments, not a list of arguments + * [Fix] `ES2016+`: `UTF16Encoding`: properly return a string code point instead of a numeric code point + * [Fix] `ES2020`: `NumberBitwiseOp`: assert that x and y are Numbers + * [readme] remove travis/testling badge, fix repo URLs + * [meta] `ES2015`: add missing `CreateArrayIterator` AO + * [meta] `ES2015-ES2017`: add missing `DaylightSavingTA` AO + * [meta] rerun `npm run spackle` to update URLs left after 11d8c8df11c0d15d094a6035afed662e22b440ef + * [meta] update ecma URLs + * [meta] unignore 2020 operations list + * [meta] update operations scripts linting + * [meta] refactor getOps script to fetch all years at once + * [meta] refactor operations script to keep years in one place + * [meta] fix ES2015 spec URL + * [Deps] update `has-symbols`, `string.prototype.trimend`, `string.prototype.trimstart`, `get-intrinsic`, `is-callable`, `is-regex` + * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `array.prototype.indexof`, `aud`, `es-value-fixtures`, `object.fromentries`, `tape`, `diff` + * [operations] detect ES2020+ style `T::` numeric operations + * [Tests] increase coverage + * [Tests] `BigInt(1e17)` throws on node v10.4-v10.6 + * [Tests] improve coverage on `Number::` methods + * [Tests] `tape` v5 `.equal` now uses strict equality, so no more need for `is()` + * [Tests] improve BigInt:: and Number:: coverage + * [Tests] actually run all the helpers tests + * [Tests] ensure "expected missing" ops list is accurate + * [Tests] abstract away per-operation skips + * [Tests] skip BigInt:: tests on envs without BigInts + * [Tests] use `es-value-fixtures` + * [actions] update workflows + +1.18.0-next.2 / 2021-01-17 +================= + * [New] `helpers`: add `isByteValue`, `isCodePoint`, `some` + * [Fix] `ES2018+`: fix `GetSubstitution` with named captures + * [Fix] `ES2020`: `GetIterator`: add omitted `hint` parameter + * [Fix] `ES2018`/`ES2019`: `SetFunctionLength`: Infinities should throw + * [Fix] `ES2020`: `ToIndex` uses `SameValue` instead of `SameValueZero` + * [Fix] `ES2020`: `CopyDataProperties` uses `CreateDataPropertyOrThrow` instead of `CreateDataProperty` + * [Refactor] use extracted `call-bind` instead of local helpers + * [Refactor] use extracted `get-intrinsic` package + * [Deps] update `call-bind`, `get-intrinsic`, `is-callable`, `is-negative-zero`, `is-regex`, `object-inspect`, `object.assign`, `string.prototype.trimend`, `string.prototype.trimstart` + * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `array.prototype.indexof`, `aud`, `diff`, `functions-have-names`, `has-bigints`, `has-strict-mode`, `object-is`, `object.fromentries`, `tape` + * [actions] switch Automatic Rebase workflow to `pull_request_target` event + * [actions] add "Allow Edits" workflow + * [meta] pin cheerio to v1.0.0-rc.3, to fix getOps + * [meta] make all URLs consistent, and point to spec artifacts + * [meta] refactor `deltas` script; update eslint on operations scripts + * [meta] do not publish .github dir (#123) + * [Tests] add `v.notNonNegativeIntegers`, `v.nonConstructorFunctions` + * [Tests] migrate tests to Github Actions + * [Tests] run coverage on all tests + * [Tests] add `npm run test:ses` + +1.18.0-next.1 / 2020-09-30 +================= + * [Fix] `ES2020`: `ToInteger`: `-0` should always be normalized to `+0` (#116) + * [patch] `GetIntrinsic`: Adapt to override-mistake-fix pattern (#115) + * [Fix] `callBind`: ensure compatibility with SES + * [Deps] update `is-callable`, `object.assign` + * [Dev Deps] update `eslint`, `@ljharb/eslint-config` + * [eslint] fix warning + * [Tests] temporarily allow SES tests to fail (#115) + * [Tests] ses-compat - initialize module after ses lockdown (#113) + * [Tests] [Refactor] use defineProperty helper rather than assignment + * [Tests] [Refactor] clean up defineProperty test helper + +1.18.0-next.0 / 2020-08-14 +================= + * [New] add `ES2020` + * [New] `GetIntrinsic`: add `%AggregateError%`, `%FinalizationRegistry%`, and `%WeakRef%` + * [New] `ES5`+: add `abs`, `floor`; use `modulo` consistently + * [New] `GetIntrinsic`: Cache accessed intrinsics (#98) + * [New] `GetIntrinsic`: Add ES201x function intrinsics (#97) + * [New] `ES2015`+: add `QuoteJSONString`, `OrdinaryCreateFromConstructor` + * [New] `ES2017`+: add `StringGetOwnProperty` + * [New] `ES2016`+: add `UTF16Encoding` + * [New] `ES2018`+: add `SetFunctionLength`, `UnicodeEscape` + * [New] add `isLeadingSurrogate`/`isTrailingSurrogate` helpers + * [Fix] `ES5`+: `ToPropertyDescriptor`: use intrinsic TypeError + * [Fix] `ES2018+`: `CopyDataProperties`/`NumberToString`: use intrinsic TypeError + * [Deps] update `is-regex`, `object-inspect` + * [Dev Deps] update `eslint` + +1.17.7 / 2020-09-30 +================= + * [Fix] `ES2020`: `ToInteger`: `-0` should always be normalized to `+0` (#116) + * [patch] `GetIntrinsic`: Adapt to override-mistake-fix pattern (#115) + * [Fix] `callBind`: ensure compatibility with SES + * [Deps] update `is-callable`, `is-regex`, `object-inspect`, `object.assign` + * [Dev Deps] update `eslint`, `@ljharb/eslint-config` + +1.17.6 / 2020-06-13 +================= + * [Fix] `helpers/getSymbolDescription`: use the global Symbol registry when available (#92) + * [Fix] `ES2015+`: `IsConstructor`: when `Reflect.construct` is available, be spec-accurate (#93) + * [Fix] `ES2015+`: `Set`: Always return boolean value (#101) + * [Fix] `ES2015+`: `Set`: ensure exceptions are thrown in IE 9 when requested + * [Fix] Use `Reflect.apply(…)` if available (#99) + * [Fix] `helpers/floor`: module-cache `Math.floor` + * [Fix] `helpers/getSymbolDescription`: Prefer bound `description` getter when present + * [Fix] `2016`: Use `getIteratorMethod` in `IterableToArrayLike` (#94) + * [Fix] `helpers/OwnPropertyKeys`: Use `Reflect.ownKeys(…)` if available (#91) + * [Fix] `2018+`: Fix `CopyDataProperties` depending on `this` (#95) + * [meta] mark spackled files as autogenerated + * [meta] `Type`: fix spec URL + * [meta] `ES2015`: complete ops list + * [Deps] update `is‑callable`, `is‑regex` + * [Deps] switch from `string.prototype.trimleft`/`string.prototype.trimright` to `string.prototype.trimstart`/`string.prototype.trimend` + * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `in-publish`, `object-is`, `tape`; add `aud` + * [eslint] `helpers/isPropertyDescriptor`: fix indentation + * [Tests] `helpers/getSymbolDescription`: add test cases; some envs have `Symbol.for` but can not infer a name (#92) + * [Tests] try out CodeQL analysis + * [Tests] reformat expected missing ops + * [Tests] Run tests with `undefined` this (#96) + +1.17.5 / 2020-03-22 +================= + * [Fix] `CreateDataProperty`: update an existing property + * [Fix] run missing spackle from cd7504701879ddea0f5981e99cbcf93bfea9171d + * [Dev Deps] update `make-arrow-function`, `tape`, `@ljharb/eslint-config` + +1.17.4 / 2020-01-21 +================= + * [Fix] `2015+`: add code to handle IE 8’s problems + * [Tests] fix tests for IE 8 + +1.17.3 / 2020-01-19 +================= + * [Fix] `ObjectCreate` `2015+`: Fall back to `__proto__` and normal `new` in older browsers + * [Fix] `GetIntrinsic`: ensure the `allowMissing` property actually works on dotted intrinsics + +1.17.2 / 2020-01-14 +================= + * [Fix] `helpers/OwnPropertyKeys`: include non-enumerables too + +1.17.1 / 2020-01-14 +================= + * [Refactor] add `OwnPropertyKeys` helper, use it in `CopyDataProperties` + * [Refactor] `IteratorClose`: remove useless assignment + * [Dev Deps] update `eslint`, `tape`, `diff` + +1.17.0 / 2019-12-20 +================= + * [New] Split up each operation into its own file (prereleased) + * [Fix] `GetIntrinsic`: IE 8 has a broken `Object.getOwnPropertyDescriptor` + * [Fix] `object.assign` is a runtime dep (prereleased) + * [Refactor] `GetIntrinsic`: remove the internal property salts, since % already handles that + * [Refactor] `GetIntrinsic`: further simplification + * [Deps] update `is-callable`, `string.prototype.trimleft`, `string.prototype.trimright`, `is-regex` + * [Dev Deps] update `@ljharb/eslint-config`, `object-is`, `object.fromentries`, `tape` + * [Tests] add `.eslintignore` + * [meta] remove unused Makefile and associated utils + * [meta] only run spackle script in publish (#78) (prereleased) + +1.17.0-next.1 / 2019-12-11 +================= + * [Fix] `object.assign` is a runtime dep + * [meta] only run spackle script in publish (#78) + +1.17.0-next.0 / 2019-12-11 +================= + * [New] Split up each operation into its own file + +1.16.3 / 2019-12-04 +================= + * [Fix] `GetIntrinsic`: when given a path to a getter, return the actual getter + * [Dev Deps] update `eslint` + +1.16.2 / 2019-11-24 +================= + * [Fix] IE 6-7 lack JSON + * [Fix] IE 6-8 strings can’t use array slice, they need string slice + * [Dev Deps] update `eslint` + +1.16.1 / 2019-11-24 +================= + * [Fix] `GetIntrinsics`: turns out IE 8 throws when `Object.getOwnPropertyDescriptor(arguments);`, and does not throw on `callee` anyways + * [Deps] update `es-to-primitive`, `has-symbols`, `object-inspect` + * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` + * [meta] re-include year files inside `operations` + * [meta] add `funding` field + * [actions] add Automatic Rebase github action + * [Tests] use shared travis-ci config + * [Tests] disable `check-coverage`, and let codecov do it + +1.16.0 / 2019-10-18 +================= + * [New] `ES2015+`: add `SetFunctionName` + * [New] `ES2015+`: add `GetPrototypeFromConstructor`, with caveats + * [New] `ES2015+`: add `CreateListFromArrayLike` + * [New] `ES2016+`: add `OrdinarySetPrototypeOf` + * [New] `ES2016+`: add `OrdinaryGetPrototypeOf` + * [New] add `getSymbolDescription` and `getInferredName` helpers + * [Fix] `GetIterator`: add fallback for pre-Symbol environments, tests + * [Dev Deps] update `object.fromentries` + * [Tests] add `node` `v12.2` + +1.15.0 / 2019-10-02 +================= + * [New] `ES2018`+: add `DateString`, `TimeString` + * [New] `ES2015`+: add `ToDateString` + * [New] `ES5`+: add `msFromTime`, `SecFromTime`, `MinFromTime`, `HourFromTime`, `TimeWithinDay`, `Day`, `DayFromYear`, `TimeFromYear`, `YearFromTime`, `WeekDay`, `DaysInYear`, `InLeapYear`, `DayWithinYear`, `MonthFromTime`, `DateFromTime`, `MakeDay`, `MakeDate`, `MakeTime`, `TimeClip`, `modulo` + * [New] add `regexTester` helper + * [New] add `callBound` helper + * [New] add ES2020’s intrinsic dot notation + * [New] add `isPrefixOf` helper + * [New] add `maxSafeInteger` helper + * [Deps] update `string.prototype.trimleft`, `string.prototype.trimright` + * [Dev Deps] update `eslint` + * [Tests] on `node` `v12.11` + * [meta] npmignore operations scripts; add "deltas" + +1.14.2 / 2019-09-08 +================= + * [Fix] `ES2016`: `IterableToArrayLike`: add proper fallback for strings, pre-Symbols + * [Tests] on `node` `v12.10` + +1.14.1 / 2019-09-03 +================= + * [meta] republish with some extra files removed + +1.14.0 / 2019-09-02 +================= + * [New] add ES2019 + * [New] `ES2017+`: add `IterableToList` + * [New] `ES2016`: add `IterableToArrayLike` + * [New] `ES2015+`: add `ArrayCreate`, `ArraySetLength`, `OrdinaryDefineOwnProperty`, `OrdinaryGetOwnProperty`, `OrdinaryHasProperty`, `CreateHTML`, `GetOwnPropertyKeys`, `InstanceofOperator`, `SymbolDescriptiveString`, `GetSubstitution`, `ValidateAndApplyPropertyDescriptor`, `IsPromise`, `OrdinaryHasInstance`, `TestIntegrityLevel`, `SetIntegrityLevel` + * [New] add `callBind` helper, and use it + * [New] add helpers: `isPropertyDescriptor`, `every` + * [New] ES5+: add `Abstract Relational Comparison` + * [New] ES5+: add `Abstract Equality Comparison`, `Strict Equality Comparison` + * [Fix] `ES2015+`: `GetIterator`: only require native Symbols when `method` is omitted + * [Fix] `ES2015`: `Call`: error message now properly displays Symbols using `object-inspect` + * [Fix] `ES2015+`: `ValidateAndApplyPropertyDescriptor`: use ES2017 logic to bypass spec bugs + * [Fix] `ES2015+`: `CreateDataProperty`, `DefinePropertyOrThrow`, `ValidateAndApplyPropertyDescriptor`: add fallbacks for ES3 + * [Fix] `ES2015+`: `FromPropertyDescriptor`: no longer requires a fully complete Property Descriptor + * [Fix] `ES5`: `IsPropertyDescriptor`: call into `IsDataDescriptor` and `IsAccessorDescriptor` + * [Refactor] use `has-symbols` for Symbol detection + * [Fix] `helpers/assertRecord`: remove `console.log` + * [Deps] update `object-keys` + * [readme] add security note + * [meta] change http URLs to https + * [meta] linter cleanup + * [meta] fix getOps script + * [meta] add FUNDING.yml + * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `semver`, `replace`, `cheerio`, `tape` + * [Tests] up to `node` `v12.9`, `v11.15`, `v10.16`, `v8.16`, `v6.17` + * [Tests] temporarily allow node 0.6 to fail; segfaulting in travis + * [Tests] use the values helper more in es5 tests + * [Tests] fix linting to apply to all files + * [Tests] run `npx aud` only on prod deps + * [Tests] add v.descriptors helpers + * [Tests] use `npx aud` instead of `npm audit` with hoops + * [Tests] use `eclint` instead of `editorconfig-tools` + * [Tests] some intrinsic cleanup + * [Tests] migrate es5 tests to use values helper + * [Tests] add some missing ES2015 ops + +1.13.0 / 2019-01-02 +================= + * [New] add ES2018 + * [New] add ES2015/ES2016: EnumerableOwnNames; ES2017: EnumerableOwnProperties + * [New] `ES2015+`: add `thisBooleanValue`, `thisNumberValue`, `thisStringValue`, `thisTimeValue` + * [New] `ES2015+`: add `DefinePropertyOrThrow`, `DeletePropertyOrThrow`, `CreateMethodProperty` + * [New] add `assertRecord` helper + * [Deps] update `is-callable`, `has`, `object-keys`, `es-to-primitive` + * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `semver`, `safe-publish-latest`, `replace` + * [Tests] use `npm audit` instead of `nsp` + * [Tests] remove `jscs` + * [Tests] up to `node` `v11.6`, `v10.15`, `v8.15`, `v6.16` + * [Tests] move descriptor factories to `values` helper + * [Tests] add `getOps` to programmatically fetch abstract operation names + +1.12.0 / 2018-05-31 +================= + * [New] add `GetIntrinsic` entry point + * [New] `ES2015`+: add `ObjectCreate` + * [Robustness]: `ES2015+`: ensure `Math.{abs,floor}` and `Function.call` are cached + +1.11.0 / 2018-03-21 +================= + * [New] `ES2015+`: add iterator abstract ops + * [Dev Deps] update `eslint`, `nsp`, `object.assign`, `semver`, `tape` + * [Tests] up to `node` `v9.8`, `v8.10`, `v6.13` + +1.10.0 / 2017-11-24 +================= + * [New] ES2015+: `AdvanceStringIndex` + * [Dev Deps] update `eslint`, `nsp` + * [Tests] require node 0.6 to pass again + * [Tests] up to `node` `v9.2`, `v8.9`, `v6.12`; use `nvm install-latest-npm`; pin included builds to LTS + +1.9.0 / 2017-09-30 +================= + * [New] `es2015+`: add `ArraySpeciesCreate` + * [New] ES2015+: add `CreateDataProperty` and `CreateDataPropertyOrThrow` + * [Tests] consolidate duplicated tests + * [Tests] increase coverage + * [Dev Deps] update `nsp`, `eslint` + +1.8.2 / 2017-09-03 +================= + * [Fix] `es2015`+: `ToNumber`: provide the proper hint for Date objects (#27) + * [Dev Deps] update `eslint` + +1.8.1 / 2017-08-30 +================= + * [Fix] ES2015+: `ToPropertyKey`: should return a symbol for Symbols (#26) + * [Deps] update `function-bind` + * [Dev Deps] update `eslint`, `@ljharb/eslint-config` + * [Docs] github broke markdown parsing + +1.8.0 / 2017-08-04 +================= + * [New] add ES2017 + * [New] move es6+ to es2015+; leave es6/es7 as aliases + * [New] ES5+: add `IsPropertyDescriptor`, `IsAccessorDescriptor`, `IsDataDescriptor`, `IsGenericDescriptor`, `FromPropertyDescriptor`, `ToPropertyDescriptor` + * [New] ES2015+: add `CompletePropertyDescriptor`, `Set`, `HasOwnProperty`, `HasProperty`, `IsConcatSpreadable`, `Invoke`, `CreateIterResultObject`, `RegExpExec` + * [Fix] es7/es2016: do not mutate ES6 + * [Fix] assign helper only supports one source + * [Deps] update `is-regex` + * [Dev Deps] update `nsp`, `eslint`, `@ljharb/eslint-config` + * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `nsp`, `semver`, `tape` + * [Tests] add tests for missing and excess operations + * [Tests] add codecov for coverage + * [Tests] up to `node` `v8.2`, `v7.10`, `v6.11`, `v4.8`; newer npm breaks on older node + * [Tests] use same lists of value types across tests; ensure tests are the same when ops are the same + * [Tests] ES2015: add ToNumber symbol tests + * [Tests] switch to `nyc` for code coverage + * [Tests] make IsRegExp tests consistent across editions + +1.7.0 / 2017-01-22 +================= + * [New] ES6: Add `GetMethod` (#16) + * [New] ES6: Add `GetV` (#16) + * [New] ES6: Add `Get` (#17) + * [Tests] up to `node` `v7.4`, `v6.9`, `v4.6`; improve test matrix + * [Dev Deps] update `tape`, `nsp`, `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` + +1.6.1 / 2016-08-21 +================= + * [Fix] ES6: IsConstructor should return true for `class` constructors. + +1.6.0 / 2016-08-20 +================= + * [New] ES5 / ES6: add `Type` + * [New] ES6: `SpeciesConstructor` + * [Dev Deps] update `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`; add `safe-publish-latest` + * [Tests] up to `node` `v6.4`, `v5.12`, `v4.5` + +1.5.1 / 2016-05-30 +================= + * [Fix] `ES.IsRegExp`: actually look up `Symbol.match` on the argument + * [Refactor] create `isNaN` helper + * [Deps] update `is-callable`, `function-bind` + * [Deps] update `es-to-primitive`, fix ES5 tests + * [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config`, `tape`, `nsp` + * [Tests] up to `node` `v6.2`, `v5.11`, `v4.4` + * [Tests] use pretest/posttest for linting/security + +1.5.0 / 2015-12-27 +================= + * [New] adds `Symbol.toPrimitive` support via `es-to-primitive` + * [Deps] update `is-callable`, `es-to-primitive` + * [Dev Deps] update `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`, `tape` + * [Tests] up to `node` `v5.3` + +1.4.3 / 2015-11-04 +================= + * [Fix] `ES6.ToNumber`: should give `NaN` for explicitly signed hex strings (#4) + * [Refactor] `ES6.ToNumber`: No need to double-trim + * [Refactor] group tests better + * [Tests] should still pass on `node` `v0.8` + +1.4.2 / 2015-11-02 +================= + * [Fix] ensure `ES.ToNumber` trims whitespace, and does not trim non-whitespace (#3) + +1.4.1 / 2015-10-31 +================= + * [Fix] ensure only 0-1 are valid binary and 0-7 are valid octal digits (#2) + * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config` + * [Tests] on `node` `v5.0` + * [Tests] fix npm upgrades for older node versions + * package.json: use object form of "authors", add "contributors" + +1.4.0 / 2015-09-26 +================= + * [Deps] update `is-callable` + * [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` + * [Tests] on `node` `v4.2` + * [New] Add `SameValueNonNumber` to ES7 + +1.3.2 / 2015-09-26 +================= + * [Fix] Fix `ES6.IsRegExp` to properly handle `Symbol.match`, per spec. + * [Tests] up to `io.js` `v3.3`, `node` `v4.1` + * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` + +1.3.1 / 2015-08-15 +================= + * [Fix] Ensure that objects that `toString` to a binary or octal literal also convert properly + +1.3.0 / 2015-08-15 +================= + * [New] ES6’s ToNumber now supports binary and octal literals. + * [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config`, `tape` + * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG + * [Tests] up to `io.js` `v3.0` + +1.2.2 / 2015-07-28 +================= + * [Fix] Both `ES5.CheckObjectCoercible` and `ES6.RequireObjectCoercible` return the value if they don't throw. + * [Tests] Test on latest `io.js` versions. + * [Dev Deps] Update `eslint`, `jscs`, `tape`, `semver`, `covert`, `nsp` + +1.2.1 / 2015-03-20 +================= + * Fix `isFinite` helper. + +1.2.0 / 2015-03-19 +================= + * Use `es-to-primitive` for ToPrimitive methods. + * Test on latest `io.js` versions; allow failures on all but 2 latest `node`/`io.js` versions. + +1.1.2 / 2015-03-20 +================= + * Fix isFinite helper. + +1.1.1 / 2015-03-19 +================= + * Fix isPrimitive check for functions + * Update `eslint`, `editorconfig-tools`, `semver`, `nsp` + +1.1.0 / 2015-02-17 +================= + * Add ES7 export (non-default). + * All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. + * Test on `iojs-v1.2`. + +1.0.1 / 2015-01-30 +================= + * Use `is-callable` instead of an internal function. + * Update `tape`, `jscs`, `nsp`, `eslint` + +1.0.0 / 2015-01-10 +================= + * v1.0.0 diff --git a/node_modules/es-abstract/GetIntrinsic.js b/node_modules/es-abstract/GetIntrinsic.js new file mode 100644 index 0000000000000000000000000000000000000000..d7e67b47dc441e8d398ed25d8ab28eccedbabd5a --- /dev/null +++ b/node_modules/es-abstract/GetIntrinsic.js @@ -0,0 +1,5 @@ +'use strict'; + +// TODO: remove, semver-major + +module.exports = require('get-intrinsic'); diff --git a/node_modules/es-abstract/LICENSE b/node_modules/es-abstract/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..3f137ce0c3fc306a4d1dace0721253cf38b51535 --- /dev/null +++ b/node_modules/es-abstract/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (C) 2015 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/es-abstract/README.md b/node_modules/es-abstract/README.md new file mode 100644 index 0000000000000000000000000000000000000000..08f7b1c2a03fbd3911915c0e772858aa6bf21128 --- /dev/null +++ b/node_modules/es-abstract/README.md @@ -0,0 +1,43 @@ +# es-abstract [![Version Badge][npm-version-svg]][package-url] + +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +ECMAScript spec abstract operations. + +Every operation is available by edition/year and by name - for example, `es-abstract/2020/Call` gives you the `Call` operation from ES2020, `es-abstract/5/Type` gives you the `Type` operation from ES5. + +All abstract operations are also available under an `es5`/`es2015`/`es2016`/`es2017`/`es2018`/`es2019`/`es2020`/`es2021` entry point, and as a property on the `main` export, but using deep imports is highly encouraged for bundle size and performance reasons. Non-deep entry points will be removed in the next semver-major release. + +## Example + +```js +var ES = require('es-abstract'); +var assert = require('assert'); + +assert(ES.isCallable(function () {})); +assert(!ES.isCallable(/a/g)); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +[package-url]: https://npmjs.org/package/es-abstract +[npm-version-svg]: https://versionbadg.es/ljharb/es-abstract.svg +[deps-svg]: https://david-dm.org/ljharb/es-abstract.svg +[deps-url]: https://david-dm.org/ljharb/es-abstract +[dev-deps-svg]: https://david-dm.org/ljharb/es-abstract/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/es-abstract#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/es-abstract.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/es-abstract.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/es-abstract.svg +[downloads-url]: https://npm-stat.com/charts.html?package=es-abstract diff --git a/node_modules/es-abstract/es2015.js b/node_modules/es-abstract/es2015.js new file mode 100644 index 0000000000000000000000000000000000000000..20dc258f7d85e366690cbec92b1845bb2912370d --- /dev/null +++ b/node_modules/es-abstract/es2015.js @@ -0,0 +1,142 @@ +'use strict'; + +/* eslint global-require: 0 */ +// https://262.ecma-international.org/6.0/#sec-abstract-operations +var ES2015 = { + 'Abstract Equality Comparison': require('./2015/AbstractEqualityComparison'), + 'Abstract Relational Comparison': require('./2015/AbstractRelationalComparison'), + 'Strict Equality Comparison': require('./2015/StrictEqualityComparison'), + abs: require('./2015/abs'), + AdvanceStringIndex: require('./2015/AdvanceStringIndex'), + ArrayCreate: require('./2015/ArrayCreate'), + ArraySetLength: require('./2015/ArraySetLength'), + ArraySpeciesCreate: require('./2015/ArraySpeciesCreate'), + Call: require('./2015/Call'), + Canonicalize: require('./2015/Canonicalize'), + CanonicalNumericIndexString: require('./2015/CanonicalNumericIndexString'), + CharacterRange: require('./2015/CharacterRange'), + CompletePropertyDescriptor: require('./2015/CompletePropertyDescriptor'), + CompletionRecord: require('./2015/CompletionRecord'), + CreateDataProperty: require('./2015/CreateDataProperty'), + CreateDataPropertyOrThrow: require('./2015/CreateDataPropertyOrThrow'), + CreateHTML: require('./2015/CreateHTML'), + CreateIterResultObject: require('./2015/CreateIterResultObject'), + CreateListFromArrayLike: require('./2015/CreateListFromArrayLike'), + CreateMethodProperty: require('./2015/CreateMethodProperty'), + DateFromTime: require('./2015/DateFromTime'), + Day: require('./2015/Day'), + DayFromYear: require('./2015/DayFromYear'), + DaysInYear: require('./2015/DaysInYear'), + DayWithinYear: require('./2015/DayWithinYear'), + DefinePropertyOrThrow: require('./2015/DefinePropertyOrThrow'), + DeletePropertyOrThrow: require('./2015/DeletePropertyOrThrow'), + DetachArrayBuffer: require('./2015/DetachArrayBuffer'), + EnumerableOwnNames: require('./2015/EnumerableOwnNames'), + floor: require('./2015/floor'), + FromPropertyDescriptor: require('./2015/FromPropertyDescriptor'), + Get: require('./2015/Get'), + GetGlobalObject: require('./2015/GetGlobalObject'), + GetIterator: require('./2015/GetIterator'), + GetMethod: require('./2015/GetMethod'), + GetOwnPropertyKeys: require('./2015/GetOwnPropertyKeys'), + GetPrototypeFromConstructor: require('./2015/GetPrototypeFromConstructor'), + GetSubstitution: require('./2015/GetSubstitution'), + GetV: require('./2015/GetV'), + GetValueFromBuffer: require('./2015/GetValueFromBuffer'), + HasOwnProperty: require('./2015/HasOwnProperty'), + HasProperty: require('./2015/HasProperty'), + HourFromTime: require('./2015/HourFromTime'), + InLeapYear: require('./2015/InLeapYear'), + InstanceofOperator: require('./2015/InstanceofOperator'), + IntegerIndexedElementGet: require('./2015/IntegerIndexedElementGet'), + IntegerIndexedElementSet: require('./2015/IntegerIndexedElementSet'), + InternalizeJSONProperty: require('./2015/InternalizeJSONProperty'), + Invoke: require('./2015/Invoke'), + IsAccessorDescriptor: require('./2015/IsAccessorDescriptor'), + IsArray: require('./2015/IsArray'), + IsCallable: require('./2015/IsCallable'), + IsCompatiblePropertyDescriptor: require('./2015/IsCompatiblePropertyDescriptor'), + IsConcatSpreadable: require('./2015/IsConcatSpreadable'), + IsConstructor: require('./2015/IsConstructor'), + IsDataDescriptor: require('./2015/IsDataDescriptor'), + IsDetachedBuffer: require('./2015/IsDetachedBuffer'), + IsExtensible: require('./2015/IsExtensible'), + IsGenericDescriptor: require('./2015/IsGenericDescriptor'), + IsInteger: require('./2015/IsInteger'), + IsPromise: require('./2015/IsPromise'), + IsPropertyDescriptor: require('./2015/IsPropertyDescriptor'), + IsPropertyKey: require('./2015/IsPropertyKey'), + IsRegExp: require('./2015/IsRegExp'), + IsWordChar: require('./2015/IsWordChar'), + IteratorClose: require('./2015/IteratorClose'), + IteratorComplete: require('./2015/IteratorComplete'), + IteratorNext: require('./2015/IteratorNext'), + IteratorStep: require('./2015/IteratorStep'), + IteratorValue: require('./2015/IteratorValue'), + MakeDate: require('./2015/MakeDate'), + MakeDay: require('./2015/MakeDay'), + MakeTime: require('./2015/MakeTime'), + max: require('./2015/max'), + min: require('./2015/min'), + MinFromTime: require('./2015/MinFromTime'), + modulo: require('./2015/modulo'), + MonthFromTime: require('./2015/MonthFromTime'), + msFromTime: require('./2015/msFromTime'), + NewPromiseCapability: require('./2015/NewPromiseCapability'), + NormalCompletion: require('./2015/NormalCompletion'), + ObjectCreate: require('./2015/ObjectCreate'), + ObjectDefineProperties: require('./2015/ObjectDefineProperties'), + OrdinaryCreateFromConstructor: require('./2015/OrdinaryCreateFromConstructor'), + OrdinaryDefineOwnProperty: require('./2015/OrdinaryDefineOwnProperty'), + OrdinaryGetOwnProperty: require('./2015/OrdinaryGetOwnProperty'), + OrdinaryHasInstance: require('./2015/OrdinaryHasInstance'), + OrdinaryHasProperty: require('./2015/OrdinaryHasProperty'), + QuoteJSONString: require('./2015/QuoteJSONString'), + RegExpCreate: require('./2015/RegExpCreate'), + RegExpExec: require('./2015/RegExpExec'), + RequireObjectCoercible: require('./2015/RequireObjectCoercible'), + SameValue: require('./2015/SameValue'), + SameValueZero: require('./2015/SameValueZero'), + SecFromTime: require('./2015/SecFromTime'), + Set: require('./2015/Set'), + SetFunctionName: require('./2015/SetFunctionName'), + SetIntegrityLevel: require('./2015/SetIntegrityLevel'), + SetValueInBuffer: require('./2015/SetValueInBuffer'), + SpeciesConstructor: require('./2015/SpeciesConstructor'), + SplitMatch: require('./2015/SplitMatch'), + StringCreate: require('./2015/StringCreate'), + StringGetIndexProperty: require('./2015/StringGetIndexProperty'), + SymbolDescriptiveString: require('./2015/SymbolDescriptiveString'), + TestIntegrityLevel: require('./2015/TestIntegrityLevel'), + thisBooleanValue: require('./2015/thisBooleanValue'), + thisNumberValue: require('./2015/thisNumberValue'), + thisStringValue: require('./2015/thisStringValue'), + thisTimeValue: require('./2015/thisTimeValue'), + TimeClip: require('./2015/TimeClip'), + TimeFromYear: require('./2015/TimeFromYear'), + TimeWithinDay: require('./2015/TimeWithinDay'), + ToBoolean: require('./2015/ToBoolean'), + ToDateString: require('./2015/ToDateString'), + ToInt16: require('./2015/ToInt16'), + ToInt32: require('./2015/ToInt32'), + ToInt8: require('./2015/ToInt8'), + ToInteger: require('./2015/ToInteger'), + ToLength: require('./2015/ToLength'), + ToNumber: require('./2015/ToNumber'), + ToObject: require('./2015/ToObject'), + ToPrimitive: require('./2015/ToPrimitive'), + ToPropertyDescriptor: require('./2015/ToPropertyDescriptor'), + ToPropertyKey: require('./2015/ToPropertyKey'), + ToString: require('./2015/ToString'), + ToUint16: require('./2015/ToUint16'), + ToUint32: require('./2015/ToUint32'), + ToUint8: require('./2015/ToUint8'), + ToUint8Clamp: require('./2015/ToUint8Clamp'), + Type: require('./2015/Type'), + ValidateAndApplyPropertyDescriptor: require('./2015/ValidateAndApplyPropertyDescriptor'), + ValidateTypedArray: require('./2015/ValidateTypedArray'), + WeekDay: require('./2015/WeekDay'), + YearFromTime: require('./2015/YearFromTime') +}; + +module.exports = ES2015; diff --git a/node_modules/es-abstract/es2016.js b/node_modules/es-abstract/es2016.js new file mode 100644 index 0000000000000000000000000000000000000000..0c530ff975e4a46431fd7531cedf68078991b05e --- /dev/null +++ b/node_modules/es-abstract/es2016.js @@ -0,0 +1,149 @@ +'use strict'; + +/* eslint global-require: 0 */ +// https://262.ecma-international.org/7.0/#sec-abstract-operations +var ES2016 = { + 'Abstract Equality Comparison': require('./2016/AbstractEqualityComparison'), + 'Abstract Relational Comparison': require('./2016/AbstractRelationalComparison'), + 'Strict Equality Comparison': require('./2016/StrictEqualityComparison'), + abs: require('./2016/abs'), + AdvanceStringIndex: require('./2016/AdvanceStringIndex'), + ArrayCreate: require('./2016/ArrayCreate'), + ArraySetLength: require('./2016/ArraySetLength'), + ArraySpeciesCreate: require('./2016/ArraySpeciesCreate'), + Call: require('./2016/Call'), + Canonicalize: require('./2016/Canonicalize'), + CanonicalNumericIndexString: require('./2016/CanonicalNumericIndexString'), + CharacterRange: require('./2016/CharacterRange'), + CompletePropertyDescriptor: require('./2016/CompletePropertyDescriptor'), + CompletionRecord: require('./2016/CompletionRecord'), + CreateDataProperty: require('./2016/CreateDataProperty'), + CreateDataPropertyOrThrow: require('./2016/CreateDataPropertyOrThrow'), + CreateHTML: require('./2016/CreateHTML'), + CreateIterResultObject: require('./2016/CreateIterResultObject'), + CreateListFromArrayLike: require('./2016/CreateListFromArrayLike'), + CreateMethodProperty: require('./2016/CreateMethodProperty'), + DateFromTime: require('./2016/DateFromTime'), + Day: require('./2016/Day'), + DayFromYear: require('./2016/DayFromYear'), + DaysInYear: require('./2016/DaysInYear'), + DayWithinYear: require('./2016/DayWithinYear'), + DefinePropertyOrThrow: require('./2016/DefinePropertyOrThrow'), + DeletePropertyOrThrow: require('./2016/DeletePropertyOrThrow'), + DetachArrayBuffer: require('./2016/DetachArrayBuffer'), + EnumerableOwnNames: require('./2016/EnumerableOwnNames'), + floor: require('./2016/floor'), + FromPropertyDescriptor: require('./2016/FromPropertyDescriptor'), + Get: require('./2016/Get'), + GetGlobalObject: require('./2016/GetGlobalObject'), + GetIterator: require('./2016/GetIterator'), + GetMethod: require('./2016/GetMethod'), + GetOwnPropertyKeys: require('./2016/GetOwnPropertyKeys'), + GetPrototypeFromConstructor: require('./2016/GetPrototypeFromConstructor'), + GetSubstitution: require('./2016/GetSubstitution'), + GetV: require('./2016/GetV'), + GetValueFromBuffer: require('./2016/GetValueFromBuffer'), + HasOwnProperty: require('./2016/HasOwnProperty'), + HasProperty: require('./2016/HasProperty'), + HourFromTime: require('./2016/HourFromTime'), + InLeapYear: require('./2016/InLeapYear'), + InstanceofOperator: require('./2016/InstanceofOperator'), + IntegerIndexedElementGet: require('./2016/IntegerIndexedElementGet'), + IntegerIndexedElementSet: require('./2016/IntegerIndexedElementSet'), + InternalizeJSONProperty: require('./2016/InternalizeJSONProperty'), + Invoke: require('./2016/Invoke'), + IsAccessorDescriptor: require('./2016/IsAccessorDescriptor'), + IsArray: require('./2016/IsArray'), + IsCallable: require('./2016/IsCallable'), + IsCompatiblePropertyDescriptor: require('./2016/IsCompatiblePropertyDescriptor'), + IsConcatSpreadable: require('./2016/IsConcatSpreadable'), + IsConstructor: require('./2016/IsConstructor'), + IsDataDescriptor: require('./2016/IsDataDescriptor'), + IsDetachedBuffer: require('./2016/IsDetachedBuffer'), + IsExtensible: require('./2016/IsExtensible'), + IsGenericDescriptor: require('./2016/IsGenericDescriptor'), + IsInteger: require('./2016/IsInteger'), + IsPromise: require('./2016/IsPromise'), + IsPropertyDescriptor: require('./2016/IsPropertyDescriptor'), + IsPropertyKey: require('./2016/IsPropertyKey'), + IsRegExp: require('./2016/IsRegExp'), + IsWordChar: require('./2016/IsWordChar'), + IterableToArrayLike: require('./2016/IterableToArrayLike'), + IteratorClose: require('./2016/IteratorClose'), + IteratorComplete: require('./2016/IteratorComplete'), + IteratorNext: require('./2016/IteratorNext'), + IteratorStep: require('./2016/IteratorStep'), + IteratorValue: require('./2016/IteratorValue'), + MakeDate: require('./2016/MakeDate'), + MakeDay: require('./2016/MakeDay'), + MakeTime: require('./2016/MakeTime'), + max: require('./2016/max'), + min: require('./2016/min'), + MinFromTime: require('./2016/MinFromTime'), + modulo: require('./2016/modulo'), + MonthFromTime: require('./2016/MonthFromTime'), + msFromTime: require('./2016/msFromTime'), + NewPromiseCapability: require('./2016/NewPromiseCapability'), + NormalCompletion: require('./2016/NormalCompletion'), + ObjectCreate: require('./2016/ObjectCreate'), + ObjectDefineProperties: require('./2016/ObjectDefineProperties'), + OrdinaryCreateFromConstructor: require('./2016/OrdinaryCreateFromConstructor'), + OrdinaryDefineOwnProperty: require('./2016/OrdinaryDefineOwnProperty'), + OrdinaryGetOwnProperty: require('./2016/OrdinaryGetOwnProperty'), + OrdinaryGetPrototypeOf: require('./2016/OrdinaryGetPrototypeOf'), + OrdinaryHasInstance: require('./2016/OrdinaryHasInstance'), + OrdinaryHasProperty: require('./2016/OrdinaryHasProperty'), + OrdinarySetPrototypeOf: require('./2016/OrdinarySetPrototypeOf'), + QuoteJSONString: require('./2016/QuoteJSONString'), + RegExpCreate: require('./2016/RegExpCreate'), + RegExpExec: require('./2016/RegExpExec'), + RequireObjectCoercible: require('./2016/RequireObjectCoercible'), + SameValue: require('./2016/SameValue'), + SameValueNonNumber: require('./2016/SameValueNonNumber'), + SameValueZero: require('./2016/SameValueZero'), + SecFromTime: require('./2016/SecFromTime'), + Set: require('./2016/Set'), + SetFunctionName: require('./2016/SetFunctionName'), + SetIntegrityLevel: require('./2016/SetIntegrityLevel'), + SetValueInBuffer: require('./2016/SetValueInBuffer'), + SpeciesConstructor: require('./2016/SpeciesConstructor'), + SplitMatch: require('./2016/SplitMatch'), + StringCreate: require('./2016/StringCreate'), + SymbolDescriptiveString: require('./2016/SymbolDescriptiveString'), + TestIntegrityLevel: require('./2016/TestIntegrityLevel'), + thisBooleanValue: require('./2016/thisBooleanValue'), + thisNumberValue: require('./2016/thisNumberValue'), + thisStringValue: require('./2016/thisStringValue'), + thisTimeValue: require('./2016/thisTimeValue'), + TimeClip: require('./2016/TimeClip'), + TimeFromYear: require('./2016/TimeFromYear'), + TimeWithinDay: require('./2016/TimeWithinDay'), + ToBoolean: require('./2016/ToBoolean'), + ToDateString: require('./2016/ToDateString'), + ToInt16: require('./2016/ToInt16'), + ToInt32: require('./2016/ToInt32'), + ToInt8: require('./2016/ToInt8'), + ToInteger: require('./2016/ToInteger'), + ToLength: require('./2016/ToLength'), + ToNumber: require('./2016/ToNumber'), + ToObject: require('./2016/ToObject'), + ToPrimitive: require('./2016/ToPrimitive'), + ToPropertyDescriptor: require('./2016/ToPropertyDescriptor'), + ToPropertyKey: require('./2016/ToPropertyKey'), + ToString: require('./2016/ToString'), + ToUint16: require('./2016/ToUint16'), + ToUint32: require('./2016/ToUint32'), + ToUint8: require('./2016/ToUint8'), + ToUint8Clamp: require('./2016/ToUint8Clamp'), + Type: require('./2016/Type'), + TypedArrayCreate: require('./2016/TypedArrayCreate'), + TypedArraySpeciesCreate: require('./2016/TypedArraySpeciesCreate'), + UTF16Decode: require('./2016/UTF16Decode'), + UTF16Encoding: require('./2016/UTF16Encoding'), + ValidateAndApplyPropertyDescriptor: require('./2016/ValidateAndApplyPropertyDescriptor'), + ValidateTypedArray: require('./2016/ValidateTypedArray'), + WeekDay: require('./2016/WeekDay'), + YearFromTime: require('./2016/YearFromTime') +}; + +module.exports = ES2016; diff --git a/node_modules/es-abstract/es2017.js b/node_modules/es-abstract/es2017.js new file mode 100644 index 0000000000000000000000000000000000000000..8de405b134c8bbfdf52f552bcff8d9961ce1872f --- /dev/null +++ b/node_modules/es-abstract/es2017.js @@ -0,0 +1,157 @@ +'use strict'; + +/* eslint global-require: 0 */ +// https://262.ecma-international.org/8.0/#sec-abstract-operations +var ES2017 = { + 'Abstract Equality Comparison': require('./2017/AbstractEqualityComparison'), + 'Abstract Relational Comparison': require('./2017/AbstractRelationalComparison'), + 'Strict Equality Comparison': require('./2017/StrictEqualityComparison'), + abs: require('./2017/abs'), + AdvanceStringIndex: require('./2017/AdvanceStringIndex'), + ArrayCreate: require('./2017/ArrayCreate'), + ArraySetLength: require('./2017/ArraySetLength'), + ArraySpeciesCreate: require('./2017/ArraySpeciesCreate'), + Call: require('./2017/Call'), + Canonicalize: require('./2017/Canonicalize'), + CanonicalNumericIndexString: require('./2017/CanonicalNumericIndexString'), + CharacterRange: require('./2017/CharacterRange'), + CompletePropertyDescriptor: require('./2017/CompletePropertyDescriptor'), + CompletionRecord: require('./2017/CompletionRecord'), + CreateDataProperty: require('./2017/CreateDataProperty'), + CreateDataPropertyOrThrow: require('./2017/CreateDataPropertyOrThrow'), + CreateHTML: require('./2017/CreateHTML'), + CreateIterResultObject: require('./2017/CreateIterResultObject'), + CreateListFromArrayLike: require('./2017/CreateListFromArrayLike'), + CreateMethodProperty: require('./2017/CreateMethodProperty'), + DateFromTime: require('./2017/DateFromTime'), + Day: require('./2017/Day'), + DayFromYear: require('./2017/DayFromYear'), + DaysInYear: require('./2017/DaysInYear'), + DayWithinYear: require('./2017/DayWithinYear'), + DefinePropertyOrThrow: require('./2017/DefinePropertyOrThrow'), + DeletePropertyOrThrow: require('./2017/DeletePropertyOrThrow'), + DetachArrayBuffer: require('./2017/DetachArrayBuffer'), + EnumerableOwnProperties: require('./2017/EnumerableOwnProperties'), + floor: require('./2017/floor'), + FromPropertyDescriptor: require('./2017/FromPropertyDescriptor'), + Get: require('./2017/Get'), + GetGlobalObject: require('./2017/GetGlobalObject'), + GetIterator: require('./2017/GetIterator'), + GetMethod: require('./2017/GetMethod'), + GetOwnPropertyKeys: require('./2017/GetOwnPropertyKeys'), + GetPrototypeFromConstructor: require('./2017/GetPrototypeFromConstructor'), + GetSubstitution: require('./2017/GetSubstitution'), + GetV: require('./2017/GetV'), + GetValueFromBuffer: require('./2017/GetValueFromBuffer'), + HasOwnProperty: require('./2017/HasOwnProperty'), + HasProperty: require('./2017/HasProperty'), + HourFromTime: require('./2017/HourFromTime'), + InLeapYear: require('./2017/InLeapYear'), + InstanceofOperator: require('./2017/InstanceofOperator'), + IntegerIndexedElementGet: require('./2017/IntegerIndexedElementGet'), + IntegerIndexedElementSet: require('./2017/IntegerIndexedElementSet'), + InternalizeJSONProperty: require('./2017/InternalizeJSONProperty'), + Invoke: require('./2017/Invoke'), + IsAccessorDescriptor: require('./2017/IsAccessorDescriptor'), + IsArray: require('./2017/IsArray'), + IsCallable: require('./2017/IsCallable'), + IsCompatiblePropertyDescriptor: require('./2017/IsCompatiblePropertyDescriptor'), + IsConcatSpreadable: require('./2017/IsConcatSpreadable'), + IsConstructor: require('./2017/IsConstructor'), + IsDataDescriptor: require('./2017/IsDataDescriptor'), + IsDetachedBuffer: require('./2017/IsDetachedBuffer'), + IsExtensible: require('./2017/IsExtensible'), + IsGenericDescriptor: require('./2017/IsGenericDescriptor'), + IsInteger: require('./2017/IsInteger'), + IsPromise: require('./2017/IsPromise'), + IsPropertyDescriptor: require('./2017/IsPropertyDescriptor'), + IsPropertyKey: require('./2017/IsPropertyKey'), + IsRegExp: require('./2017/IsRegExp'), + IsSharedArrayBuffer: require('./2017/IsSharedArrayBuffer'), + IsWordChar: require('./2017/IsWordChar'), + IterableToList: require('./2017/IterableToList'), + IteratorClose: require('./2017/IteratorClose'), + IteratorComplete: require('./2017/IteratorComplete'), + IteratorNext: require('./2017/IteratorNext'), + IteratorStep: require('./2017/IteratorStep'), + IteratorValue: require('./2017/IteratorValue'), + MakeDate: require('./2017/MakeDate'), + MakeDay: require('./2017/MakeDay'), + MakeTime: require('./2017/MakeTime'), + max: require('./2017/max'), + min: require('./2017/min'), + MinFromTime: require('./2017/MinFromTime'), + modulo: require('./2017/modulo'), + MonthFromTime: require('./2017/MonthFromTime'), + msFromTime: require('./2017/msFromTime'), + NewPromiseCapability: require('./2017/NewPromiseCapability'), + NormalCompletion: require('./2017/NormalCompletion'), + NumberToRawBytes: require('./2017/NumberToRawBytes'), + ObjectCreate: require('./2017/ObjectCreate'), + ObjectDefineProperties: require('./2017/ObjectDefineProperties'), + OrdinaryCreateFromConstructor: require('./2017/OrdinaryCreateFromConstructor'), + OrdinaryDefineOwnProperty: require('./2017/OrdinaryDefineOwnProperty'), + OrdinaryGetOwnProperty: require('./2017/OrdinaryGetOwnProperty'), + OrdinaryGetPrototypeOf: require('./2017/OrdinaryGetPrototypeOf'), + OrdinaryHasInstance: require('./2017/OrdinaryHasInstance'), + OrdinaryHasProperty: require('./2017/OrdinaryHasProperty'), + OrdinarySetPrototypeOf: require('./2017/OrdinarySetPrototypeOf'), + OrdinaryToPrimitive: require('./2017/OrdinaryToPrimitive'), + QuoteJSONString: require('./2017/QuoteJSONString'), + RawBytesToNumber: require('./2017/RawBytesToNumber'), + RegExpCreate: require('./2017/RegExpCreate'), + RegExpExec: require('./2017/RegExpExec'), + RequireObjectCoercible: require('./2017/RequireObjectCoercible'), + SameValue: require('./2017/SameValue'), + SameValueNonNumber: require('./2017/SameValueNonNumber'), + SameValueZero: require('./2017/SameValueZero'), + SecFromTime: require('./2017/SecFromTime'), + Set: require('./2017/Set'), + SetFunctionName: require('./2017/SetFunctionName'), + SetIntegrityLevel: require('./2017/SetIntegrityLevel'), + SetValueInBuffer: require('./2017/SetValueInBuffer'), + SpeciesConstructor: require('./2017/SpeciesConstructor'), + SplitMatch: require('./2017/SplitMatch'), + StringCreate: require('./2017/StringCreate'), + StringGetOwnProperty: require('./2017/StringGetOwnProperty'), + SymbolDescriptiveString: require('./2017/SymbolDescriptiveString'), + TestIntegrityLevel: require('./2017/TestIntegrityLevel'), + thisBooleanValue: require('./2017/thisBooleanValue'), + thisNumberValue: require('./2017/thisNumberValue'), + thisStringValue: require('./2017/thisStringValue'), + thisTimeValue: require('./2017/thisTimeValue'), + TimeClip: require('./2017/TimeClip'), + TimeFromYear: require('./2017/TimeFromYear'), + TimeWithinDay: require('./2017/TimeWithinDay'), + ToBoolean: require('./2017/ToBoolean'), + ToDateString: require('./2017/ToDateString'), + ToIndex: require('./2017/ToIndex'), + ToInt16: require('./2017/ToInt16'), + ToInt32: require('./2017/ToInt32'), + ToInt8: require('./2017/ToInt8'), + ToInteger: require('./2017/ToInteger'), + ToLength: require('./2017/ToLength'), + ToNumber: require('./2017/ToNumber'), + ToObject: require('./2017/ToObject'), + ToPrimitive: require('./2017/ToPrimitive'), + ToPropertyDescriptor: require('./2017/ToPropertyDescriptor'), + ToPropertyKey: require('./2017/ToPropertyKey'), + ToString: require('./2017/ToString'), + ToUint16: require('./2017/ToUint16'), + ToUint32: require('./2017/ToUint32'), + ToUint8: require('./2017/ToUint8'), + ToUint8Clamp: require('./2017/ToUint8Clamp'), + Type: require('./2017/Type'), + TypedArrayCreate: require('./2017/TypedArrayCreate'), + TypedArraySpeciesCreate: require('./2017/TypedArraySpeciesCreate'), + UTF16Decode: require('./2017/UTF16Decode'), + UTF16Encoding: require('./2017/UTF16Encoding'), + ValidateAndApplyPropertyDescriptor: require('./2017/ValidateAndApplyPropertyDescriptor'), + ValidateAtomicAccess: require('./2017/ValidateAtomicAccess'), + ValidateTypedArray: require('./2017/ValidateTypedArray'), + WeekDay: require('./2017/WeekDay'), + WordCharacters: require('./2017/WordCharacters'), + YearFromTime: require('./2017/YearFromTime') +}; + +module.exports = ES2017; diff --git a/node_modules/es-abstract/es2018.js b/node_modules/es-abstract/es2018.js new file mode 100644 index 0000000000000000000000000000000000000000..e723401ecb6ea07838c4a3a425e3ba59da972bd1 --- /dev/null +++ b/node_modules/es-abstract/es2018.js @@ -0,0 +1,169 @@ +'use strict'; + +/* eslint global-require: 0 */ +// https://262.ecma-international.org/9.0/#sec-abstract-operations +var ES2018 = { + 'Abstract Equality Comparison': require('./2018/AbstractEqualityComparison'), + 'Abstract Relational Comparison': require('./2018/AbstractRelationalComparison'), + 'Strict Equality Comparison': require('./2018/StrictEqualityComparison'), + abs: require('./2018/abs'), + AdvanceStringIndex: require('./2018/AdvanceStringIndex'), + ArrayCreate: require('./2018/ArrayCreate'), + ArraySetLength: require('./2018/ArraySetLength'), + ArraySpeciesCreate: require('./2018/ArraySpeciesCreate'), + AsyncIteratorClose: require('./2018/AsyncIteratorClose'), + Call: require('./2018/Call'), + Canonicalize: require('./2018/Canonicalize'), + CanonicalNumericIndexString: require('./2018/CanonicalNumericIndexString'), + CharacterRange: require('./2018/CharacterRange'), + CompletePropertyDescriptor: require('./2018/CompletePropertyDescriptor'), + CompletionRecord: require('./2018/CompletionRecord'), + CopyDataProperties: require('./2018/CopyDataProperties'), + CreateAsyncFromSyncIterator: require('./2018/CreateAsyncFromSyncIterator'), + CreateDataProperty: require('./2018/CreateDataProperty'), + CreateDataPropertyOrThrow: require('./2018/CreateDataPropertyOrThrow'), + CreateHTML: require('./2018/CreateHTML'), + CreateIterResultObject: require('./2018/CreateIterResultObject'), + CreateListFromArrayLike: require('./2018/CreateListFromArrayLike'), + CreateMethodProperty: require('./2018/CreateMethodProperty'), + DateFromTime: require('./2018/DateFromTime'), + DateString: require('./2018/DateString'), + Day: require('./2018/Day'), + DayFromYear: require('./2018/DayFromYear'), + DaysInYear: require('./2018/DaysInYear'), + DayWithinYear: require('./2018/DayWithinYear'), + DefinePropertyOrThrow: require('./2018/DefinePropertyOrThrow'), + DeletePropertyOrThrow: require('./2018/DeletePropertyOrThrow'), + DetachArrayBuffer: require('./2018/DetachArrayBuffer'), + EnumerableOwnPropertyNames: require('./2018/EnumerableOwnPropertyNames'), + floor: require('./2018/floor'), + FromPropertyDescriptor: require('./2018/FromPropertyDescriptor'), + Get: require('./2018/Get'), + GetGlobalObject: require('./2018/GetGlobalObject'), + GetIterator: require('./2018/GetIterator'), + GetMethod: require('./2018/GetMethod'), + GetOwnPropertyKeys: require('./2018/GetOwnPropertyKeys'), + GetPrototypeFromConstructor: require('./2018/GetPrototypeFromConstructor'), + GetSubstitution: require('./2018/GetSubstitution'), + GetV: require('./2018/GetV'), + GetValueFromBuffer: require('./2018/GetValueFromBuffer'), + HasOwnProperty: require('./2018/HasOwnProperty'), + HasProperty: require('./2018/HasProperty'), + HourFromTime: require('./2018/HourFromTime'), + InLeapYear: require('./2018/InLeapYear'), + InstanceofOperator: require('./2018/InstanceofOperator'), + IntegerIndexedElementGet: require('./2018/IntegerIndexedElementGet'), + IntegerIndexedElementSet: require('./2018/IntegerIndexedElementSet'), + InternalizeJSONProperty: require('./2018/InternalizeJSONProperty'), + Invoke: require('./2018/Invoke'), + IsAccessorDescriptor: require('./2018/IsAccessorDescriptor'), + IsArray: require('./2018/IsArray'), + IsCallable: require('./2018/IsCallable'), + IsCompatiblePropertyDescriptor: require('./2018/IsCompatiblePropertyDescriptor'), + IsConcatSpreadable: require('./2018/IsConcatSpreadable'), + IsConstructor: require('./2018/IsConstructor'), + IsDataDescriptor: require('./2018/IsDataDescriptor'), + IsDetachedBuffer: require('./2018/IsDetachedBuffer'), + IsExtensible: require('./2018/IsExtensible'), + IsGenericDescriptor: require('./2018/IsGenericDescriptor'), + IsInteger: require('./2018/IsInteger'), + IsPromise: require('./2018/IsPromise'), + IsPropertyKey: require('./2018/IsPropertyKey'), + IsRegExp: require('./2018/IsRegExp'), + IsSharedArrayBuffer: require('./2018/IsSharedArrayBuffer'), + IsStringPrefix: require('./2018/IsStringPrefix'), + IsWordChar: require('./2018/IsWordChar'), + IterableToList: require('./2018/IterableToList'), + IteratorClose: require('./2018/IteratorClose'), + IteratorComplete: require('./2018/IteratorComplete'), + IteratorNext: require('./2018/IteratorNext'), + IteratorStep: require('./2018/IteratorStep'), + IteratorValue: require('./2018/IteratorValue'), + MakeDate: require('./2018/MakeDate'), + MakeDay: require('./2018/MakeDay'), + MakeTime: require('./2018/MakeTime'), + max: require('./2018/max'), + min: require('./2018/min'), + MinFromTime: require('./2018/MinFromTime'), + modulo: require('./2018/modulo'), + MonthFromTime: require('./2018/MonthFromTime'), + msFromTime: require('./2018/msFromTime'), + NewPromiseCapability: require('./2018/NewPromiseCapability'), + NormalCompletion: require('./2018/NormalCompletion'), + NumberToRawBytes: require('./2018/NumberToRawBytes'), + NumberToString: require('./2018/NumberToString'), + ObjectCreate: require('./2018/ObjectCreate'), + ObjectDefineProperties: require('./2018/ObjectDefineProperties'), + OrdinaryCreateFromConstructor: require('./2018/OrdinaryCreateFromConstructor'), + OrdinaryDefineOwnProperty: require('./2018/OrdinaryDefineOwnProperty'), + OrdinaryGetOwnProperty: require('./2018/OrdinaryGetOwnProperty'), + OrdinaryGetPrototypeOf: require('./2018/OrdinaryGetPrototypeOf'), + OrdinaryHasInstance: require('./2018/OrdinaryHasInstance'), + OrdinaryHasProperty: require('./2018/OrdinaryHasProperty'), + OrdinarySetPrototypeOf: require('./2018/OrdinarySetPrototypeOf'), + OrdinaryToPrimitive: require('./2018/OrdinaryToPrimitive'), + PromiseResolve: require('./2018/PromiseResolve'), + QuoteJSONString: require('./2018/QuoteJSONString'), + RawBytesToNumber: require('./2018/RawBytesToNumber'), + RegExpCreate: require('./2018/RegExpCreate'), + RegExpExec: require('./2018/RegExpExec'), + RequireObjectCoercible: require('./2018/RequireObjectCoercible'), + SameValue: require('./2018/SameValue'), + SameValueNonNumber: require('./2018/SameValueNonNumber'), + SameValueZero: require('./2018/SameValueZero'), + SecFromTime: require('./2018/SecFromTime'), + Set: require('./2018/Set'), + SetFunctionLength: require('./2018/SetFunctionLength'), + SetFunctionName: require('./2018/SetFunctionName'), + SetIntegrityLevel: require('./2018/SetIntegrityLevel'), + SetValueInBuffer: require('./2018/SetValueInBuffer'), + SpeciesConstructor: require('./2018/SpeciesConstructor'), + SplitMatch: require('./2018/SplitMatch'), + StringCreate: require('./2018/StringCreate'), + StringGetOwnProperty: require('./2018/StringGetOwnProperty'), + SymbolDescriptiveString: require('./2018/SymbolDescriptiveString'), + TestIntegrityLevel: require('./2018/TestIntegrityLevel'), + thisBooleanValue: require('./2018/thisBooleanValue'), + thisNumberValue: require('./2018/thisNumberValue'), + thisStringValue: require('./2018/thisStringValue'), + thisSymbolValue: require('./2018/thisSymbolValue'), + thisTimeValue: require('./2018/thisTimeValue'), + ThrowCompletion: require('./2018/ThrowCompletion'), + TimeClip: require('./2018/TimeClip'), + TimeFromYear: require('./2018/TimeFromYear'), + TimeString: require('./2018/TimeString'), + TimeWithinDay: require('./2018/TimeWithinDay'), + TimeZoneString: require('./2018/TimeZoneString'), + ToBoolean: require('./2018/ToBoolean'), + ToDateString: require('./2018/ToDateString'), + ToIndex: require('./2018/ToIndex'), + ToInt16: require('./2018/ToInt16'), + ToInt32: require('./2018/ToInt32'), + ToInt8: require('./2018/ToInt8'), + ToInteger: require('./2018/ToInteger'), + ToLength: require('./2018/ToLength'), + ToNumber: require('./2018/ToNumber'), + ToObject: require('./2018/ToObject'), + ToPrimitive: require('./2018/ToPrimitive'), + ToPropertyDescriptor: require('./2018/ToPropertyDescriptor'), + ToPropertyKey: require('./2018/ToPropertyKey'), + ToString: require('./2018/ToString'), + ToUint16: require('./2018/ToUint16'), + ToUint32: require('./2018/ToUint32'), + ToUint8: require('./2018/ToUint8'), + ToUint8Clamp: require('./2018/ToUint8Clamp'), + Type: require('./2018/Type'), + TypedArrayCreate: require('./2018/TypedArrayCreate'), + TypedArraySpeciesCreate: require('./2018/TypedArraySpeciesCreate'), + UnicodeEscape: require('./2018/UnicodeEscape'), + UTF16Decode: require('./2018/UTF16Decode'), + UTF16Encoding: require('./2018/UTF16Encoding'), + ValidateAndApplyPropertyDescriptor: require('./2018/ValidateAndApplyPropertyDescriptor'), + ValidateAtomicAccess: require('./2018/ValidateAtomicAccess'), + ValidateTypedArray: require('./2018/ValidateTypedArray'), + WeekDay: require('./2018/WeekDay'), + WordCharacters: require('./2018/WordCharacters'), + YearFromTime: require('./2018/YearFromTime') +}; + +module.exports = ES2018; diff --git a/node_modules/es-abstract/es2019.js b/node_modules/es-abstract/es2019.js new file mode 100644 index 0000000000000000000000000000000000000000..25ae3c80d33d027fecf5eecf6df587405619ccdd --- /dev/null +++ b/node_modules/es-abstract/es2019.js @@ -0,0 +1,173 @@ +'use strict'; + +/* eslint global-require: 0 */ +// https://262.ecma-international.org/10.0/#sec-abstract-operations +var ES2019 = { + 'Abstract Equality Comparison': require('./2019/AbstractEqualityComparison'), + 'Abstract Relational Comparison': require('./2019/AbstractRelationalComparison'), + 'Strict Equality Comparison': require('./2019/StrictEqualityComparison'), + abs: require('./2019/abs'), + AddEntriesFromIterable: require('./2019/AddEntriesFromIterable'), + AdvanceStringIndex: require('./2019/AdvanceStringIndex'), + ArrayCreate: require('./2019/ArrayCreate'), + ArraySetLength: require('./2019/ArraySetLength'), + ArraySpeciesCreate: require('./2019/ArraySpeciesCreate'), + AsyncFromSyncIteratorContinuation: require('./2019/AsyncFromSyncIteratorContinuation'), + AsyncIteratorClose: require('./2019/AsyncIteratorClose'), + Call: require('./2019/Call'), + Canonicalize: require('./2019/Canonicalize'), + CanonicalNumericIndexString: require('./2019/CanonicalNumericIndexString'), + CharacterRange: require('./2019/CharacterRange'), + CompletePropertyDescriptor: require('./2019/CompletePropertyDescriptor'), + CompletionRecord: require('./2019/CompletionRecord'), + CopyDataProperties: require('./2019/CopyDataProperties'), + CreateAsyncFromSyncIterator: require('./2019/CreateAsyncFromSyncIterator'), + CreateDataProperty: require('./2019/CreateDataProperty'), + CreateDataPropertyOrThrow: require('./2019/CreateDataPropertyOrThrow'), + CreateHTML: require('./2019/CreateHTML'), + CreateIterResultObject: require('./2019/CreateIterResultObject'), + CreateListFromArrayLike: require('./2019/CreateListFromArrayLike'), + CreateMethodProperty: require('./2019/CreateMethodProperty'), + DateFromTime: require('./2019/DateFromTime'), + DateString: require('./2019/DateString'), + Day: require('./2019/Day'), + DayFromYear: require('./2019/DayFromYear'), + DaysInYear: require('./2019/DaysInYear'), + DayWithinYear: require('./2019/DayWithinYear'), + DefinePropertyOrThrow: require('./2019/DefinePropertyOrThrow'), + DeletePropertyOrThrow: require('./2019/DeletePropertyOrThrow'), + DetachArrayBuffer: require('./2019/DetachArrayBuffer'), + EnumerableOwnPropertyNames: require('./2019/EnumerableOwnPropertyNames'), + FlattenIntoArray: require('./2019/FlattenIntoArray'), + floor: require('./2019/floor'), + FromPropertyDescriptor: require('./2019/FromPropertyDescriptor'), + Get: require('./2019/Get'), + GetGlobalObject: require('./2019/GetGlobalObject'), + GetIterator: require('./2019/GetIterator'), + GetMethod: require('./2019/GetMethod'), + GetOwnPropertyKeys: require('./2019/GetOwnPropertyKeys'), + GetPrototypeFromConstructor: require('./2019/GetPrototypeFromConstructor'), + GetSubstitution: require('./2019/GetSubstitution'), + GetV: require('./2019/GetV'), + GetValueFromBuffer: require('./2019/GetValueFromBuffer'), + HasOwnProperty: require('./2019/HasOwnProperty'), + HasProperty: require('./2019/HasProperty'), + HourFromTime: require('./2019/HourFromTime'), + InLeapYear: require('./2019/InLeapYear'), + InstanceofOperator: require('./2019/InstanceofOperator'), + IntegerIndexedElementGet: require('./2019/IntegerIndexedElementGet'), + IntegerIndexedElementSet: require('./2019/IntegerIndexedElementSet'), + InternalizeJSONProperty: require('./2019/InternalizeJSONProperty'), + Invoke: require('./2019/Invoke'), + IsAccessorDescriptor: require('./2019/IsAccessorDescriptor'), + IsArray: require('./2019/IsArray'), + IsCallable: require('./2019/IsCallable'), + IsCompatiblePropertyDescriptor: require('./2019/IsCompatiblePropertyDescriptor'), + IsConcatSpreadable: require('./2019/IsConcatSpreadable'), + IsConstructor: require('./2019/IsConstructor'), + IsDataDescriptor: require('./2019/IsDataDescriptor'), + IsDetachedBuffer: require('./2019/IsDetachedBuffer'), + IsExtensible: require('./2019/IsExtensible'), + IsGenericDescriptor: require('./2019/IsGenericDescriptor'), + IsInteger: require('./2019/IsInteger'), + IsPromise: require('./2019/IsPromise'), + IsPropertyKey: require('./2019/IsPropertyKey'), + IsRegExp: require('./2019/IsRegExp'), + IsSharedArrayBuffer: require('./2019/IsSharedArrayBuffer'), + IsStringPrefix: require('./2019/IsStringPrefix'), + IsWordChar: require('./2019/IsWordChar'), + IterableToList: require('./2019/IterableToList'), + IteratorClose: require('./2019/IteratorClose'), + IteratorComplete: require('./2019/IteratorComplete'), + IteratorNext: require('./2019/IteratorNext'), + IteratorStep: require('./2019/IteratorStep'), + IteratorValue: require('./2019/IteratorValue'), + MakeDate: require('./2019/MakeDate'), + MakeDay: require('./2019/MakeDay'), + MakeTime: require('./2019/MakeTime'), + max: require('./2019/max'), + min: require('./2019/min'), + MinFromTime: require('./2019/MinFromTime'), + modulo: require('./2019/modulo'), + MonthFromTime: require('./2019/MonthFromTime'), + msFromTime: require('./2019/msFromTime'), + NewPromiseCapability: require('./2019/NewPromiseCapability'), + NormalCompletion: require('./2019/NormalCompletion'), + NumberToRawBytes: require('./2019/NumberToRawBytes'), + NumberToString: require('./2019/NumberToString'), + ObjectCreate: require('./2019/ObjectCreate'), + ObjectDefineProperties: require('./2019/ObjectDefineProperties'), + OrdinaryCreateFromConstructor: require('./2019/OrdinaryCreateFromConstructor'), + OrdinaryDefineOwnProperty: require('./2019/OrdinaryDefineOwnProperty'), + OrdinaryGetOwnProperty: require('./2019/OrdinaryGetOwnProperty'), + OrdinaryGetPrototypeOf: require('./2019/OrdinaryGetPrototypeOf'), + OrdinaryHasInstance: require('./2019/OrdinaryHasInstance'), + OrdinaryHasProperty: require('./2019/OrdinaryHasProperty'), + OrdinarySetPrototypeOf: require('./2019/OrdinarySetPrototypeOf'), + OrdinaryToPrimitive: require('./2019/OrdinaryToPrimitive'), + PromiseResolve: require('./2019/PromiseResolve'), + QuoteJSONString: require('./2019/QuoteJSONString'), + RawBytesToNumber: require('./2019/RawBytesToNumber'), + RegExpCreate: require('./2019/RegExpCreate'), + RegExpExec: require('./2019/RegExpExec'), + RequireObjectCoercible: require('./2019/RequireObjectCoercible'), + SameValue: require('./2019/SameValue'), + SameValueNonNumber: require('./2019/SameValueNonNumber'), + SameValueZero: require('./2019/SameValueZero'), + SecFromTime: require('./2019/SecFromTime'), + Set: require('./2019/Set'), + SetFunctionLength: require('./2019/SetFunctionLength'), + SetFunctionName: require('./2019/SetFunctionName'), + SetIntegrityLevel: require('./2019/SetIntegrityLevel'), + SetValueInBuffer: require('./2019/SetValueInBuffer'), + SpeciesConstructor: require('./2019/SpeciesConstructor'), + SplitMatch: require('./2019/SplitMatch'), + StringCreate: require('./2019/StringCreate'), + StringGetOwnProperty: require('./2019/StringGetOwnProperty'), + SymbolDescriptiveString: require('./2019/SymbolDescriptiveString'), + TestIntegrityLevel: require('./2019/TestIntegrityLevel'), + thisBooleanValue: require('./2019/thisBooleanValue'), + thisNumberValue: require('./2019/thisNumberValue'), + thisStringValue: require('./2019/thisStringValue'), + thisSymbolValue: require('./2019/thisSymbolValue'), + thisTimeValue: require('./2019/thisTimeValue'), + ThrowCompletion: require('./2019/ThrowCompletion'), + TimeClip: require('./2019/TimeClip'), + TimeFromYear: require('./2019/TimeFromYear'), + TimeString: require('./2019/TimeString'), + TimeWithinDay: require('./2019/TimeWithinDay'), + TimeZoneString: require('./2019/TimeZoneString'), + ToBoolean: require('./2019/ToBoolean'), + ToDateString: require('./2019/ToDateString'), + ToIndex: require('./2019/ToIndex'), + ToInt16: require('./2019/ToInt16'), + ToInt32: require('./2019/ToInt32'), + ToInt8: require('./2019/ToInt8'), + ToInteger: require('./2019/ToInteger'), + ToLength: require('./2019/ToLength'), + ToNumber: require('./2019/ToNumber'), + ToObject: require('./2019/ToObject'), + ToPrimitive: require('./2019/ToPrimitive'), + ToPropertyDescriptor: require('./2019/ToPropertyDescriptor'), + ToPropertyKey: require('./2019/ToPropertyKey'), + ToString: require('./2019/ToString'), + ToUint16: require('./2019/ToUint16'), + ToUint32: require('./2019/ToUint32'), + ToUint8: require('./2019/ToUint8'), + ToUint8Clamp: require('./2019/ToUint8Clamp'), + TrimString: require('./2019/TrimString'), + Type: require('./2019/Type'), + TypedArrayCreate: require('./2019/TypedArrayCreate'), + TypedArraySpeciesCreate: require('./2019/TypedArraySpeciesCreate'), + UnicodeEscape: require('./2019/UnicodeEscape'), + UTF16Decode: require('./2019/UTF16Decode'), + UTF16Encoding: require('./2019/UTF16Encoding'), + ValidateAndApplyPropertyDescriptor: require('./2019/ValidateAndApplyPropertyDescriptor'), + ValidateAtomicAccess: require('./2019/ValidateAtomicAccess'), + ValidateTypedArray: require('./2019/ValidateTypedArray'), + WeekDay: require('./2019/WeekDay'), + WordCharacters: require('./2019/WordCharacters'), + YearFromTime: require('./2019/YearFromTime') +}; + +module.exports = ES2019; diff --git a/node_modules/es-abstract/es2020.js b/node_modules/es-abstract/es2020.js new file mode 100644 index 0000000000000000000000000000000000000000..dbac3ac23a104d5541051f6abbf76444af0c0a53 --- /dev/null +++ b/node_modules/es-abstract/es2020.js @@ -0,0 +1,197 @@ +'use strict'; + +/* eslint global-require: 0 */ +// https://262.ecma-international.org/11.0/#sec-abstract-operations +var ES2020 = { + 'Abstract Equality Comparison': require('./2020/AbstractEqualityComparison'), + 'Abstract Relational Comparison': require('./2020/AbstractRelationalComparison'), + 'Strict Equality Comparison': require('./2020/StrictEqualityComparison'), + abs: require('./2020/abs'), + AddEntriesFromIterable: require('./2020/AddEntriesFromIterable'), + AdvanceStringIndex: require('./2020/AdvanceStringIndex'), + ArrayCreate: require('./2020/ArrayCreate'), + ArraySetLength: require('./2020/ArraySetLength'), + ArraySpeciesCreate: require('./2020/ArraySpeciesCreate'), + AsyncFromSyncIteratorContinuation: require('./2020/AsyncFromSyncIteratorContinuation'), + AsyncIteratorClose: require('./2020/AsyncIteratorClose'), + BigInt: require('./2020/BigInt'), + BigIntBitwiseOp: require('./2020/BigIntBitwiseOp'), + BinaryAnd: require('./2020/BinaryAnd'), + BinaryOr: require('./2020/BinaryOr'), + BinaryXor: require('./2020/BinaryXor'), + Call: require('./2020/Call'), + Canonicalize: require('./2020/Canonicalize'), + CanonicalNumericIndexString: require('./2020/CanonicalNumericIndexString'), + CharacterRange: require('./2020/CharacterRange'), + CodePointAt: require('./2020/CodePointAt'), + CompletePropertyDescriptor: require('./2020/CompletePropertyDescriptor'), + CompletionRecord: require('./2020/CompletionRecord'), + CopyDataProperties: require('./2020/CopyDataProperties'), + CreateAsyncFromSyncIterator: require('./2020/CreateAsyncFromSyncIterator'), + CreateDataProperty: require('./2020/CreateDataProperty'), + CreateDataPropertyOrThrow: require('./2020/CreateDataPropertyOrThrow'), + CreateHTML: require('./2020/CreateHTML'), + CreateIterResultObject: require('./2020/CreateIterResultObject'), + CreateListFromArrayLike: require('./2020/CreateListFromArrayLike'), + CreateMethodProperty: require('./2020/CreateMethodProperty'), + CreateRegExpStringIterator: require('./2020/CreateRegExpStringIterator'), + DateFromTime: require('./2020/DateFromTime'), + DateString: require('./2020/DateString'), + Day: require('./2020/Day'), + DayFromYear: require('./2020/DayFromYear'), + DaysInYear: require('./2020/DaysInYear'), + DayWithinYear: require('./2020/DayWithinYear'), + DefinePropertyOrThrow: require('./2020/DefinePropertyOrThrow'), + DeletePropertyOrThrow: require('./2020/DeletePropertyOrThrow'), + DetachArrayBuffer: require('./2020/DetachArrayBuffer'), + EnumerableOwnPropertyNames: require('./2020/EnumerableOwnPropertyNames'), + FlattenIntoArray: require('./2020/FlattenIntoArray'), + floor: require('./2020/floor'), + FromPropertyDescriptor: require('./2020/FromPropertyDescriptor'), + Get: require('./2020/Get'), + GetGlobalObject: require('./2020/GetGlobalObject'), + GetIterator: require('./2020/GetIterator'), + GetMethod: require('./2020/GetMethod'), + GetOwnPropertyKeys: require('./2020/GetOwnPropertyKeys'), + GetPrototypeFromConstructor: require('./2020/GetPrototypeFromConstructor'), + GetSubstitution: require('./2020/GetSubstitution'), + GetV: require('./2020/GetV'), + GetValueFromBuffer: require('./2020/GetValueFromBuffer'), + HasOwnProperty: require('./2020/HasOwnProperty'), + HasProperty: require('./2020/HasProperty'), + HourFromTime: require('./2020/HourFromTime'), + InLeapYear: require('./2020/InLeapYear'), + InstanceofOperator: require('./2020/InstanceofOperator'), + IntegerIndexedElementGet: require('./2020/IntegerIndexedElementGet'), + IntegerIndexedElementSet: require('./2020/IntegerIndexedElementSet'), + InternalizeJSONProperty: require('./2020/InternalizeJSONProperty'), + Invoke: require('./2020/Invoke'), + IsAccessorDescriptor: require('./2020/IsAccessorDescriptor'), + IsArray: require('./2020/IsArray'), + IsBigIntElementType: require('./2020/IsBigIntElementType'), + IsCallable: require('./2020/IsCallable'), + IsCompatiblePropertyDescriptor: require('./2020/IsCompatiblePropertyDescriptor'), + IsConcatSpreadable: require('./2020/IsConcatSpreadable'), + IsConstructor: require('./2020/IsConstructor'), + IsDataDescriptor: require('./2020/IsDataDescriptor'), + IsDetachedBuffer: require('./2020/IsDetachedBuffer'), + IsExtensible: require('./2020/IsExtensible'), + IsGenericDescriptor: require('./2020/IsGenericDescriptor'), + IsInteger: require('./2020/IsInteger'), + IsNonNegativeInteger: require('./2020/IsNonNegativeInteger'), + IsNoTearConfiguration: require('./2020/IsNoTearConfiguration'), + IsPromise: require('./2020/IsPromise'), + IsPropertyKey: require('./2020/IsPropertyKey'), + IsRegExp: require('./2020/IsRegExp'), + IsSharedArrayBuffer: require('./2020/IsSharedArrayBuffer'), + IsStringPrefix: require('./2020/IsStringPrefix'), + IsUnclampedIntegerElementType: require('./2020/IsUnclampedIntegerElementType'), + IsUnsignedElementType: require('./2020/IsUnsignedElementType'), + IsValidIntegerIndex: require('./2020/IsValidIntegerIndex'), + IsWordChar: require('./2020/IsWordChar'), + IterableToList: require('./2020/IterableToList'), + IteratorClose: require('./2020/IteratorClose'), + IteratorComplete: require('./2020/IteratorComplete'), + IteratorNext: require('./2020/IteratorNext'), + IteratorStep: require('./2020/IteratorStep'), + IteratorValue: require('./2020/IteratorValue'), + LengthOfArrayLike: require('./2020/LengthOfArrayLike'), + MakeDate: require('./2020/MakeDate'), + MakeDay: require('./2020/MakeDay'), + MakeTime: require('./2020/MakeTime'), + max: require('./2020/max'), + min: require('./2020/min'), + MinFromTime: require('./2020/MinFromTime'), + modulo: require('./2020/modulo'), + MonthFromTime: require('./2020/MonthFromTime'), + msFromTime: require('./2020/msFromTime'), + NewPromiseCapability: require('./2020/NewPromiseCapability'), + NormalCompletion: require('./2020/NormalCompletion'), + Number: require('./2020/Number'), + NumberBitwiseOp: require('./2020/NumberBitwiseOp'), + NumberToBigInt: require('./2020/NumberToBigInt'), + NumericToRawBytes: require('./2020/NumericToRawBytes'), + ObjectDefineProperties: require('./2020/ObjectDefineProperties'), + OrdinaryCreateFromConstructor: require('./2020/OrdinaryCreateFromConstructor'), + OrdinaryDefineOwnProperty: require('./2020/OrdinaryDefineOwnProperty'), + OrdinaryGetOwnProperty: require('./2020/OrdinaryGetOwnProperty'), + OrdinaryGetPrototypeOf: require('./2020/OrdinaryGetPrototypeOf'), + OrdinaryHasInstance: require('./2020/OrdinaryHasInstance'), + OrdinaryHasProperty: require('./2020/OrdinaryHasProperty'), + OrdinaryObjectCreate: require('./2020/OrdinaryObjectCreate'), + OrdinarySetPrototypeOf: require('./2020/OrdinarySetPrototypeOf'), + OrdinaryToPrimitive: require('./2020/OrdinaryToPrimitive'), + PromiseResolve: require('./2020/PromiseResolve'), + QuoteJSONString: require('./2020/QuoteJSONString'), + RawBytesToNumeric: require('./2020/RawBytesToNumeric'), + RegExpCreate: require('./2020/RegExpCreate'), + RegExpExec: require('./2020/RegExpExec'), + RequireObjectCoercible: require('./2020/RequireObjectCoercible'), + SameValue: require('./2020/SameValue'), + SameValueNonNumeric: require('./2020/SameValueNonNumeric'), + SameValueZero: require('./2020/SameValueZero'), + SecFromTime: require('./2020/SecFromTime'), + Set: require('./2020/Set'), + SetFunctionLength: require('./2020/SetFunctionLength'), + SetFunctionName: require('./2020/SetFunctionName'), + SetIntegrityLevel: require('./2020/SetIntegrityLevel'), + SetValueInBuffer: require('./2020/SetValueInBuffer'), + SpeciesConstructor: require('./2020/SpeciesConstructor'), + SplitMatch: require('./2020/SplitMatch'), + StringCreate: require('./2020/StringCreate'), + StringGetOwnProperty: require('./2020/StringGetOwnProperty'), + StringPad: require('./2020/StringPad'), + StringToBigInt: require('./2020/StringToBigInt'), + SymbolDescriptiveString: require('./2020/SymbolDescriptiveString'), + TestIntegrityLevel: require('./2020/TestIntegrityLevel'), + thisBigIntValue: require('./2020/thisBigIntValue'), + thisBooleanValue: require('./2020/thisBooleanValue'), + thisNumberValue: require('./2020/thisNumberValue'), + thisStringValue: require('./2020/thisStringValue'), + thisSymbolValue: require('./2020/thisSymbolValue'), + thisTimeValue: require('./2020/thisTimeValue'), + ThrowCompletion: require('./2020/ThrowCompletion'), + TimeClip: require('./2020/TimeClip'), + TimeFromYear: require('./2020/TimeFromYear'), + TimeString: require('./2020/TimeString'), + TimeWithinDay: require('./2020/TimeWithinDay'), + TimeZoneString: require('./2020/TimeZoneString'), + ToBigInt: require('./2020/ToBigInt'), + ToBigInt64: require('./2020/ToBigInt64'), + ToBigUint64: require('./2020/ToBigUint64'), + ToBoolean: require('./2020/ToBoolean'), + ToDateString: require('./2020/ToDateString'), + ToIndex: require('./2020/ToIndex'), + ToInt16: require('./2020/ToInt16'), + ToInt32: require('./2020/ToInt32'), + ToInt8: require('./2020/ToInt8'), + ToInteger: require('./2020/ToInteger'), + ToLength: require('./2020/ToLength'), + ToNumber: require('./2020/ToNumber'), + ToNumeric: require('./2020/ToNumeric'), + ToObject: require('./2020/ToObject'), + ToPrimitive: require('./2020/ToPrimitive'), + ToPropertyDescriptor: require('./2020/ToPropertyDescriptor'), + ToPropertyKey: require('./2020/ToPropertyKey'), + ToString: require('./2020/ToString'), + ToUint16: require('./2020/ToUint16'), + ToUint32: require('./2020/ToUint32'), + ToUint8: require('./2020/ToUint8'), + ToUint8Clamp: require('./2020/ToUint8Clamp'), + TrimString: require('./2020/TrimString'), + Type: require('./2020/Type'), + TypedArrayCreate: require('./2020/TypedArrayCreate'), + TypedArraySpeciesCreate: require('./2020/TypedArraySpeciesCreate'), + UnicodeEscape: require('./2020/UnicodeEscape'), + UTF16DecodeString: require('./2020/UTF16DecodeString'), + UTF16DecodeSurrogatePair: require('./2020/UTF16DecodeSurrogatePair'), + UTF16Encoding: require('./2020/UTF16Encoding'), + ValidateAndApplyPropertyDescriptor: require('./2020/ValidateAndApplyPropertyDescriptor'), + ValidateAtomicAccess: require('./2020/ValidateAtomicAccess'), + ValidateTypedArray: require('./2020/ValidateTypedArray'), + WeekDay: require('./2020/WeekDay'), + WordCharacters: require('./2020/WordCharacters'), + YearFromTime: require('./2020/YearFromTime') +}; + +module.exports = ES2020; diff --git a/node_modules/es-abstract/es2021.js b/node_modules/es-abstract/es2021.js new file mode 100644 index 0000000000000000000000000000000000000000..a7698e0f0c2e3be60733db65fecc68d675953a0f --- /dev/null +++ b/node_modules/es-abstract/es2021.js @@ -0,0 +1,211 @@ +'use strict'; + +/* eslint global-require: 0 */ +// https://262.ecma-international.org/12.0/#sec-abstract-operations +var ES2021 = { + 'Abstract Equality Comparison': require('./2021/AbstractEqualityComparison'), + 'Abstract Relational Comparison': require('./2021/AbstractRelationalComparison'), + 'Strict Equality Comparison': require('./2021/StrictEqualityComparison'), + abs: require('./2021/abs'), + AddEntriesFromIterable: require('./2021/AddEntriesFromIterable'), + AddToKeptObjects: require('./2021/AddToKeptObjects'), + AdvanceStringIndex: require('./2021/AdvanceStringIndex'), + ApplyStringOrNumericBinaryOperator: require('./2021/ApplyStringOrNumericBinaryOperator'), + ArrayCreate: require('./2021/ArrayCreate'), + ArraySetLength: require('./2021/ArraySetLength'), + ArraySpeciesCreate: require('./2021/ArraySpeciesCreate'), + AsyncFromSyncIteratorContinuation: require('./2021/AsyncFromSyncIteratorContinuation'), + AsyncIteratorClose: require('./2021/AsyncIteratorClose'), + BigInt: require('./2021/BigInt'), + BigIntBitwiseOp: require('./2021/BigIntBitwiseOp'), + BinaryAnd: require('./2021/BinaryAnd'), + BinaryOr: require('./2021/BinaryOr'), + BinaryXor: require('./2021/BinaryXor'), + ByteListBitwiseOp: require('./2021/ByteListBitwiseOp'), + ByteListEqual: require('./2021/ByteListEqual'), + Call: require('./2021/Call'), + Canonicalize: require('./2021/Canonicalize'), + CanonicalNumericIndexString: require('./2021/CanonicalNumericIndexString'), + CharacterRange: require('./2021/CharacterRange'), + clamp: require('./2021/clamp'), + ClearKeptObjects: require('./2021/ClearKeptObjects'), + CloneArrayBuffer: require('./2021/CloneArrayBuffer'), + CodePointAt: require('./2021/CodePointAt'), + CodePointsToString: require('./2021/CodePointsToString'), + CompletePropertyDescriptor: require('./2021/CompletePropertyDescriptor'), + CompletionRecord: require('./2021/CompletionRecord'), + CopyDataProperties: require('./2021/CopyDataProperties'), + CreateAsyncFromSyncIterator: require('./2021/CreateAsyncFromSyncIterator'), + CreateDataProperty: require('./2021/CreateDataProperty'), + CreateDataPropertyOrThrow: require('./2021/CreateDataPropertyOrThrow'), + CreateHTML: require('./2021/CreateHTML'), + CreateIterResultObject: require('./2021/CreateIterResultObject'), + CreateListFromArrayLike: require('./2021/CreateListFromArrayLike'), + CreateMethodProperty: require('./2021/CreateMethodProperty'), + CreateRegExpStringIterator: require('./2021/CreateRegExpStringIterator'), + DateFromTime: require('./2021/DateFromTime'), + DateString: require('./2021/DateString'), + Day: require('./2021/Day'), + DayFromYear: require('./2021/DayFromYear'), + DaysInYear: require('./2021/DaysInYear'), + DayWithinYear: require('./2021/DayWithinYear'), + DefinePropertyOrThrow: require('./2021/DefinePropertyOrThrow'), + DeletePropertyOrThrow: require('./2021/DeletePropertyOrThrow'), + DetachArrayBuffer: require('./2021/DetachArrayBuffer'), + EnumerableOwnPropertyNames: require('./2021/EnumerableOwnPropertyNames'), + FlattenIntoArray: require('./2021/FlattenIntoArray'), + floor: require('./2021/floor'), + FromPropertyDescriptor: require('./2021/FromPropertyDescriptor'), + Get: require('./2021/Get'), + GetGlobalObject: require('./2021/GetGlobalObject'), + GetIterator: require('./2021/GetIterator'), + GetMethod: require('./2021/GetMethod'), + GetOwnPropertyKeys: require('./2021/GetOwnPropertyKeys'), + GetPromiseResolve: require('./2021/GetPromiseResolve'), + GetPrototypeFromConstructor: require('./2021/GetPrototypeFromConstructor'), + GetSubstitution: require('./2021/GetSubstitution'), + GetV: require('./2021/GetV'), + GetValueFromBuffer: require('./2021/GetValueFromBuffer'), + HasOwnProperty: require('./2021/HasOwnProperty'), + HasProperty: require('./2021/HasProperty'), + HourFromTime: require('./2021/HourFromTime'), + InLeapYear: require('./2021/InLeapYear'), + InstanceofOperator: require('./2021/InstanceofOperator'), + IntegerIndexedElementGet: require('./2021/IntegerIndexedElementGet'), + IntegerIndexedElementSet: require('./2021/IntegerIndexedElementSet'), + InternalizeJSONProperty: require('./2021/InternalizeJSONProperty'), + Invoke: require('./2021/Invoke'), + IsAccessorDescriptor: require('./2021/IsAccessorDescriptor'), + IsArray: require('./2021/IsArray'), + IsBigIntElementType: require('./2021/IsBigIntElementType'), + IsCallable: require('./2021/IsCallable'), + IsCompatiblePropertyDescriptor: require('./2021/IsCompatiblePropertyDescriptor'), + IsConcatSpreadable: require('./2021/IsConcatSpreadable'), + IsConstructor: require('./2021/IsConstructor'), + IsDataDescriptor: require('./2021/IsDataDescriptor'), + IsDetachedBuffer: require('./2021/IsDetachedBuffer'), + IsExtensible: require('./2021/IsExtensible'), + IsGenericDescriptor: require('./2021/IsGenericDescriptor'), + IsIntegralNumber: require('./2021/IsIntegralNumber'), + IsNoTearConfiguration: require('./2021/IsNoTearConfiguration'), + IsPromise: require('./2021/IsPromise'), + IsPropertyKey: require('./2021/IsPropertyKey'), + IsRegExp: require('./2021/IsRegExp'), + IsSharedArrayBuffer: require('./2021/IsSharedArrayBuffer'), + IsStringPrefix: require('./2021/IsStringPrefix'), + IsUnclampedIntegerElementType: require('./2021/IsUnclampedIntegerElementType'), + IsUnsignedElementType: require('./2021/IsUnsignedElementType'), + IsValidIntegerIndex: require('./2021/IsValidIntegerIndex'), + IsWordChar: require('./2021/IsWordChar'), + IterableToList: require('./2021/IterableToList'), + IteratorClose: require('./2021/IteratorClose'), + IteratorComplete: require('./2021/IteratorComplete'), + IteratorNext: require('./2021/IteratorNext'), + IteratorStep: require('./2021/IteratorStep'), + IteratorValue: require('./2021/IteratorValue'), + LengthOfArrayLike: require('./2021/LengthOfArrayLike'), + MakeDate: require('./2021/MakeDate'), + MakeDay: require('./2021/MakeDay'), + MakeTime: require('./2021/MakeTime'), + max: require('./2021/max'), + min: require('./2021/min'), + MinFromTime: require('./2021/MinFromTime'), + modulo: require('./2021/modulo'), + MonthFromTime: require('./2021/MonthFromTime'), + msFromTime: require('./2021/msFromTime'), + NewPromiseCapability: require('./2021/NewPromiseCapability'), + NormalCompletion: require('./2021/NormalCompletion'), + Number: require('./2021/Number'), + NumberBitwiseOp: require('./2021/NumberBitwiseOp'), + NumberToBigInt: require('./2021/NumberToBigInt'), + NumericToRawBytes: require('./2021/NumericToRawBytes'), + ObjectDefineProperties: require('./2021/ObjectDefineProperties'), + OrdinaryCreateFromConstructor: require('./2021/OrdinaryCreateFromConstructor'), + OrdinaryDefineOwnProperty: require('./2021/OrdinaryDefineOwnProperty'), + OrdinaryGetOwnProperty: require('./2021/OrdinaryGetOwnProperty'), + OrdinaryGetPrototypeOf: require('./2021/OrdinaryGetPrototypeOf'), + OrdinaryHasInstance: require('./2021/OrdinaryHasInstance'), + OrdinaryHasProperty: require('./2021/OrdinaryHasProperty'), + OrdinaryObjectCreate: require('./2021/OrdinaryObjectCreate'), + OrdinarySetPrototypeOf: require('./2021/OrdinarySetPrototypeOf'), + OrdinaryToPrimitive: require('./2021/OrdinaryToPrimitive'), + PromiseResolve: require('./2021/PromiseResolve'), + QuoteJSONString: require('./2021/QuoteJSONString'), + RawBytesToNumeric: require('./2021/RawBytesToNumeric'), + RegExpCreate: require('./2021/RegExpCreate'), + RegExpExec: require('./2021/RegExpExec'), + RequireObjectCoercible: require('./2021/RequireObjectCoercible'), + SameValue: require('./2021/SameValue'), + SameValueNonNumeric: require('./2021/SameValueNonNumeric'), + SameValueZero: require('./2021/SameValueZero'), + SecFromTime: require('./2021/SecFromTime'), + Set: require('./2021/Set'), + SetFunctionLength: require('./2021/SetFunctionLength'), + SetFunctionName: require('./2021/SetFunctionName'), + SetIntegrityLevel: require('./2021/SetIntegrityLevel'), + SetTypedArrayFromArrayLike: require('./2021/SetTypedArrayFromArrayLike'), + SetTypedArrayFromTypedArray: require('./2021/SetTypedArrayFromTypedArray'), + SetValueInBuffer: require('./2021/SetValueInBuffer'), + SpeciesConstructor: require('./2021/SpeciesConstructor'), + SplitMatch: require('./2021/SplitMatch'), + StringCreate: require('./2021/StringCreate'), + StringGetOwnProperty: require('./2021/StringGetOwnProperty'), + StringIndexOf: require('./2021/StringIndexOf'), + StringPad: require('./2021/StringPad'), + StringToBigInt: require('./2021/StringToBigInt'), + StringToCodePoints: require('./2021/StringToCodePoints'), + substring: require('./2021/substring'), + SymbolDescriptiveString: require('./2021/SymbolDescriptiveString'), + TestIntegrityLevel: require('./2021/TestIntegrityLevel'), + thisBigIntValue: require('./2021/thisBigIntValue'), + thisBooleanValue: require('./2021/thisBooleanValue'), + thisNumberValue: require('./2021/thisNumberValue'), + thisStringValue: require('./2021/thisStringValue'), + thisSymbolValue: require('./2021/thisSymbolValue'), + thisTimeValue: require('./2021/thisTimeValue'), + ThrowCompletion: require('./2021/ThrowCompletion'), + TimeClip: require('./2021/TimeClip'), + TimeFromYear: require('./2021/TimeFromYear'), + TimeString: require('./2021/TimeString'), + TimeWithinDay: require('./2021/TimeWithinDay'), + TimeZoneString: require('./2021/TimeZoneString'), + ToBigInt: require('./2021/ToBigInt'), + ToBigInt64: require('./2021/ToBigInt64'), + ToBigUint64: require('./2021/ToBigUint64'), + ToBoolean: require('./2021/ToBoolean'), + ToDateString: require('./2021/ToDateString'), + ToIndex: require('./2021/ToIndex'), + ToInt16: require('./2021/ToInt16'), + ToInt32: require('./2021/ToInt32'), + ToInt8: require('./2021/ToInt8'), + ToIntegerOrInfinity: require('./2021/ToIntegerOrInfinity'), + ToLength: require('./2021/ToLength'), + ToNumber: require('./2021/ToNumber'), + ToNumeric: require('./2021/ToNumeric'), + ToObject: require('./2021/ToObject'), + ToPrimitive: require('./2021/ToPrimitive'), + ToPropertyDescriptor: require('./2021/ToPropertyDescriptor'), + ToPropertyKey: require('./2021/ToPropertyKey'), + ToString: require('./2021/ToString'), + ToUint16: require('./2021/ToUint16'), + ToUint32: require('./2021/ToUint32'), + ToUint8: require('./2021/ToUint8'), + ToUint8Clamp: require('./2021/ToUint8Clamp'), + TrimString: require('./2021/TrimString'), + Type: require('./2021/Type'), + TypedArrayCreate: require('./2021/TypedArrayCreate'), + TypedArraySpeciesCreate: require('./2021/TypedArraySpeciesCreate'), + UnicodeEscape: require('./2021/UnicodeEscape'), + UTF16EncodeCodePoint: require('./2021/UTF16EncodeCodePoint'), + UTF16SurrogatePairToCodePoint: require('./2021/UTF16SurrogatePairToCodePoint'), + ValidateAndApplyPropertyDescriptor: require('./2021/ValidateAndApplyPropertyDescriptor'), + ValidateAtomicAccess: require('./2021/ValidateAtomicAccess'), + ValidateIntegerTypedArray: require('./2021/ValidateIntegerTypedArray'), + ValidateTypedArray: require('./2021/ValidateTypedArray'), + WeakRefDeref: require('./2021/WeakRefDeref'), + WeekDay: require('./2021/WeekDay'), + WordCharacters: require('./2021/WordCharacters'), + YearFromTime: require('./2021/YearFromTime') +}; + +module.exports = ES2021; diff --git a/node_modules/es-abstract/es2022.js b/node_modules/es-abstract/es2022.js new file mode 100644 index 0000000000000000000000000000000000000000..2d0f4708c0eec5853c60716c45358c97c9dd16f1 --- /dev/null +++ b/node_modules/es-abstract/es2022.js @@ -0,0 +1,224 @@ +'use strict'; + +/* eslint global-require: 0 */ +// https://262.ecma-international.org/13.0/#sec-abstract-operations +var ES2022 = { + abs: require('./2022/abs'), + AddEntriesFromIterable: require('./2022/AddEntriesFromIterable'), + AddToKeptObjects: require('./2022/AddToKeptObjects'), + AdvanceStringIndex: require('./2022/AdvanceStringIndex'), + ApplyStringOrNumericBinaryOperator: require('./2022/ApplyStringOrNumericBinaryOperator'), + ArrayCreate: require('./2022/ArrayCreate'), + ArraySetLength: require('./2022/ArraySetLength'), + ArraySpeciesCreate: require('./2022/ArraySpeciesCreate'), + AsyncFromSyncIteratorContinuation: require('./2022/AsyncFromSyncIteratorContinuation'), + AsyncIteratorClose: require('./2022/AsyncIteratorClose'), + BigInt: require('./2022/BigInt'), + BigIntBitwiseOp: require('./2022/BigIntBitwiseOp'), + BinaryAnd: require('./2022/BinaryAnd'), + BinaryOr: require('./2022/BinaryOr'), + BinaryXor: require('./2022/BinaryXor'), + ByteListBitwiseOp: require('./2022/ByteListBitwiseOp'), + ByteListEqual: require('./2022/ByteListEqual'), + Call: require('./2022/Call'), + Canonicalize: require('./2022/Canonicalize'), + CanonicalNumericIndexString: require('./2022/CanonicalNumericIndexString'), + CharacterRange: require('./2022/CharacterRange'), + clamp: require('./2022/clamp'), + ClearKeptObjects: require('./2022/ClearKeptObjects'), + CloneArrayBuffer: require('./2022/CloneArrayBuffer'), + CodePointAt: require('./2022/CodePointAt'), + CodePointsToString: require('./2022/CodePointsToString'), + CompletePropertyDescriptor: require('./2022/CompletePropertyDescriptor'), + CompletionRecord: require('./2022/CompletionRecord'), + CopyDataProperties: require('./2022/CopyDataProperties'), + CreateAsyncFromSyncIterator: require('./2022/CreateAsyncFromSyncIterator'), + CreateDataProperty: require('./2022/CreateDataProperty'), + CreateDataPropertyOrThrow: require('./2022/CreateDataPropertyOrThrow'), + CreateHTML: require('./2022/CreateHTML'), + CreateIterResultObject: require('./2022/CreateIterResultObject'), + CreateListFromArrayLike: require('./2022/CreateListFromArrayLike'), + CreateMethodProperty: require('./2022/CreateMethodProperty'), + CreateNonEnumerableDataPropertyOrThrow: require('./2022/CreateNonEnumerableDataPropertyOrThrow'), + CreateRegExpStringIterator: require('./2022/CreateRegExpStringIterator'), + DateFromTime: require('./2022/DateFromTime'), + DateString: require('./2022/DateString'), + Day: require('./2022/Day'), + DayFromYear: require('./2022/DayFromYear'), + DaysInYear: require('./2022/DaysInYear'), + DayWithinYear: require('./2022/DayWithinYear'), + DefineMethodProperty: require('./2022/DefineMethodProperty'), + DefinePropertyOrThrow: require('./2022/DefinePropertyOrThrow'), + DeletePropertyOrThrow: require('./2022/DeletePropertyOrThrow'), + DetachArrayBuffer: require('./2022/DetachArrayBuffer'), + EnumerableOwnPropertyNames: require('./2022/EnumerableOwnPropertyNames'), + FlattenIntoArray: require('./2022/FlattenIntoArray'), + floor: require('./2022/floor'), + FromPropertyDescriptor: require('./2022/FromPropertyDescriptor'), + Get: require('./2022/Get'), + GetGlobalObject: require('./2022/GetGlobalObject'), + GetIterator: require('./2022/GetIterator'), + GetMatchIndexPair: require('./2022/GetMatchIndexPair'), + GetMatchString: require('./2022/GetMatchString'), + GetMethod: require('./2022/GetMethod'), + GetOwnPropertyKeys: require('./2022/GetOwnPropertyKeys'), + GetPromiseResolve: require('./2022/GetPromiseResolve'), + GetPrototypeFromConstructor: require('./2022/GetPrototypeFromConstructor'), + GetStringIndex: require('./2022/GetStringIndex'), + GetSubstitution: require('./2022/GetSubstitution'), + GetV: require('./2022/GetV'), + GetValueFromBuffer: require('./2022/GetValueFromBuffer'), + HasOwnProperty: require('./2022/HasOwnProperty'), + HasProperty: require('./2022/HasProperty'), + HourFromTime: require('./2022/HourFromTime'), + InLeapYear: require('./2022/InLeapYear'), + InstallErrorCause: require('./2022/InstallErrorCause'), + InstanceofOperator: require('./2022/InstanceofOperator'), + IntegerIndexedElementGet: require('./2022/IntegerIndexedElementGet'), + IntegerIndexedElementSet: require('./2022/IntegerIndexedElementSet'), + InternalizeJSONProperty: require('./2022/InternalizeJSONProperty'), + Invoke: require('./2022/Invoke'), + IsAccessorDescriptor: require('./2022/IsAccessorDescriptor'), + IsArray: require('./2022/IsArray'), + IsBigIntElementType: require('./2022/IsBigIntElementType'), + IsCallable: require('./2022/IsCallable'), + IsCompatiblePropertyDescriptor: require('./2022/IsCompatiblePropertyDescriptor'), + IsConcatSpreadable: require('./2022/IsConcatSpreadable'), + IsConstructor: require('./2022/IsConstructor'), + IsDataDescriptor: require('./2022/IsDataDescriptor'), + IsDetachedBuffer: require('./2022/IsDetachedBuffer'), + IsExtensible: require('./2022/IsExtensible'), + IsGenericDescriptor: require('./2022/IsGenericDescriptor'), + IsIntegralNumber: require('./2022/IsIntegralNumber'), + IsLessThan: require('./2022/IsLessThan'), + IsLooselyEqual: require('./2022/IsLooselyEqual'), + IsNoTearConfiguration: require('./2022/IsNoTearConfiguration'), + IsPromise: require('./2022/IsPromise'), + IsPropertyKey: require('./2022/IsPropertyKey'), + IsRegExp: require('./2022/IsRegExp'), + IsSharedArrayBuffer: require('./2022/IsSharedArrayBuffer'), + IsStrictlyEqual: require('./2022/IsStrictlyEqual'), + IsStringPrefix: require('./2022/IsStringPrefix'), + IsStringWellFormedUnicode: require('./2022/IsStringWellFormedUnicode'), + IsUnclampedIntegerElementType: require('./2022/IsUnclampedIntegerElementType'), + IsUnsignedElementType: require('./2022/IsUnsignedElementType'), + IsValidIntegerIndex: require('./2022/IsValidIntegerIndex'), + IsWordChar: require('./2022/IsWordChar'), + IterableToList: require('./2022/IterableToList'), + IteratorClose: require('./2022/IteratorClose'), + IteratorComplete: require('./2022/IteratorComplete'), + IteratorNext: require('./2022/IteratorNext'), + IteratorStep: require('./2022/IteratorStep'), + IteratorValue: require('./2022/IteratorValue'), + LengthOfArrayLike: require('./2022/LengthOfArrayLike'), + MakeDate: require('./2022/MakeDate'), + MakeDay: require('./2022/MakeDay'), + MakeMatchIndicesIndexPairArray: require('./2022/MakeMatchIndicesIndexPairArray'), + MakeTime: require('./2022/MakeTime'), + max: require('./2022/max'), + min: require('./2022/min'), + MinFromTime: require('./2022/MinFromTime'), + modulo: require('./2022/modulo'), + MonthFromTime: require('./2022/MonthFromTime'), + msFromTime: require('./2022/msFromTime'), + NewPromiseCapability: require('./2022/NewPromiseCapability'), + NormalCompletion: require('./2022/NormalCompletion'), + Number: require('./2022/Number'), + NumberBitwiseOp: require('./2022/NumberBitwiseOp'), + NumberToBigInt: require('./2022/NumberToBigInt'), + NumericToRawBytes: require('./2022/NumericToRawBytes'), + ObjectDefineProperties: require('./2022/ObjectDefineProperties'), + OrdinaryCreateFromConstructor: require('./2022/OrdinaryCreateFromConstructor'), + OrdinaryDefineOwnProperty: require('./2022/OrdinaryDefineOwnProperty'), + OrdinaryGetOwnProperty: require('./2022/OrdinaryGetOwnProperty'), + OrdinaryGetPrototypeOf: require('./2022/OrdinaryGetPrototypeOf'), + OrdinaryHasInstance: require('./2022/OrdinaryHasInstance'), + OrdinaryHasProperty: require('./2022/OrdinaryHasProperty'), + OrdinaryObjectCreate: require('./2022/OrdinaryObjectCreate'), + OrdinarySetPrototypeOf: require('./2022/OrdinarySetPrototypeOf'), + OrdinaryToPrimitive: require('./2022/OrdinaryToPrimitive'), + PromiseResolve: require('./2022/PromiseResolve'), + QuoteJSONString: require('./2022/QuoteJSONString'), + RawBytesToNumeric: require('./2022/RawBytesToNumeric'), + RegExpCreate: require('./2022/RegExpCreate'), + RegExpExec: require('./2022/RegExpExec'), + RegExpHasFlag: require('./2022/RegExpHasFlag'), + RequireObjectCoercible: require('./2022/RequireObjectCoercible'), + SameValue: require('./2022/SameValue'), + SameValueNonNumeric: require('./2022/SameValueNonNumeric'), + SameValueZero: require('./2022/SameValueZero'), + SecFromTime: require('./2022/SecFromTime'), + Set: require('./2022/Set'), + SetFunctionLength: require('./2022/SetFunctionLength'), + SetFunctionName: require('./2022/SetFunctionName'), + SetIntegrityLevel: require('./2022/SetIntegrityLevel'), + SetTypedArrayFromArrayLike: require('./2022/SetTypedArrayFromArrayLike'), + SetTypedArrayFromTypedArray: require('./2022/SetTypedArrayFromTypedArray'), + SetValueInBuffer: require('./2022/SetValueInBuffer'), + SortIndexedProperties: require('./2022/SortIndexedProperties'), + SpeciesConstructor: require('./2022/SpeciesConstructor'), + StringCreate: require('./2022/StringCreate'), + StringGetOwnProperty: require('./2022/StringGetOwnProperty'), + StringIndexOf: require('./2022/StringIndexOf'), + StringPad: require('./2022/StringPad'), + StringToBigInt: require('./2022/StringToBigInt'), + StringToCodePoints: require('./2022/StringToCodePoints'), + StringToNumber: require('./2022/StringToNumber'), + substring: require('./2022/substring'), + SymbolDescriptiveString: require('./2022/SymbolDescriptiveString'), + TestIntegrityLevel: require('./2022/TestIntegrityLevel'), + thisBigIntValue: require('./2022/thisBigIntValue'), + thisBooleanValue: require('./2022/thisBooleanValue'), + thisNumberValue: require('./2022/thisNumberValue'), + thisStringValue: require('./2022/thisStringValue'), + thisSymbolValue: require('./2022/thisSymbolValue'), + thisTimeValue: require('./2022/thisTimeValue'), + ThrowCompletion: require('./2022/ThrowCompletion'), + TimeClip: require('./2022/TimeClip'), + TimeFromYear: require('./2022/TimeFromYear'), + TimeString: require('./2022/TimeString'), + TimeWithinDay: require('./2022/TimeWithinDay'), + TimeZoneString: require('./2022/TimeZoneString'), + ToBigInt: require('./2022/ToBigInt'), + ToBigInt64: require('./2022/ToBigInt64'), + ToBigUint64: require('./2022/ToBigUint64'), + ToBoolean: require('./2022/ToBoolean'), + ToDateString: require('./2022/ToDateString'), + ToIndex: require('./2022/ToIndex'), + ToInt16: require('./2022/ToInt16'), + ToInt32: require('./2022/ToInt32'), + ToInt8: require('./2022/ToInt8'), + ToIntegerOrInfinity: require('./2022/ToIntegerOrInfinity'), + ToLength: require('./2022/ToLength'), + ToNumber: require('./2022/ToNumber'), + ToNumeric: require('./2022/ToNumeric'), + ToObject: require('./2022/ToObject'), + ToPrimitive: require('./2022/ToPrimitive'), + ToPropertyDescriptor: require('./2022/ToPropertyDescriptor'), + ToPropertyKey: require('./2022/ToPropertyKey'), + ToString: require('./2022/ToString'), + ToUint16: require('./2022/ToUint16'), + ToUint32: require('./2022/ToUint32'), + ToUint8: require('./2022/ToUint8'), + ToUint8Clamp: require('./2022/ToUint8Clamp'), + ToZeroPaddedDecimalString: require('./2022/ToZeroPaddedDecimalString'), + TrimString: require('./2022/TrimString'), + Type: require('./2022/Type'), + TypedArrayCreate: require('./2022/TypedArrayCreate'), + TypedArrayElementSize: require('./2022/TypedArrayElementSize'), + TypedArrayElementType: require('./2022/TypedArrayElementType'), + TypedArraySpeciesCreate: require('./2022/TypedArraySpeciesCreate'), + UnicodeEscape: require('./2022/UnicodeEscape'), + UTF16EncodeCodePoint: require('./2022/UTF16EncodeCodePoint'), + UTF16SurrogatePairToCodePoint: require('./2022/UTF16SurrogatePairToCodePoint'), + ValidateAndApplyPropertyDescriptor: require('./2022/ValidateAndApplyPropertyDescriptor'), + ValidateAtomicAccess: require('./2022/ValidateAtomicAccess'), + ValidateIntegerTypedArray: require('./2022/ValidateIntegerTypedArray'), + ValidateTypedArray: require('./2022/ValidateTypedArray'), + WeakRefDeref: require('./2022/WeakRefDeref'), + WeekDay: require('./2022/WeekDay'), + WordCharacters: require('./2022/WordCharacters'), + YearFromTime: require('./2022/YearFromTime') +}; + +module.exports = ES2022; diff --git a/node_modules/es-abstract/es2023.js b/node_modules/es-abstract/es2023.js new file mode 100644 index 0000000000000000000000000000000000000000..2e7bd89a190fd8cfd361d2954e8ba6d7538a8d0b --- /dev/null +++ b/node_modules/es-abstract/es2023.js @@ -0,0 +1,236 @@ +'use strict'; + +/* eslint global-require: 0 */ +// https://262.ecma-international.org/14.0/#sec-abstract-operations +var ES2023 = { + abs: require('./2023/abs'), + AddEntriesFromIterable: require('./2023/AddEntriesFromIterable'), + AddToKeptObjects: require('./2023/AddToKeptObjects'), + AdvanceStringIndex: require('./2023/AdvanceStringIndex'), + ApplyStringOrNumericBinaryOperator: require('./2023/ApplyStringOrNumericBinaryOperator'), + ArrayCreate: require('./2023/ArrayCreate'), + ArraySetLength: require('./2023/ArraySetLength'), + ArraySpeciesCreate: require('./2023/ArraySpeciesCreate'), + AsyncFromSyncIteratorContinuation: require('./2023/AsyncFromSyncIteratorContinuation'), + AsyncIteratorClose: require('./2023/AsyncIteratorClose'), + BigInt: require('./2023/BigInt'), + BigIntBitwiseOp: require('./2023/BigIntBitwiseOp'), + BinaryAnd: require('./2023/BinaryAnd'), + BinaryOr: require('./2023/BinaryOr'), + BinaryXor: require('./2023/BinaryXor'), + ByteListBitwiseOp: require('./2023/ByteListBitwiseOp'), + ByteListEqual: require('./2023/ByteListEqual'), + Call: require('./2023/Call'), + CanBeHeldWeakly: require('./2023/CanBeHeldWeakly'), + Canonicalize: require('./2023/Canonicalize'), + CanonicalNumericIndexString: require('./2023/CanonicalNumericIndexString'), + CharacterRange: require('./2023/CharacterRange'), + clamp: require('./2023/clamp'), + ClearKeptObjects: require('./2023/ClearKeptObjects'), + CloneArrayBuffer: require('./2023/CloneArrayBuffer'), + CodePointAt: require('./2023/CodePointAt'), + CodePointsToString: require('./2023/CodePointsToString'), + CompareArrayElements: require('./2023/CompareArrayElements'), + CompareTypedArrayElements: require('./2023/CompareTypedArrayElements'), + CompletePropertyDescriptor: require('./2023/CompletePropertyDescriptor'), + CompletionRecord: require('./2023/CompletionRecord'), + CopyDataProperties: require('./2023/CopyDataProperties'), + CreateAsyncFromSyncIterator: require('./2023/CreateAsyncFromSyncIterator'), + CreateDataProperty: require('./2023/CreateDataProperty'), + CreateDataPropertyOrThrow: require('./2023/CreateDataPropertyOrThrow'), + CreateHTML: require('./2023/CreateHTML'), + CreateIterResultObject: require('./2023/CreateIterResultObject'), + CreateListFromArrayLike: require('./2023/CreateListFromArrayLike'), + CreateMethodProperty: require('./2023/CreateMethodProperty'), + CreateNonEnumerableDataPropertyOrThrow: require('./2023/CreateNonEnumerableDataPropertyOrThrow'), + CreateRegExpStringIterator: require('./2023/CreateRegExpStringIterator'), + DateFromTime: require('./2023/DateFromTime'), + DateString: require('./2023/DateString'), + Day: require('./2023/Day'), + DayFromYear: require('./2023/DayFromYear'), + DaysInYear: require('./2023/DaysInYear'), + DayWithinYear: require('./2023/DayWithinYear'), + DefaultTimeZone: require('./2023/DefaultTimeZone'), + DefineMethodProperty: require('./2023/DefineMethodProperty'), + DefinePropertyOrThrow: require('./2023/DefinePropertyOrThrow'), + DeletePropertyOrThrow: require('./2023/DeletePropertyOrThrow'), + DetachArrayBuffer: require('./2023/DetachArrayBuffer'), + EnumerableOwnProperties: require('./2023/EnumerableOwnProperties'), + FindViaPredicate: require('./2023/FindViaPredicate'), + FlattenIntoArray: require('./2023/FlattenIntoArray'), + floor: require('./2023/floor'), + FromPropertyDescriptor: require('./2023/FromPropertyDescriptor'), + Get: require('./2023/Get'), + GetGlobalObject: require('./2023/GetGlobalObject'), + GetIterator: require('./2023/GetIterator'), + GetIteratorFromMethod: require('./2023/GetIteratorFromMethod'), + GetMatchIndexPair: require('./2023/GetMatchIndexPair'), + GetMatchString: require('./2023/GetMatchString'), + GetMethod: require('./2023/GetMethod'), + GetNamedTimeZoneEpochNanoseconds: require('./2023/GetNamedTimeZoneEpochNanoseconds'), + GetOwnPropertyKeys: require('./2023/GetOwnPropertyKeys'), + GetPromiseResolve: require('./2023/GetPromiseResolve'), + GetPrototypeFromConstructor: require('./2023/GetPrototypeFromConstructor'), + GetStringIndex: require('./2023/GetStringIndex'), + GetSubstitution: require('./2023/GetSubstitution'), + GetUTCEpochNanoseconds: require('./2023/GetUTCEpochNanoseconds'), + GetV: require('./2023/GetV'), + GetValueFromBuffer: require('./2023/GetValueFromBuffer'), + HasOwnProperty: require('./2023/HasOwnProperty'), + HasProperty: require('./2023/HasProperty'), + HourFromTime: require('./2023/HourFromTime'), + InLeapYear: require('./2023/InLeapYear'), + InstallErrorCause: require('./2023/InstallErrorCause'), + InstanceofOperator: require('./2023/InstanceofOperator'), + IntegerIndexedElementGet: require('./2023/IntegerIndexedElementGet'), + IntegerIndexedElementSet: require('./2023/IntegerIndexedElementSet'), + InternalizeJSONProperty: require('./2023/InternalizeJSONProperty'), + Invoke: require('./2023/Invoke'), + IsAccessorDescriptor: require('./2023/IsAccessorDescriptor'), + IsArray: require('./2023/IsArray'), + IsBigIntElementType: require('./2023/IsBigIntElementType'), + IsCallable: require('./2023/IsCallable'), + IsCompatiblePropertyDescriptor: require('./2023/IsCompatiblePropertyDescriptor'), + IsConcatSpreadable: require('./2023/IsConcatSpreadable'), + IsConstructor: require('./2023/IsConstructor'), + IsDataDescriptor: require('./2023/IsDataDescriptor'), + IsDetachedBuffer: require('./2023/IsDetachedBuffer'), + IsExtensible: require('./2023/IsExtensible'), + IsGenericDescriptor: require('./2023/IsGenericDescriptor'), + IsIntegralNumber: require('./2023/IsIntegralNumber'), + IsLessThan: require('./2023/IsLessThan'), + IsLooselyEqual: require('./2023/IsLooselyEqual'), + IsNoTearConfiguration: require('./2023/IsNoTearConfiguration'), + IsPromise: require('./2023/IsPromise'), + IsPropertyKey: require('./2023/IsPropertyKey'), + IsRegExp: require('./2023/IsRegExp'), + IsSharedArrayBuffer: require('./2023/IsSharedArrayBuffer'), + IsStrictlyEqual: require('./2023/IsStrictlyEqual'), + IsStringWellFormedUnicode: require('./2023/IsStringWellFormedUnicode'), + IsTimeZoneOffsetString: require('./2023/IsTimeZoneOffsetString'), + IsUnclampedIntegerElementType: require('./2023/IsUnclampedIntegerElementType'), + IsUnsignedElementType: require('./2023/IsUnsignedElementType'), + IsValidIntegerIndex: require('./2023/IsValidIntegerIndex'), + IsWordChar: require('./2023/IsWordChar'), + IteratorClose: require('./2023/IteratorClose'), + IteratorComplete: require('./2023/IteratorComplete'), + IteratorNext: require('./2023/IteratorNext'), + IteratorStep: require('./2023/IteratorStep'), + IteratorToList: require('./2023/IteratorToList'), + IteratorValue: require('./2023/IteratorValue'), + KeyForSymbol: require('./2023/KeyForSymbol'), + LengthOfArrayLike: require('./2023/LengthOfArrayLike'), + MakeDate: require('./2023/MakeDate'), + MakeDay: require('./2023/MakeDay'), + MakeMatchIndicesIndexPairArray: require('./2023/MakeMatchIndicesIndexPairArray'), + MakeTime: require('./2023/MakeTime'), + max: require('./2023/max'), + min: require('./2023/min'), + MinFromTime: require('./2023/MinFromTime'), + modulo: require('./2023/modulo'), + MonthFromTime: require('./2023/MonthFromTime'), + msFromTime: require('./2023/msFromTime'), + NewPromiseCapability: require('./2023/NewPromiseCapability'), + NormalCompletion: require('./2023/NormalCompletion'), + Number: require('./2023/Number'), + NumberBitwiseOp: require('./2023/NumberBitwiseOp'), + NumberToBigInt: require('./2023/NumberToBigInt'), + NumericToRawBytes: require('./2023/NumericToRawBytes'), + ObjectDefineProperties: require('./2023/ObjectDefineProperties'), + OrdinaryCreateFromConstructor: require('./2023/OrdinaryCreateFromConstructor'), + OrdinaryDefineOwnProperty: require('./2023/OrdinaryDefineOwnProperty'), + OrdinaryGetOwnProperty: require('./2023/OrdinaryGetOwnProperty'), + OrdinaryGetPrototypeOf: require('./2023/OrdinaryGetPrototypeOf'), + OrdinaryHasInstance: require('./2023/OrdinaryHasInstance'), + OrdinaryHasProperty: require('./2023/OrdinaryHasProperty'), + OrdinaryObjectCreate: require('./2023/OrdinaryObjectCreate'), + OrdinarySetPrototypeOf: require('./2023/OrdinarySetPrototypeOf'), + OrdinaryToPrimitive: require('./2023/OrdinaryToPrimitive'), + ParseHexOctet: require('./2023/ParseHexOctet'), + PromiseResolve: require('./2023/PromiseResolve'), + QuoteJSONString: require('./2023/QuoteJSONString'), + RawBytesToNumeric: require('./2023/RawBytesToNumeric'), + RegExpCreate: require('./2023/RegExpCreate'), + RegExpExec: require('./2023/RegExpExec'), + RegExpHasFlag: require('./2023/RegExpHasFlag'), + RequireObjectCoercible: require('./2023/RequireObjectCoercible'), + SameValue: require('./2023/SameValue'), + SameValueNonNumber: require('./2023/SameValueNonNumber'), + SameValueZero: require('./2023/SameValueZero'), + SecFromTime: require('./2023/SecFromTime'), + Set: require('./2023/Set'), + SetFunctionLength: require('./2023/SetFunctionLength'), + SetFunctionName: require('./2023/SetFunctionName'), + SetIntegrityLevel: require('./2023/SetIntegrityLevel'), + SetTypedArrayFromArrayLike: require('./2023/SetTypedArrayFromArrayLike'), + SetTypedArrayFromTypedArray: require('./2023/SetTypedArrayFromTypedArray'), + SetValueInBuffer: require('./2023/SetValueInBuffer'), + SortIndexedProperties: require('./2023/SortIndexedProperties'), + SpeciesConstructor: require('./2023/SpeciesConstructor'), + StringCreate: require('./2023/StringCreate'), + StringGetOwnProperty: require('./2023/StringGetOwnProperty'), + StringIndexOf: require('./2023/StringIndexOf'), + StringPad: require('./2023/StringPad'), + StringToBigInt: require('./2023/StringToBigInt'), + StringToCodePoints: require('./2023/StringToCodePoints'), + StringToNumber: require('./2023/StringToNumber'), + substring: require('./2023/substring'), + SymbolDescriptiveString: require('./2023/SymbolDescriptiveString'), + TestIntegrityLevel: require('./2023/TestIntegrityLevel'), + thisBigIntValue: require('./2023/thisBigIntValue'), + thisBooleanValue: require('./2023/thisBooleanValue'), + thisNumberValue: require('./2023/thisNumberValue'), + thisStringValue: require('./2023/thisStringValue'), + thisSymbolValue: require('./2023/thisSymbolValue'), + thisTimeValue: require('./2023/thisTimeValue'), + ThrowCompletion: require('./2023/ThrowCompletion'), + TimeClip: require('./2023/TimeClip'), + TimeFromYear: require('./2023/TimeFromYear'), + TimeString: require('./2023/TimeString'), + TimeWithinDay: require('./2023/TimeWithinDay'), + TimeZoneString: require('./2023/TimeZoneString'), + ToBigInt: require('./2023/ToBigInt'), + ToBigInt64: require('./2023/ToBigInt64'), + ToBigUint64: require('./2023/ToBigUint64'), + ToBoolean: require('./2023/ToBoolean'), + ToDateString: require('./2023/ToDateString'), + ToIndex: require('./2023/ToIndex'), + ToInt16: require('./2023/ToInt16'), + ToInt32: require('./2023/ToInt32'), + ToInt8: require('./2023/ToInt8'), + ToIntegerOrInfinity: require('./2023/ToIntegerOrInfinity'), + ToLength: require('./2023/ToLength'), + ToNumber: require('./2023/ToNumber'), + ToNumeric: require('./2023/ToNumeric'), + ToObject: require('./2023/ToObject'), + ToPrimitive: require('./2023/ToPrimitive'), + ToPropertyDescriptor: require('./2023/ToPropertyDescriptor'), + ToPropertyKey: require('./2023/ToPropertyKey'), + ToString: require('./2023/ToString'), + ToUint16: require('./2023/ToUint16'), + ToUint32: require('./2023/ToUint32'), + ToUint8: require('./2023/ToUint8'), + ToUint8Clamp: require('./2023/ToUint8Clamp'), + ToZeroPaddedDecimalString: require('./2023/ToZeroPaddedDecimalString'), + TrimString: require('./2023/TrimString'), + truncate: require('./2023/truncate'), + Type: require('./2023/Type'), + TypedArrayCreate: require('./2023/TypedArrayCreate'), + TypedArrayCreateSameType: require('./2023/TypedArrayCreateSameType'), + TypedArrayElementSize: require('./2023/TypedArrayElementSize'), + TypedArrayElementType: require('./2023/TypedArrayElementType'), + TypedArraySpeciesCreate: require('./2023/TypedArraySpeciesCreate'), + UnicodeEscape: require('./2023/UnicodeEscape'), + UTF16EncodeCodePoint: require('./2023/UTF16EncodeCodePoint'), + UTF16SurrogatePairToCodePoint: require('./2023/UTF16SurrogatePairToCodePoint'), + ValidateAndApplyPropertyDescriptor: require('./2023/ValidateAndApplyPropertyDescriptor'), + ValidateAtomicAccess: require('./2023/ValidateAtomicAccess'), + ValidateIntegerTypedArray: require('./2023/ValidateIntegerTypedArray'), + ValidateTypedArray: require('./2023/ValidateTypedArray'), + WeakRefDeref: require('./2023/WeakRefDeref'), + WeekDay: require('./2023/WeekDay'), + WordCharacters: require('./2023/WordCharacters'), + YearFromTime: require('./2023/YearFromTime') +}; + +module.exports = ES2023; diff --git a/node_modules/es-abstract/es2024.js b/node_modules/es-abstract/es2024.js new file mode 100644 index 0000000000000000000000000000000000000000..194a101136faf2e3b43fc90d53840dba837ad101 --- /dev/null +++ b/node_modules/es-abstract/es2024.js @@ -0,0 +1,255 @@ +'use strict'; + +/* eslint global-require: 0 */ +// https://262.ecma-international.org/15.0/#sec-abstract-operations +var ES2024 = { + abs: require('./2024/abs'), + AddEntriesFromIterable: require('./2024/AddEntriesFromIterable'), + AddToKeptObjects: require('./2024/AddToKeptObjects'), + AddValueToKeyedGroup: require('./2024/AddValueToKeyedGroup'), + AdvanceStringIndex: require('./2024/AdvanceStringIndex'), + AllCharacters: require('./2024/AllCharacters'), + ApplyStringOrNumericBinaryOperator: require('./2024/ApplyStringOrNumericBinaryOperator'), + ArrayBufferByteLength: require('./2024/ArrayBufferByteLength'), + ArrayBufferCopyAndDetach: require('./2024/ArrayBufferCopyAndDetach'), + ArrayCreate: require('./2024/ArrayCreate'), + ArraySetLength: require('./2024/ArraySetLength'), + ArraySpeciesCreate: require('./2024/ArraySpeciesCreate'), + AsyncFromSyncIteratorContinuation: require('./2024/AsyncFromSyncIteratorContinuation'), + AsyncIteratorClose: require('./2024/AsyncIteratorClose'), + BigInt: require('./2024/BigInt'), + BigIntBitwiseOp: require('./2024/BigIntBitwiseOp'), + BinaryAnd: require('./2024/BinaryAnd'), + BinaryOr: require('./2024/BinaryOr'), + BinaryXor: require('./2024/BinaryXor'), + ByteListBitwiseOp: require('./2024/ByteListBitwiseOp'), + ByteListEqual: require('./2024/ByteListEqual'), + Call: require('./2024/Call'), + CanBeHeldWeakly: require('./2024/CanBeHeldWeakly'), + Canonicalize: require('./2024/Canonicalize'), + CanonicalNumericIndexString: require('./2024/CanonicalNumericIndexString'), + CharacterComplement: require('./2024/CharacterComplement'), + CharacterRange: require('./2024/CharacterRange'), + clamp: require('./2024/clamp'), + ClearKeptObjects: require('./2024/ClearKeptObjects'), + CloneArrayBuffer: require('./2024/CloneArrayBuffer'), + CodePointAt: require('./2024/CodePointAt'), + CodePointsToString: require('./2024/CodePointsToString'), + CompareArrayElements: require('./2024/CompareArrayElements'), + CompareTypedArrayElements: require('./2024/CompareTypedArrayElements'), + CompletePropertyDescriptor: require('./2024/CompletePropertyDescriptor'), + CompletionRecord: require('./2024/CompletionRecord'), + CopyDataProperties: require('./2024/CopyDataProperties'), + CreateAsyncFromSyncIterator: require('./2024/CreateAsyncFromSyncIterator'), + CreateDataProperty: require('./2024/CreateDataProperty'), + CreateDataPropertyOrThrow: require('./2024/CreateDataPropertyOrThrow'), + CreateHTML: require('./2024/CreateHTML'), + CreateIterResultObject: require('./2024/CreateIterResultObject'), + CreateListFromArrayLike: require('./2024/CreateListFromArrayLike'), + CreateNonEnumerableDataPropertyOrThrow: require('./2024/CreateNonEnumerableDataPropertyOrThrow'), + CreateRegExpStringIterator: require('./2024/CreateRegExpStringIterator'), + DateFromTime: require('./2024/DateFromTime'), + DateString: require('./2024/DateString'), + Day: require('./2024/Day'), + DayFromYear: require('./2024/DayFromYear'), + DaysInYear: require('./2024/DaysInYear'), + DayWithinYear: require('./2024/DayWithinYear'), + DefineMethodProperty: require('./2024/DefineMethodProperty'), + DefinePropertyOrThrow: require('./2024/DefinePropertyOrThrow'), + DeletePropertyOrThrow: require('./2024/DeletePropertyOrThrow'), + DetachArrayBuffer: require('./2024/DetachArrayBuffer'), + EnumerableOwnProperties: require('./2024/EnumerableOwnProperties'), + FindViaPredicate: require('./2024/FindViaPredicate'), + FlattenIntoArray: require('./2024/FlattenIntoArray'), + floor: require('./2024/floor'), + FromPropertyDescriptor: require('./2024/FromPropertyDescriptor'), + Get: require('./2024/Get'), + GetArrayBufferMaxByteLengthOption: require('./2024/GetArrayBufferMaxByteLengthOption'), + GetGlobalObject: require('./2024/GetGlobalObject'), + GetIterator: require('./2024/GetIterator'), + GetIteratorFromMethod: require('./2024/GetIteratorFromMethod'), + GetMatchIndexPair: require('./2024/GetMatchIndexPair'), + GetMatchString: require('./2024/GetMatchString'), + GetMethod: require('./2024/GetMethod'), + GetNamedTimeZoneEpochNanoseconds: require('./2024/GetNamedTimeZoneEpochNanoseconds'), + GetOwnPropertyKeys: require('./2024/GetOwnPropertyKeys'), + GetPromiseResolve: require('./2024/GetPromiseResolve'), + GetPrototypeFromConstructor: require('./2024/GetPrototypeFromConstructor'), + GetStringIndex: require('./2024/GetStringIndex'), + GetSubstitution: require('./2024/GetSubstitution'), + GetUTCEpochNanoseconds: require('./2024/GetUTCEpochNanoseconds'), + GetV: require('./2024/GetV'), + GetValueFromBuffer: require('./2024/GetValueFromBuffer'), + GetViewByteLength: require('./2024/GetViewByteLength'), + GroupBy: require('./2024/GroupBy'), + HasEitherUnicodeFlag: require('./2024/HasEitherUnicodeFlag'), + HasOwnProperty: require('./2024/HasOwnProperty'), + HasProperty: require('./2024/HasProperty'), + HourFromTime: require('./2024/HourFromTime'), + InLeapYear: require('./2024/InLeapYear'), + InstallErrorCause: require('./2024/InstallErrorCause'), + InstanceofOperator: require('./2024/InstanceofOperator'), + InternalizeJSONProperty: require('./2024/InternalizeJSONProperty'), + Invoke: require('./2024/Invoke'), + IsAccessorDescriptor: require('./2024/IsAccessorDescriptor'), + IsArray: require('./2024/IsArray'), + IsArrayBufferViewOutOfBounds: require('./2024/IsArrayBufferViewOutOfBounds'), + IsBigIntElementType: require('./2024/IsBigIntElementType'), + IsCallable: require('./2024/IsCallable'), + IsCompatiblePropertyDescriptor: require('./2024/IsCompatiblePropertyDescriptor'), + IsConcatSpreadable: require('./2024/IsConcatSpreadable'), + IsConstructor: require('./2024/IsConstructor'), + IsDataDescriptor: require('./2024/IsDataDescriptor'), + IsDetachedBuffer: require('./2024/IsDetachedBuffer'), + IsExtensible: require('./2024/IsExtensible'), + IsFixedLengthArrayBuffer: require('./2024/IsFixedLengthArrayBuffer'), + IsGenericDescriptor: require('./2024/IsGenericDescriptor'), + IsIntegralNumber: require('./2024/IsIntegralNumber'), + IsLessThan: require('./2024/IsLessThan'), + IsLooselyEqual: require('./2024/IsLooselyEqual'), + IsNoTearConfiguration: require('./2024/IsNoTearConfiguration'), + IsPromise: require('./2024/IsPromise'), + IsPropertyKey: require('./2024/IsPropertyKey'), + IsRegExp: require('./2024/IsRegExp'), + IsSharedArrayBuffer: require('./2024/IsSharedArrayBuffer'), + IsStrictlyEqual: require('./2024/IsStrictlyEqual'), + IsStringWellFormedUnicode: require('./2024/IsStringWellFormedUnicode'), + IsTimeZoneOffsetString: require('./2024/IsTimeZoneOffsetString'), + IsTypedArrayOutOfBounds: require('./2024/IsTypedArrayOutOfBounds'), + IsUnclampedIntegerElementType: require('./2024/IsUnclampedIntegerElementType'), + IsUnsignedElementType: require('./2024/IsUnsignedElementType'), + IsValidIntegerIndex: require('./2024/IsValidIntegerIndex'), + IsViewOutOfBounds: require('./2024/IsViewOutOfBounds'), + IsWordChar: require('./2024/IsWordChar'), + IteratorClose: require('./2024/IteratorClose'), + IteratorComplete: require('./2024/IteratorComplete'), + IteratorNext: require('./2024/IteratorNext'), + IteratorStep: require('./2024/IteratorStep'), + IteratorStepValue: require('./2024/IteratorStepValue'), + IteratorToList: require('./2024/IteratorToList'), + IteratorValue: require('./2024/IteratorValue'), + KeyForSymbol: require('./2024/KeyForSymbol'), + LengthOfArrayLike: require('./2024/LengthOfArrayLike'), + MakeDataViewWithBufferWitnessRecord: require('./2024/MakeDataViewWithBufferWitnessRecord'), + MakeDate: require('./2024/MakeDate'), + MakeDay: require('./2024/MakeDay'), + MakeFullYear: require('./2024/MakeFullYear'), + MakeMatchIndicesIndexPairArray: require('./2024/MakeMatchIndicesIndexPairArray'), + MakeTime: require('./2024/MakeTime'), + MakeTypedArrayWithBufferWitnessRecord: require('./2024/MakeTypedArrayWithBufferWitnessRecord'), + max: require('./2024/max'), + min: require('./2024/min'), + MinFromTime: require('./2024/MinFromTime'), + modulo: require('./2024/modulo'), + MonthFromTime: require('./2024/MonthFromTime'), + msFromTime: require('./2024/msFromTime'), + NewPromiseCapability: require('./2024/NewPromiseCapability'), + NormalCompletion: require('./2024/NormalCompletion'), + Number: require('./2024/Number'), + NumberBitwiseOp: require('./2024/NumberBitwiseOp'), + NumberToBigInt: require('./2024/NumberToBigInt'), + NumericToRawBytes: require('./2024/NumericToRawBytes'), + ObjectDefineProperties: require('./2024/ObjectDefineProperties'), + OrdinaryCreateFromConstructor: require('./2024/OrdinaryCreateFromConstructor'), + OrdinaryDefineOwnProperty: require('./2024/OrdinaryDefineOwnProperty'), + OrdinaryGetOwnProperty: require('./2024/OrdinaryGetOwnProperty'), + OrdinaryGetPrototypeOf: require('./2024/OrdinaryGetPrototypeOf'), + OrdinaryHasInstance: require('./2024/OrdinaryHasInstance'), + OrdinaryHasProperty: require('./2024/OrdinaryHasProperty'), + OrdinaryObjectCreate: require('./2024/OrdinaryObjectCreate'), + OrdinarySetPrototypeOf: require('./2024/OrdinarySetPrototypeOf'), + OrdinaryToPrimitive: require('./2024/OrdinaryToPrimitive'), + ParseHexOctet: require('./2024/ParseHexOctet'), + PromiseResolve: require('./2024/PromiseResolve'), + QuoteJSONString: require('./2024/QuoteJSONString'), + RawBytesToNumeric: require('./2024/RawBytesToNumeric'), + RegExpCreate: require('./2024/RegExpCreate'), + RegExpExec: require('./2024/RegExpExec'), + RegExpHasFlag: require('./2024/RegExpHasFlag'), + RequireObjectCoercible: require('./2024/RequireObjectCoercible'), + SameValue: require('./2024/SameValue'), + SameValueNonNumber: require('./2024/SameValueNonNumber'), + SameValueZero: require('./2024/SameValueZero'), + SecFromTime: require('./2024/SecFromTime'), + Set: require('./2024/Set'), + SetFunctionLength: require('./2024/SetFunctionLength'), + SetFunctionName: require('./2024/SetFunctionName'), + SetIntegrityLevel: require('./2024/SetIntegrityLevel'), + SetTypedArrayFromArrayLike: require('./2024/SetTypedArrayFromArrayLike'), + SetTypedArrayFromTypedArray: require('./2024/SetTypedArrayFromTypedArray'), + SetValueInBuffer: require('./2024/SetValueInBuffer'), + SortIndexedProperties: require('./2024/SortIndexedProperties'), + SpeciesConstructor: require('./2024/SpeciesConstructor'), + StringCreate: require('./2024/StringCreate'), + StringGetOwnProperty: require('./2024/StringGetOwnProperty'), + StringIndexOf: require('./2024/StringIndexOf'), + StringPad: require('./2024/StringPad'), + StringPaddingBuiltinsImpl: require('./2024/StringPaddingBuiltinsImpl'), + StringToBigInt: require('./2024/StringToBigInt'), + StringToCodePoints: require('./2024/StringToCodePoints'), + StringToNumber: require('./2024/StringToNumber'), + substring: require('./2024/substring'), + SymbolDescriptiveString: require('./2024/SymbolDescriptiveString'), + SystemTimeZoneIdentifier: require('./2024/SystemTimeZoneIdentifier'), + TestIntegrityLevel: require('./2024/TestIntegrityLevel'), + ThisBigIntValue: require('./2024/ThisBigIntValue'), + ThisBooleanValue: require('./2024/ThisBooleanValue'), + ThisNumberValue: require('./2024/ThisNumberValue'), + ThisStringValue: require('./2024/ThisStringValue'), + ThisSymbolValue: require('./2024/ThisSymbolValue'), + ThrowCompletion: require('./2024/ThrowCompletion'), + TimeClip: require('./2024/TimeClip'), + TimeFromYear: require('./2024/TimeFromYear'), + TimeString: require('./2024/TimeString'), + TimeWithinDay: require('./2024/TimeWithinDay'), + TimeZoneString: require('./2024/TimeZoneString'), + ToBigInt: require('./2024/ToBigInt'), + ToBigInt64: require('./2024/ToBigInt64'), + ToBigUint64: require('./2024/ToBigUint64'), + ToBoolean: require('./2024/ToBoolean'), + ToDateString: require('./2024/ToDateString'), + ToIndex: require('./2024/ToIndex'), + ToInt16: require('./2024/ToInt16'), + ToInt32: require('./2024/ToInt32'), + ToInt8: require('./2024/ToInt8'), + ToIntegerOrInfinity: require('./2024/ToIntegerOrInfinity'), + ToLength: require('./2024/ToLength'), + ToNumber: require('./2024/ToNumber'), + ToNumeric: require('./2024/ToNumeric'), + ToObject: require('./2024/ToObject'), + ToPrimitive: require('./2024/ToPrimitive'), + ToPropertyDescriptor: require('./2024/ToPropertyDescriptor'), + ToPropertyKey: require('./2024/ToPropertyKey'), + ToString: require('./2024/ToString'), + ToUint16: require('./2024/ToUint16'), + ToUint32: require('./2024/ToUint32'), + ToUint8: require('./2024/ToUint8'), + ToUint8Clamp: require('./2024/ToUint8Clamp'), + ToZeroPaddedDecimalString: require('./2024/ToZeroPaddedDecimalString'), + TrimString: require('./2024/TrimString'), + truncate: require('./2024/truncate'), + Type: require('./2024/Type'), + TypedArrayByteLength: require('./2024/TypedArrayByteLength'), + TypedArrayCreateFromConstructor: require('./2024/TypedArrayCreateFromConstructor'), + TypedArrayCreateSameType: require('./2024/TypedArrayCreateSameType'), + TypedArrayElementSize: require('./2024/TypedArrayElementSize'), + TypedArrayElementType: require('./2024/TypedArrayElementType'), + TypedArrayGetElement: require('./2024/TypedArrayGetElement'), + TypedArrayLength: require('./2024/TypedArrayLength'), + TypedArraySetElement: require('./2024/TypedArraySetElement'), + TypedArraySpeciesCreate: require('./2024/TypedArraySpeciesCreate'), + UnicodeEscape: require('./2024/UnicodeEscape'), + UTF16EncodeCodePoint: require('./2024/UTF16EncodeCodePoint'), + UTF16SurrogatePairToCodePoint: require('./2024/UTF16SurrogatePairToCodePoint'), + ValidateAndApplyPropertyDescriptor: require('./2024/ValidateAndApplyPropertyDescriptor'), + ValidateAtomicAccess: require('./2024/ValidateAtomicAccess'), + ValidateAtomicAccessOnIntegerTypedArray: require('./2024/ValidateAtomicAccessOnIntegerTypedArray'), + ValidateIntegerTypedArray: require('./2024/ValidateIntegerTypedArray'), + ValidateTypedArray: require('./2024/ValidateTypedArray'), + WeakRefDeref: require('./2024/WeakRefDeref'), + WeekDay: require('./2024/WeekDay'), + WordCharacters: require('./2024/WordCharacters'), + YearFromTime: require('./2024/YearFromTime') +}; + +module.exports = ES2024; diff --git a/node_modules/es-abstract/es2025.js b/node_modules/es-abstract/es2025.js new file mode 100644 index 0000000000000000000000000000000000000000..4b09d452781a478d4f4aa5dc146eb8c9210dab84 --- /dev/null +++ b/node_modules/es-abstract/es2025.js @@ -0,0 +1,272 @@ +'use strict'; + +/* eslint global-require: 0 */ +// https://262.ecma-international.org/16.0/#sec-abstract-operations +var ES2025 = { + abs: require('./2025/abs'), + AddEntriesFromIterable: require('./2025/AddEntriesFromIterable'), + AddToKeptObjects: require('./2025/AddToKeptObjects'), + AddValueToKeyedGroup: require('./2025/AddValueToKeyedGroup'), + AdvanceStringIndex: require('./2025/AdvanceStringIndex'), + AllCharacters: require('./2025/AllCharacters'), + ApplyStringOrNumericBinaryOperator: require('./2025/ApplyStringOrNumericBinaryOperator'), + ArrayBufferByteLength: require('./2025/ArrayBufferByteLength'), + ArrayBufferCopyAndDetach: require('./2025/ArrayBufferCopyAndDetach'), + ArrayCreate: require('./2025/ArrayCreate'), + ArraySetLength: require('./2025/ArraySetLength'), + ArraySpeciesCreate: require('./2025/ArraySpeciesCreate'), + AsyncFromSyncIteratorContinuation: require('./2025/AsyncFromSyncIteratorContinuation'), + AsyncIteratorClose: require('./2025/AsyncIteratorClose'), + BigInt: require('./2025/BigInt'), + BigIntBitwiseOp: require('./2025/BigIntBitwiseOp'), + BinaryAnd: require('./2025/BinaryAnd'), + BinaryOr: require('./2025/BinaryOr'), + BinaryXor: require('./2025/BinaryXor'), + ByteListBitwiseOp: require('./2025/ByteListBitwiseOp'), + ByteListEqual: require('./2025/ByteListEqual'), + Call: require('./2025/Call'), + CanBeHeldWeakly: require('./2025/CanBeHeldWeakly'), + Canonicalize: require('./2025/Canonicalize'), + CanonicalizeKeyedCollectionKey: require('./2025/CanonicalizeKeyedCollectionKey'), + CanonicalNumericIndexString: require('./2025/CanonicalNumericIndexString'), + CharacterComplement: require('./2025/CharacterComplement'), + CharacterRange: require('./2025/CharacterRange'), + clamp: require('./2025/clamp'), + ClearKeptObjects: require('./2025/ClearKeptObjects'), + CloneArrayBuffer: require('./2025/CloneArrayBuffer'), + CodePointAt: require('./2025/CodePointAt'), + CodePointsToString: require('./2025/CodePointsToString'), + CompareArrayElements: require('./2025/CompareArrayElements'), + CompareTypedArrayElements: require('./2025/CompareTypedArrayElements'), + CompletePropertyDescriptor: require('./2025/CompletePropertyDescriptor'), + CompletionRecord: require('./2025/CompletionRecord'), + CopyDataProperties: require('./2025/CopyDataProperties'), + CreateAsyncFromSyncIterator: require('./2025/CreateAsyncFromSyncIterator'), + CreateDataProperty: require('./2025/CreateDataProperty'), + CreateDataPropertyOrThrow: require('./2025/CreateDataPropertyOrThrow'), + CreateHTML: require('./2025/CreateHTML'), + CreateIteratorFromClosure: require('./2025/CreateIteratorFromClosure'), + CreateIteratorResultObject: require('./2025/CreateIteratorResultObject'), + CreateListFromArrayLike: require('./2025/CreateListFromArrayLike'), + CreateNonEnumerableDataPropertyOrThrow: require('./2025/CreateNonEnumerableDataPropertyOrThrow'), + CreateRegExpStringIterator: require('./2025/CreateRegExpStringIterator'), + DateFromTime: require('./2025/DateFromTime'), + DateString: require('./2025/DateString'), + Day: require('./2025/Day'), + DayFromYear: require('./2025/DayFromYear'), + DaysInYear: require('./2025/DaysInYear'), + DayWithinYear: require('./2025/DayWithinYear'), + DefineMethodProperty: require('./2025/DefineMethodProperty'), + DefinePropertyOrThrow: require('./2025/DefinePropertyOrThrow'), + DeletePropertyOrThrow: require('./2025/DeletePropertyOrThrow'), + DetachArrayBuffer: require('./2025/DetachArrayBuffer'), + EncodeForRegExpEscape: require('./2025/EncodeForRegExpEscape'), + EnumerableOwnProperties: require('./2025/EnumerableOwnProperties'), + FindViaPredicate: require('./2025/FindViaPredicate'), + FlattenIntoArray: require('./2025/FlattenIntoArray'), + floor: require('./2025/floor'), + FromPropertyDescriptor: require('./2025/FromPropertyDescriptor'), + GeneratorResume: require('./2025/GeneratorResume'), + GeneratorResumeAbrupt: require('./2025/GeneratorResumeAbrupt'), + GeneratorStart: require('./2025/GeneratorStart'), + GeneratorValidate: require('./2025/GeneratorValidate'), + Get: require('./2025/Get'), + GetArrayBufferMaxByteLengthOption: require('./2025/GetArrayBufferMaxByteLengthOption'), + GetGlobalObject: require('./2025/GetGlobalObject'), + GetIterator: require('./2025/GetIterator'), + GetIteratorDirect: require('./2025/GetIteratorDirect'), + GetIteratorFlattenable: require('./2025/GetIteratorFlattenable'), + GetIteratorFromMethod: require('./2025/GetIteratorFromMethod'), + GetMatchIndexPair: require('./2025/GetMatchIndexPair'), + GetMatchString: require('./2025/GetMatchString'), + GetMethod: require('./2025/GetMethod'), + GetNamedTimeZoneEpochNanoseconds: require('./2025/GetNamedTimeZoneEpochNanoseconds'), + GetOwnPropertyKeys: require('./2025/GetOwnPropertyKeys'), + GetPromiseResolve: require('./2025/GetPromiseResolve'), + GetPrototypeFromConstructor: require('./2025/GetPrototypeFromConstructor'), + GetSetRecord: require('./2025/GetSetRecord'), + GetStringIndex: require('./2025/GetStringIndex'), + GetSubstitution: require('./2025/GetSubstitution'), + GetUTCEpochNanoseconds: require('./2025/GetUTCEpochNanoseconds'), + GetV: require('./2025/GetV'), + GetValueFromBuffer: require('./2025/GetValueFromBuffer'), + GetViewByteLength: require('./2025/GetViewByteLength'), + GroupBy: require('./2025/GroupBy'), + HasEitherUnicodeFlag: require('./2025/HasEitherUnicodeFlag'), + HasOwnProperty: require('./2025/HasOwnProperty'), + HasProperty: require('./2025/HasProperty'), + HourFromTime: require('./2025/HourFromTime'), + IfAbruptCloseIterator: require('./2025/IfAbruptCloseIterator'), + InLeapYear: require('./2025/InLeapYear'), + InstallErrorCause: require('./2025/InstallErrorCause'), + InstanceofOperator: require('./2025/InstanceofOperator'), + InternalizeJSONProperty: require('./2025/InternalizeJSONProperty'), + Invoke: require('./2025/Invoke'), + IsAccessorDescriptor: require('./2025/IsAccessorDescriptor'), + IsArray: require('./2025/IsArray'), + IsArrayBufferViewOutOfBounds: require('./2025/IsArrayBufferViewOutOfBounds'), + IsBigIntElementType: require('./2025/IsBigIntElementType'), + IsCallable: require('./2025/IsCallable'), + IsCompatiblePropertyDescriptor: require('./2025/IsCompatiblePropertyDescriptor'), + IsConcatSpreadable: require('./2025/IsConcatSpreadable'), + IsConstructor: require('./2025/IsConstructor'), + IsDataDescriptor: require('./2025/IsDataDescriptor'), + IsDetachedBuffer: require('./2025/IsDetachedBuffer'), + IsExtensible: require('./2025/IsExtensible'), + IsFixedLengthArrayBuffer: require('./2025/IsFixedLengthArrayBuffer'), + IsGenericDescriptor: require('./2025/IsGenericDescriptor'), + IsLessThan: require('./2025/IsLessThan'), + IsLooselyEqual: require('./2025/IsLooselyEqual'), + IsNoTearConfiguration: require('./2025/IsNoTearConfiguration'), + IsPromise: require('./2025/IsPromise'), + IsRegExp: require('./2025/IsRegExp'), + IsSharedArrayBuffer: require('./2025/IsSharedArrayBuffer'), + IsStrictlyEqual: require('./2025/IsStrictlyEqual'), + IsStringWellFormedUnicode: require('./2025/IsStringWellFormedUnicode'), + IsTimeZoneOffsetString: require('./2025/IsTimeZoneOffsetString'), + IsTypedArrayFixedLength: require('./2025/IsTypedArrayFixedLength'), + IsTypedArrayOutOfBounds: require('./2025/IsTypedArrayOutOfBounds'), + IsUnclampedIntegerElementType: require('./2025/IsUnclampedIntegerElementType'), + IsUnsignedElementType: require('./2025/IsUnsignedElementType'), + IsValidIntegerIndex: require('./2025/IsValidIntegerIndex'), + IsViewOutOfBounds: require('./2025/IsViewOutOfBounds'), + IsWordChar: require('./2025/IsWordChar'), + IteratorClose: require('./2025/IteratorClose'), + IteratorComplete: require('./2025/IteratorComplete'), + IteratorNext: require('./2025/IteratorNext'), + IteratorStep: require('./2025/IteratorStep'), + IteratorStepValue: require('./2025/IteratorStepValue'), + IteratorToList: require('./2025/IteratorToList'), + IteratorValue: require('./2025/IteratorValue'), + KeyForSymbol: require('./2025/KeyForSymbol'), + LengthOfArrayLike: require('./2025/LengthOfArrayLike'), + MakeDataViewWithBufferWitnessRecord: require('./2025/MakeDataViewWithBufferWitnessRecord'), + MakeDate: require('./2025/MakeDate'), + MakeDay: require('./2025/MakeDay'), + MakeFullYear: require('./2025/MakeFullYear'), + MakeMatchIndicesIndexPairArray: require('./2025/MakeMatchIndicesIndexPairArray'), + MakeTime: require('./2025/MakeTime'), + MakeTypedArrayWithBufferWitnessRecord: require('./2025/MakeTypedArrayWithBufferWitnessRecord'), + max: require('./2025/max'), + min: require('./2025/min'), + MinFromTime: require('./2025/MinFromTime'), + modulo: require('./2025/modulo'), + MonthFromTime: require('./2025/MonthFromTime'), + msFromTime: require('./2025/msFromTime'), + NewPromiseCapability: require('./2025/NewPromiseCapability'), + NormalCompletion: require('./2025/NormalCompletion'), + Number: require('./2025/Number'), + NumberBitwiseOp: require('./2025/NumberBitwiseOp'), + NumberToBigInt: require('./2025/NumberToBigInt'), + NumericToRawBytes: require('./2025/NumericToRawBytes'), + ObjectDefineProperties: require('./2025/ObjectDefineProperties'), + OrdinaryCreateFromConstructor: require('./2025/OrdinaryCreateFromConstructor'), + OrdinaryDefineOwnProperty: require('./2025/OrdinaryDefineOwnProperty'), + OrdinaryGetOwnProperty: require('./2025/OrdinaryGetOwnProperty'), + OrdinaryGetPrototypeOf: require('./2025/OrdinaryGetPrototypeOf'), + OrdinaryHasInstance: require('./2025/OrdinaryHasInstance'), + OrdinaryHasProperty: require('./2025/OrdinaryHasProperty'), + OrdinaryObjectCreate: require('./2025/OrdinaryObjectCreate'), + OrdinarySetPrototypeOf: require('./2025/OrdinarySetPrototypeOf'), + OrdinaryToPrimitive: require('./2025/OrdinaryToPrimitive'), + ParseHexOctet: require('./2025/ParseHexOctet'), + PromiseResolve: require('./2025/PromiseResolve'), + QuoteJSONString: require('./2025/QuoteJSONString'), + RawBytesToNumeric: require('./2025/RawBytesToNumeric'), + RegExpCreate: require('./2025/RegExpCreate'), + RegExpExec: require('./2025/RegExpExec'), + RegExpHasFlag: require('./2025/RegExpHasFlag'), + RequireObjectCoercible: require('./2025/RequireObjectCoercible'), + ReturnCompletion: require('./2025/ReturnCompletion'), + SameType: require('./2025/SameType'), + SameValue: require('./2025/SameValue'), + SameValueNonNumber: require('./2025/SameValueNonNumber'), + SameValueZero: require('./2025/SameValueZero'), + SecFromTime: require('./2025/SecFromTime'), + Set: require('./2025/Set'), + SetDataHas: require('./2025/SetDataHas'), + SetDataIndex: require('./2025/SetDataIndex'), + SetDataSize: require('./2025/SetDataSize'), + SetFunctionLength: require('./2025/SetFunctionLength'), + SetFunctionName: require('./2025/SetFunctionName'), + SetIntegrityLevel: require('./2025/SetIntegrityLevel'), + SetterThatIgnoresPrototypeProperties: require('./2025/SetterThatIgnoresPrototypeProperties'), + SetTypedArrayFromArrayLike: require('./2025/SetTypedArrayFromArrayLike'), + SetTypedArrayFromTypedArray: require('./2025/SetTypedArrayFromTypedArray'), + SetValueInBuffer: require('./2025/SetValueInBuffer'), + SortIndexedProperties: require('./2025/SortIndexedProperties'), + SpeciesConstructor: require('./2025/SpeciesConstructor'), + StringCreate: require('./2025/StringCreate'), + StringGetOwnProperty: require('./2025/StringGetOwnProperty'), + StringIndexOf: require('./2025/StringIndexOf'), + StringLastIndexOf: require('./2025/StringLastIndexOf'), + StringPad: require('./2025/StringPad'), + StringPaddingBuiltinsImpl: require('./2025/StringPaddingBuiltinsImpl'), + StringToBigInt: require('./2025/StringToBigInt'), + StringToCodePoints: require('./2025/StringToCodePoints'), + StringToNumber: require('./2025/StringToNumber'), + substring: require('./2025/substring'), + SymbolDescriptiveString: require('./2025/SymbolDescriptiveString'), + SystemTimeZoneIdentifier: require('./2025/SystemTimeZoneIdentifier'), + TestIntegrityLevel: require('./2025/TestIntegrityLevel'), + ThisBigIntValue: require('./2025/ThisBigIntValue'), + ThisBooleanValue: require('./2025/ThisBooleanValue'), + ThisNumberValue: require('./2025/ThisNumberValue'), + ThisStringValue: require('./2025/ThisStringValue'), + ThisSymbolValue: require('./2025/ThisSymbolValue'), + ThrowCompletion: require('./2025/ThrowCompletion'), + TimeClip: require('./2025/TimeClip'), + TimeFromYear: require('./2025/TimeFromYear'), + TimeString: require('./2025/TimeString'), + TimeWithinDay: require('./2025/TimeWithinDay'), + TimeZoneString: require('./2025/TimeZoneString'), + ToBigInt: require('./2025/ToBigInt'), + ToBigInt64: require('./2025/ToBigInt64'), + ToBigUint64: require('./2025/ToBigUint64'), + ToBoolean: require('./2025/ToBoolean'), + ToDateString: require('./2025/ToDateString'), + ToIndex: require('./2025/ToIndex'), + ToInt16: require('./2025/ToInt16'), + ToInt32: require('./2025/ToInt32'), + ToInt8: require('./2025/ToInt8'), + ToIntegerOrInfinity: require('./2025/ToIntegerOrInfinity'), + ToLength: require('./2025/ToLength'), + ToNumber: require('./2025/ToNumber'), + ToNumeric: require('./2025/ToNumeric'), + ToObject: require('./2025/ToObject'), + ToPrimitive: require('./2025/ToPrimitive'), + ToPropertyDescriptor: require('./2025/ToPropertyDescriptor'), + ToPropertyKey: require('./2025/ToPropertyKey'), + ToString: require('./2025/ToString'), + ToUint16: require('./2025/ToUint16'), + ToUint32: require('./2025/ToUint32'), + ToUint8: require('./2025/ToUint8'), + ToUint8Clamp: require('./2025/ToUint8Clamp'), + ToZeroPaddedDecimalString: require('./2025/ToZeroPaddedDecimalString'), + TrimString: require('./2025/TrimString'), + truncate: require('./2025/truncate'), + TypedArrayByteLength: require('./2025/TypedArrayByteLength'), + TypedArrayCreateFromConstructor: require('./2025/TypedArrayCreateFromConstructor'), + TypedArrayCreateSameType: require('./2025/TypedArrayCreateSameType'), + TypedArrayElementSize: require('./2025/TypedArrayElementSize'), + TypedArrayElementType: require('./2025/TypedArrayElementType'), + TypedArrayGetElement: require('./2025/TypedArrayGetElement'), + TypedArrayLength: require('./2025/TypedArrayLength'), + TypedArraySetElement: require('./2025/TypedArraySetElement'), + TypedArraySpeciesCreate: require('./2025/TypedArraySpeciesCreate'), + UnicodeEscape: require('./2025/UnicodeEscape'), + UpdateModifiers: require('./2025/UpdateModifiers'), + UTF16EncodeCodePoint: require('./2025/UTF16EncodeCodePoint'), + UTF16SurrogatePairToCodePoint: require('./2025/UTF16SurrogatePairToCodePoint'), + ValidateAndApplyPropertyDescriptor: require('./2025/ValidateAndApplyPropertyDescriptor'), + ValidateAtomicAccess: require('./2025/ValidateAtomicAccess'), + ValidateAtomicAccessOnIntegerTypedArray: require('./2025/ValidateAtomicAccessOnIntegerTypedArray'), + ValidateIntegerTypedArray: require('./2025/ValidateIntegerTypedArray'), + ValidateTypedArray: require('./2025/ValidateTypedArray'), + WeakRefDeref: require('./2025/WeakRefDeref'), + WeekDay: require('./2025/WeekDay'), + WordCharacters: require('./2025/WordCharacters'), + YearFromTime: require('./2025/YearFromTime') +}; + +module.exports = ES2025; diff --git a/node_modules/es-abstract/es5.js b/node_modules/es-abstract/es5.js new file mode 100644 index 0000000000000000000000000000000000000000..3cb42988c99d76000cd5c1f64f659c4c3583b64a --- /dev/null +++ b/node_modules/es-abstract/es5.js @@ -0,0 +1,52 @@ +'use strict'; + +/* eslint global-require: 0 */ + +// https://es5.github.io/#x9 +module.exports = { + 'Abstract Equality Comparison': require('./5/AbstractEqualityComparison'), + 'Abstract Relational Comparison': require('./5/AbstractRelationalComparison'), + 'Strict Equality Comparison': require('./5/StrictEqualityComparison'), + abs: require('./5/abs'), + Canonicalize: require('./5/Canonicalize'), + CheckObjectCoercible: require('./5/CheckObjectCoercible'), + DateFromTime: require('./5/DateFromTime'), + Day: require('./5/Day'), + DayFromYear: require('./5/DayFromYear'), + DaysInYear: require('./5/DaysInYear'), + DayWithinYear: require('./5/DayWithinYear'), + floor: require('./5/floor'), + FromPropertyDescriptor: require('./5/FromPropertyDescriptor'), + HourFromTime: require('./5/HourFromTime'), + InLeapYear: require('./5/InLeapYear'), + IsAccessorDescriptor: require('./5/IsAccessorDescriptor'), + IsCallable: require('./5/IsCallable'), + IsDataDescriptor: require('./5/IsDataDescriptor'), + IsGenericDescriptor: require('./5/IsGenericDescriptor'), + IsPropertyDescriptor: require('./5/IsPropertyDescriptor'), + MakeDate: require('./5/MakeDate'), + MakeDay: require('./5/MakeDay'), + MakeTime: require('./5/MakeTime'), + MinFromTime: require('./5/MinFromTime'), + modulo: require('./5/modulo'), + MonthFromTime: require('./5/MonthFromTime'), + msFromTime: require('./5/msFromTime'), + SameValue: require('./5/SameValue'), + SecFromTime: require('./5/SecFromTime'), + TimeClip: require('./5/TimeClip'), + TimeFromYear: require('./5/TimeFromYear'), + TimeWithinDay: require('./5/TimeWithinDay'), + ToBoolean: require('./5/ToBoolean'), + ToInt32: require('./5/ToInt32'), + ToInteger: require('./5/ToInteger'), + ToNumber: require('./5/ToNumber'), + ToObject: require('./5/ToObject'), + ToPrimitive: require('./5/ToPrimitive'), + ToPropertyDescriptor: require('./5/ToPropertyDescriptor'), + ToString: require('./5/ToString'), + ToUint16: require('./5/ToUint16'), + ToUint32: require('./5/ToUint32'), + Type: require('./5/Type'), + WeekDay: require('./5/WeekDay'), + YearFromTime: require('./5/YearFromTime') +}; diff --git a/node_modules/es-abstract/es6.js b/node_modules/es-abstract/es6.js new file mode 100644 index 0000000000000000000000000000000000000000..2d1f4dc927a904056054c0030c14db3703e9d1d7 --- /dev/null +++ b/node_modules/es-abstract/es6.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./es2015'); diff --git a/node_modules/es-abstract/es7.js b/node_modules/es-abstract/es7.js new file mode 100644 index 0000000000000000000000000000000000000000..f2f15c0a88712c90794becea456ba86d4c35b11e --- /dev/null +++ b/node_modules/es-abstract/es7.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./es2016'); diff --git a/node_modules/es-abstract/eslint.config.mjs b/node_modules/es-abstract/eslint.config.mjs new file mode 100644 index 0000000000000000000000000000000000000000..8296fbfa0b9edd6cf66055008adbb9eb5934df20 --- /dev/null +++ b/node_modules/es-abstract/eslint.config.mjs @@ -0,0 +1,129 @@ +import ljharb from '@ljharb/eslint-config/flat'; +import ljharbNodeLatest from '@ljharb/eslint-config/flat/node/latest'; +import ljharbTests from '@ljharb/eslint-config/flat/tests'; + +export default [ + { + ignores: [ + '.nyc_output', + ], + }, + ...ljharb, + { + languageOptions: { + globals: { + DataView: false, + Float16Array: false, + Float32Array: false, + Float64Array: false, + Int8Array: false, + Int16Array: false, + Int32Array: false, + Intl: false, + Uint8Array: false, + Uint8ClampedArray: false, + Uint16Array: false, + Uint32Array: false, + }, + }, + rules: { + 'array-bracket-newline': 'off', + complexity: 'off', + eqeqeq: ['error', 'allow-null'], + 'func-name-matching': 'off', + 'id-length': ['error', { min: 1, max: 40 }], + 'max-lines-per-function': 'warn', + 'max-params': ['error', 5], + 'max-statements': 'warn', + 'max-statements-per-line': ['error', { max: 2 }], + 'multiline-comment-style': 'off', + 'new-cap': 'off', + 'no-extra-parens': 'warn', + 'no-implicit-coercion': ['error', { + boolean: false, + number: false, + string: true, + }], + 'no-magic-numbers': 'off', + 'sort-keys': 'off', + }, + }, + { + files: ['GetIntrinsic.js'], + rules: { + 'max-statements': 'off', + }, + }, + { + files: ['operations/*'], + rules: { + 'max-lines': 'off', + }, + }, + ...ljharbNodeLatest + .filter((c) => !c.files?.some((f) => typeof f === 'function' || f === '**/*.mjs')) + .map((c) => ({ + ...c, + files: [ + 'operations/deltas.js', + 'operations/getOps.js', + 'operations/spackle.js', + 'operations/years.js', + ], + })), + { + files: [ + 'operations/deltas.js', + 'operations/getOps.js', + 'operations/spackle.js', + 'operations/years.js', + ], + rules: { + complexity: 'off', + 'func-style': 'off', + 'max-lines-per-function': 'off', + 'max-nested-callbacks': 'off', + 'max-statements': 'off', + 'no-magic-numbers': 'off', + 'no-throw-literal': 'off', + }, + }, + ...ljharbTests.map((c) => ({ + ...c, + files: ['test/**'], + })), + { + files: ['test/**'], + rules: { + 'max-len': 'off', + 'max-lines-per-function': 'off', + 'no-implicit-coercion': 'off', + 'no-invalid-this': 'warn', + 'prefer-promise-reject-errors': 'off', + }, + }, + { + files: [ + '*/Num*ToRawBytes.js', + '*/RawBytesToNum*.js', + 'helpers/bytesAs*.js', + 'helpers/valueToFloat*.js', + ], + rules: { + 'max-lines-per-function': 'off', + 'max-statements': 'off', + 'no-redeclare': 'warn', + 'operator-linebreak': ['error', 'before', { + overrides: { + '=': 'none', + }, + }], + }, + }, + { + files: ['*/GetSubstitution.js'], + rules: { + 'max-depth': 'off', + }, + }, +]; diff --git a/node_modules/es-abstract/helpers/CharSet.js b/node_modules/es-abstract/helpers/CharSet.js new file mode 100644 index 0000000000000000000000000000000000000000..ce4c56d99ca2d960b0b9a1b4cc7ef8e0d53eb2ca --- /dev/null +++ b/node_modules/es-abstract/helpers/CharSet.js @@ -0,0 +1,130 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); +var hasOwn = require('hasown'); + +var caseFolding = require('./caseFolding.json'); +var IsArray = require('./IsArray'); +var isLeadingSurrogate = require('./isLeadingSurrogate'); +var isTrailingSurrogate = require('./isTrailingSurrogate'); + +var $charCodeAt = callBound('%String.prototype.charCodeAt%'); +var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); + +/* eslint func-style: 0 */ + +function CharSet(test, yieldCh) { + if (typeof test !== 'function') { + throw new $TypeError('Assertion failed: `test` must be a function'); + } + if (typeof yieldCh !== 'function') { + throw new $TypeError('Assertion failed: `yield` must be a function'); + } + this.test = test; + this.yield = yieldCh; +} +CharSet.prototype.count = function () { + var count = 0; + this.yield(function () { count += 1; }); + return count; +}; + +function testCodeUnits(CharSetElement) { + if (typeof CharSetElement !== 'string') { + throw new $TypeError('Assertion failed: `CharSetElement` must be a string'); + } + return CharSetElement.length !== 1; +} +function yieldCodeUnits(emit) { + for (var i = 0; i <= 0xDFFF; i += 1) { + emit($fromCharCode(i)); + } +} + +function testCodePoints(CharSetElement) { + if (typeof CharSetElement !== 'string') { + throw new $TypeError('Assertion failed: `CharSetElement` must be a string'); + } + + if (CharSetElement.length === 1) { + return true; + } + if (CharSetElement.length === 2) { + var hi = $charCodeAt(CharSetElement, 0); + var lo = $charCodeAt(CharSetElement, 1); + return isLeadingSurrogate(hi) && isTrailingSurrogate(lo); + } + + return false; +} + +function yieldCodePoints(emit) { + for (var i = 0; i <= 0xDFFF; i += 1) { + emit($fromCharCode(i)); + } + for (var u = 0x10000; u <= 0x10FFFF; u += 1) { + var cp = u - 0x10000; + var high = (cp >> 10) + 0xD800; + var low = (cp & 0x3FF) + 0xDC00; + emit($fromCharCode(high, low)); + } +} + +function charsToMap(chars) { + if (!IsArray(chars)) { + throw new $TypeError('Assertion failed: `chars` must be an array'); + } + + var map = { __proto__: null }; + for (var i = 0; i < chars.length; i += 1) { + var char = chars[i]; + if (typeof char !== 'string' || (char.length !== 1 && char.length !== 2)) { + throw new $TypeError('Assertion failed: `chars` must be an array of strings of length 1'); + } + map[char] = true; + } + return map; +} + +module.exports = { + CharSet: CharSet, + from: function from(chars) { + var map = charsToMap(chars); + return new CharSet( + function test(CharSetElement) { + return hasOwn(map, CharSetElement); + }, + function yieldChar(emit) { + // eslint-disable-next-line no-restricted-syntax + for (var k in map) { + if (hasOwn(map, k)) { + emit(k); + } + } + } + ); + }, + getCodeUnits: function () { + return new CharSet(testCodeUnits, yieldCodeUnits); + }, + getCodePoints: function () { + return new CharSet(testCodePoints, yieldCodePoints); + }, + getNonSimpleCaseFoldingCodePoints: function () { + return new CharSet( + function test(CharSetElement) { + return testCodePoints(CharSetElement) && !hasOwn(caseFolding.S, CharSetElement); + }, + function yieldChar(emit) { + yieldCodePoints(function (CharSetElement) { + if (!hasOwn(caseFolding.S, CharSetElement)) { + emit(CharSetElement); + } + }); + } + ); + } +}; diff --git a/node_modules/es-abstract/helpers/DefineOwnProperty.js b/node_modules/es-abstract/helpers/DefineOwnProperty.js new file mode 100644 index 0000000000000000000000000000000000000000..ece24ad0c5dbb5d52158839c458b7490aa2d0970 --- /dev/null +++ b/node_modules/es-abstract/helpers/DefineOwnProperty.js @@ -0,0 +1,53 @@ +'use strict'; + +var hasPropertyDescriptors = require('has-property-descriptors'); + +var $defineProperty = require('es-define-property'); + +var hasArrayLengthDefineBug = hasPropertyDescriptors.hasArrayLengthDefineBug(); + +// eslint-disable-next-line global-require +var isArray = hasArrayLengthDefineBug && require('../helpers/IsArray'); + +var callBound = require('call-bound'); + +var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); + +// eslint-disable-next-line max-params +module.exports = function DefineOwnProperty(IsDataDescriptor, SameValue, FromPropertyDescriptor, O, P, desc) { + if (!$defineProperty) { + if (!IsDataDescriptor(desc)) { + // ES3 does not support getters/setters + return false; + } + if (!desc['[[Configurable]]'] || !desc['[[Writable]]']) { + return false; + } + + // fallback for ES3 + if (P in O && $isEnumerable(O, P) !== !!desc['[[Enumerable]]']) { + // a non-enumerable existing property + return false; + } + + // property does not exist at all, or exists but is enumerable + var V = desc['[[Value]]']; + // eslint-disable-next-line no-param-reassign + O[P] = V; // will use [[Define]] + return SameValue(O[P], V); + } + if ( + hasArrayLengthDefineBug + && P === 'length' + && '[[Value]]' in desc + && isArray(O) + && O.length !== desc['[[Value]]'] + ) { + // eslint-disable-next-line no-param-reassign + O.length = desc['[[Value]]']; + return O.length === desc['[[Value]]']; + } + + $defineProperty(O, P, FromPropertyDescriptor(desc)); + return true; +}; diff --git a/node_modules/es-abstract/helpers/IsArray.js b/node_modules/es-abstract/helpers/IsArray.js new file mode 100644 index 0000000000000000000000000000000000000000..f97eed275eba45ced47898d621957f5d83f9696a --- /dev/null +++ b/node_modules/es-abstract/helpers/IsArray.js @@ -0,0 +1,12 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Array = GetIntrinsic('%Array%'); + +// eslint-disable-next-line global-require +var toStr = !$Array.isArray && require('call-bound')('Object.prototype.toString'); + +module.exports = $Array.isArray || function IsArray(argument) { + return toStr(argument) === '[object Array]'; +}; diff --git a/node_modules/es-abstract/helpers/OwnPropertyKeys.js b/node_modules/es-abstract/helpers/OwnPropertyKeys.js new file mode 100644 index 0000000000000000000000000000000000000000..8efbc2395637c26232903ff01fde2fb782b2449c --- /dev/null +++ b/node_modules/es-abstract/helpers/OwnPropertyKeys.js @@ -0,0 +1,4 @@ +'use strict'; + +// TODO, semver-major: remove +module.exports = require('own-keys'); diff --git a/node_modules/es-abstract/helpers/assertRecord.js b/node_modules/es-abstract/helpers/assertRecord.js new file mode 100644 index 0000000000000000000000000000000000000000..a8232680b090aaab04b773d2b49e18ab94289660 --- /dev/null +++ b/node_modules/es-abstract/helpers/assertRecord.js @@ -0,0 +1,32 @@ +'use strict'; + +// TODO, semver-major: delete this + +var $TypeError = require('es-errors/type'); +var $SyntaxError = require('es-errors/syntax'); + +var isMatchRecord = require('./records/match-record'); +var isPropertyDescriptor = require('./records/property-descriptor'); +var isIteratorRecord = require('./records/iterator-record-2023'); +var isPromiseCapabilityRecord = require('./records/promise-capability-record'); +var isAsyncGeneratorRequestRecord = require('./records/async-generator-request-record'); +var isRegExpRecord = require('./records/regexp-record'); + +var predicates = { + 'Property Descriptor': isPropertyDescriptor, + 'Match Record': isMatchRecord, + 'Iterator Record': isIteratorRecord, + 'PromiseCapability Record': isPromiseCapabilityRecord, + 'AsyncGeneratorRequest Record': isAsyncGeneratorRequestRecord, + 'RegExp Record': isRegExpRecord +}; + +module.exports = function assertRecord(Type, recordType, argumentName, value) { + var predicate = predicates[recordType]; + if (typeof predicate !== 'function') { + throw new $SyntaxError('unknown record type: ' + recordType); + } + if (!predicate(value)) { + throw new $TypeError(argumentName + ' must be a ' + recordType); + } +}; diff --git a/node_modules/es-abstract/helpers/assign.js b/node_modules/es-abstract/helpers/assign.js new file mode 100644 index 0000000000000000000000000000000000000000..1e63a30de0c6d3b30a9cd4565cb6cb1676445e6a --- /dev/null +++ b/node_modules/es-abstract/helpers/assign.js @@ -0,0 +1,22 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var hasOwn = require('hasown'); + +var $assign = GetIntrinsic('%Object.assign%', true); + +module.exports = function assign(target, source) { + if ($assign) { + return $assign(target, source); + } + + // eslint-disable-next-line no-restricted-syntax + for (var key in source) { + if (hasOwn(source, key)) { + // eslint-disable-next-line no-param-reassign + target[key] = source[key]; + } + } + return target; +}; diff --git a/node_modules/es-abstract/helpers/bytesAsFloat16.js b/node_modules/es-abstract/helpers/bytesAsFloat16.js new file mode 100644 index 0000000000000000000000000000000000000000..fee656a89e87506297977d22be7321f76d18a3ec --- /dev/null +++ b/node_modules/es-abstract/helpers/bytesAsFloat16.js @@ -0,0 +1,47 @@ +'use strict'; + +var $pow = require('math-intrinsics/pow'); + +module.exports = function bytesAsFloat32(rawBytes) { + // return new $Float16Array(new $Uint8Array(rawBytes).buffer)[0]; + /* + Let value be the byte elements of rawBytes concatenated and interpreted as a little-endian bit string encoding of an IEEE 754-2019 binary16 value. + If value is a NaN, return NaN. + Return the Number value that corresponds to value. + */ + + var bits = (rawBytes[1] << 8) | rawBytes[0]; + + // extract sign, exponent, mantissa + var sign = bits & 0x8000 ? -1 : 1; + var exponent = (bits & 0x7C00) >> 10; + var mantissa = bits & 0x03FF; + + // zero (±0) + if (exponent === 0 && mantissa === 0) { + return sign === 1 ? 0 : -0; + } + + // infinities + if (exponent === 0x1F && mantissa === 0) { + return sign === 1 ? Infinity : -Infinity; + } + + // NaN + if (exponent === 0x1F && mantissa !== 0) { + return NaN; + } + + // remove bias (15) + exponent -= 15; + + // subnormals + if (exponent === -15) { + // value = sign * (mantissa) * 2^(1-bias-10) = mantissa * 2^(-14-10) + return sign * mantissa * $pow(2, -24); + } + + // normals + // value = sign * (1 + mantissa/2^10) * 2^exponent + return sign * (1 + (mantissa * $pow(2, -10))) * $pow(2, exponent); +}; diff --git a/node_modules/es-abstract/helpers/bytesAsFloat32.js b/node_modules/es-abstract/helpers/bytesAsFloat32.js new file mode 100644 index 0000000000000000000000000000000000000000..ead041003f7c0944fb55f3909b69c91bbb3080c7 --- /dev/null +++ b/node_modules/es-abstract/helpers/bytesAsFloat32.js @@ -0,0 +1,36 @@ +'use strict'; + +var $pow = require('math-intrinsics/pow'); + +module.exports = function bytesAsFloat32(rawBytes) { + // return new $Float32Array(new $Uint8Array(rawBytes).buffer)[0]; + + /* + Let value be the byte elements of rawBytes concatenated and interpreted as a little-endian bit string encoding of an IEEE 754-2008 binary32 value. +If value is an IEEE 754-2008 binary32 NaN value, return the NaN Number value. +Return the Number value that corresponds to value. + */ + var sign = rawBytes[3] & 0x80 ? -1 : 1; // Check the sign bit + var exponent = ((rawBytes[3] & 0x7F) << 1) + | (rawBytes[2] >> 7); // Combine bits for exponent + var mantissa = ((rawBytes[2] & 0x7F) << 16) + | (rawBytes[1] << 8) + | rawBytes[0]; // Combine bits for mantissa + + if (exponent === 0 && mantissa === 0) { + return sign === 1 ? 0 : -0; + } + if (exponent === 0xFF && mantissa === 0) { + return sign === 1 ? Infinity : -Infinity; + } + if (exponent === 0xFF && mantissa !== 0) { + return NaN; + } + + exponent -= 127; // subtract the bias + + if (exponent === -127) { + return sign * mantissa * $pow(2, -126 - 23); + } + return sign * (1 + (mantissa * $pow(2, -23))) * $pow(2, exponent); +}; diff --git a/node_modules/es-abstract/helpers/bytesAsFloat64.js b/node_modules/es-abstract/helpers/bytesAsFloat64.js new file mode 100644 index 0000000000000000000000000000000000000000..600831eab9b45a597f0603708939d34e79efa635 --- /dev/null +++ b/node_modules/es-abstract/helpers/bytesAsFloat64.js @@ -0,0 +1,42 @@ +'use strict'; + +var $pow = require('math-intrinsics/pow'); + +module.exports = function bytesAsFloat64(rawBytes) { + // return new $Float64Array(new $Uint8Array(rawBytes).buffer)[0]; + + /* + Let value be the byte elements of rawBytes concatenated and interpreted as a little-endian bit string encoding of an IEEE 754-2008 binary64 value. +If value is an IEEE 754-2008 binary64 NaN value, return the NaN Number value. +Return the Number value that corresponds to value. + */ + var sign = rawBytes[7] & 0x80 ? -1 : 1; // first bit + var exponent = ((rawBytes[7] & 0x7F) << 4) // 7 bits from index 7 + | ((rawBytes[6] & 0xF0) >> 4); // 4 bits from index 6 + var mantissa = ((rawBytes[6] & 0x0F) * 0x1000000000000) // 4 bits from index 6 + + (rawBytes[5] * 0x10000000000) // 8 bits from index 5 + + (rawBytes[4] * 0x100000000) // 8 bits from index 4 + + (rawBytes[3] * 0x1000000) // 8 bits from index 3 + + (rawBytes[2] * 0x10000) // 8 bits from index 2 + + (rawBytes[1] * 0x100) // 8 bits from index 1 + + rawBytes[0]; // 8 bits from index 0 + + if (exponent === 0 && mantissa === 0) { + return sign * 0; + } + if (exponent === 0x7FF && mantissa !== 0) { + return NaN; + } + if (exponent === 0x7FF && mantissa === 0) { + return sign * Infinity; + } + + exponent -= 1023; // subtract the bias + + // Handle subnormal numbers + if (exponent === -1023) { + return sign * mantissa * 5e-324; // $pow(2, -1022 - 52) + } + + return sign * (1 + (mantissa / 0x10000000000000)) * $pow(2, exponent); +}; diff --git a/node_modules/es-abstract/helpers/bytesAsInteger.js b/node_modules/es-abstract/helpers/bytesAsInteger.js new file mode 100644 index 0000000000000000000000000000000000000000..0a79628f2d191b9d666d8ef2016d75074f8918d7 --- /dev/null +++ b/node_modules/es-abstract/helpers/bytesAsInteger.js @@ -0,0 +1,32 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $pow = require('math-intrinsics/pow'); + +var $Number = GetIntrinsic('%Number%'); +var $BigInt = GetIntrinsic('%BigInt%', true); + +module.exports = function bytesAsInteger(rawBytes, elementSize, isUnsigned, isBigInt) { + var Z = isBigInt ? $BigInt : $Number; + + // this is common to both branches + var intValue = Z(0); + for (var i = 0; i < rawBytes.length; i++) { + intValue += Z(rawBytes[i] * $pow(2, 8 * i)); + } + /* + Let intValue be the byte elements of rawBytes concatenated and interpreted as a bit string encoding of an unsigned little-endian binary number. + */ + + if (!isUnsigned) { // steps 5-6 + // Let intValue be the byte elements of rawBytes concatenated and interpreted as a bit string encoding of a binary little-endian 2's complement number of bit length elementSize × 8. + var bitLength = elementSize * 8; + + if (rawBytes[elementSize - 1] & 0x80) { + intValue -= Z($pow(2, bitLength)); + } + } + + return intValue; // step 7 +}; diff --git a/node_modules/es-abstract/helpers/callBind.js b/node_modules/es-abstract/helpers/callBind.js new file mode 100644 index 0000000000000000000000000000000000000000..699dba7062bd96f5cf7e799b4dfc6d57f5835be0 --- /dev/null +++ b/node_modules/es-abstract/helpers/callBind.js @@ -0,0 +1,5 @@ +'use strict'; + +// TODO; semver-major: remove + +module.exports = require('call-bind'); diff --git a/node_modules/es-abstract/helpers/callBound.js b/node_modules/es-abstract/helpers/callBound.js new file mode 100644 index 0000000000000000000000000000000000000000..8ef10c337e8d98c5f02c7e29abe9b5f47b53df2b --- /dev/null +++ b/node_modules/es-abstract/helpers/callBound.js @@ -0,0 +1,5 @@ +'use strict'; + +// TODO; semver-major: remove + +module.exports = require('call-bound'); diff --git a/node_modules/es-abstract/helpers/caseFolding.json b/node_modules/es-abstract/helpers/caseFolding.json new file mode 100644 index 0000000000000000000000000000000000000000..1f8383511e4b914c3422897ca57368594b0a02d8 --- /dev/null +++ b/node_modules/es-abstract/helpers/caseFolding.json @@ -0,0 +1,1430 @@ +{ + "C": { + "a": "A", + "b": "B", + "c": "C", + "d": "D", + "e": "E", + "f": "F", + "g": "G", + "h": "H", + "i": "I", + "j": "J", + "k": "K", + "l": "L", + "m": "M", + "n": "N", + "o": "O", + "p": "P", + "q": "Q", + "r": "R", + "s": "ſ", + "t": "T", + "u": "U", + "v": "V", + "w": "W", + "x": "X", + "y": "Y", + "z": "Z", + "μ": "Μ", + "à": "À", + "á": "Á", + "â": "Â", + "ã": "Ã", + "ä": "Ä", + "å": "Å", + "æ": "Æ", + "ç": "Ç", + "è": "È", + "é": "É", + "ê": "Ê", + "ë": "Ë", + "ì": "Ì", + "í": "Í", + "î": "Î", + "ï": "Ï", + "ð": "Ð", + "ñ": "Ñ", + "ò": "Ò", + "ó": "Ó", + "ô": "Ô", + "õ": "Õ", + "ö": "Ö", + "ø": "Ø", + "ù": "Ù", + "ú": "Ú", + "û": "Û", + "ü": "Ü", + "ý": "Ý", + "þ": "Þ", + "ā": "Ā", + "ă": "Ă", + "ą": "Ą", + "ć": "Ć", + "ĉ": "Ĉ", + "ċ": "Ċ", + "č": "Č", + "ď": "Ď", + "đ": "Đ", + "ē": "Ē", + "ĕ": "Ĕ", + "ė": "Ė", + "ę": "Ę", + "ě": "Ě", + "ĝ": "Ĝ", + "ğ": "Ğ", + "ġ": "Ġ", + "ģ": "Ģ", + "ĥ": "Ĥ", + "ħ": "Ħ", + "ĩ": "Ĩ", + "ī": "Ī", + "ĭ": "Ĭ", + "į": "Į", + "ij": "IJ", + "ĵ": "Ĵ", + "ķ": "Ķ", + "ĺ": "Ĺ", + "ļ": "Ļ", + "ľ": "Ľ", + "ŀ": "Ŀ", + "ł": "Ł", + "ń": "Ń", + "ņ": "Ņ", + "ň": "Ň", + "ŋ": "Ŋ", + "ō": "Ō", + "ŏ": "Ŏ", + "ő": "Ő", + "œ": "Œ", + "ŕ": "Ŕ", + "ŗ": "Ŗ", + "ř": "Ř", + "ś": "Ś", + "ŝ": "Ŝ", + "ş": "Ş", + "š": "Š", + "ţ": "Ţ", + "ť": "Ť", + "ŧ": "Ŧ", + "ũ": "Ũ", + "ū": "Ū", + "ŭ": "Ŭ", + "ů": "Ů", + "ű": "Ű", + "ų": "Ų", + "ŵ": "Ŵ", + "ŷ": "Ŷ", + "ÿ": "Ÿ", + "ź": "Ź", + "ż": "Ż", + "ž": "Ž", + "ɓ": "Ɓ", + "ƃ": "Ƃ", + "ƅ": "Ƅ", + "ɔ": "Ɔ", + "ƈ": "Ƈ", + "ɖ": "Ɖ", + "ɗ": "Ɗ", + "ƌ": "Ƌ", + "ǝ": "Ǝ", + "ə": "Ə", + "ɛ": "Ɛ", + "ƒ": "Ƒ", + "ɠ": "Ɠ", + "ɣ": "Ɣ", + "ɩ": "Ɩ", + "ɨ": "Ɨ", + "ƙ": "Ƙ", + "ɯ": "Ɯ", + "ɲ": "Ɲ", + "ɵ": "Ɵ", + "ơ": "Ơ", + "ƣ": "Ƣ", + "ƥ": "Ƥ", + "ʀ": "Ʀ", + "ƨ": "Ƨ", + "ʃ": "Ʃ", + "ƭ": "Ƭ", + "ʈ": "Ʈ", + "ư": "Ư", + "ʊ": "Ʊ", + "ʋ": "Ʋ", + "ƴ": "Ƴ", + "ƶ": "Ƶ", + "ʒ": "Ʒ", + "ƹ": "Ƹ", + "ƽ": "Ƽ", + "dž": "Dž", + "lj": "Lj", + "nj": "Nj", + "ǎ": "Ǎ", + "ǐ": "Ǐ", + "ǒ": "Ǒ", + "ǔ": "Ǔ", + "ǖ": "Ǖ", + "ǘ": "Ǘ", + "ǚ": "Ǚ", + "ǜ": "Ǜ", + "ǟ": "Ǟ", + "ǡ": "Ǡ", + "ǣ": "Ǣ", + "ǥ": "Ǥ", + "ǧ": "Ǧ", + "ǩ": "Ǩ", + "ǫ": "Ǫ", + "ǭ": "Ǭ", + "ǯ": "Ǯ", + "dz": "Dz", + "ǵ": "Ǵ", + "ƕ": "Ƕ", + "ƿ": "Ƿ", + "ǹ": "Ǹ", + "ǻ": "Ǻ", + "ǽ": "Ǽ", + "ǿ": "Ǿ", + "ȁ": "Ȁ", + "ȃ": "Ȃ", + "ȅ": "Ȅ", + "ȇ": "Ȇ", + "ȉ": "Ȉ", + "ȋ": "Ȋ", + "ȍ": "Ȍ", + "ȏ": "Ȏ", + "ȑ": "Ȑ", + "ȓ": "Ȓ", + "ȕ": "Ȕ", + "ȗ": "Ȗ", + "ș": "Ș", + "ț": "Ț", + "ȝ": "Ȝ", + "ȟ": "Ȟ", + "ƞ": "Ƞ", + "ȣ": "Ȣ", + "ȥ": "Ȥ", + "ȧ": "Ȧ", + "ȩ": "Ȩ", + "ȫ": "Ȫ", + "ȭ": "Ȭ", + "ȯ": "Ȯ", + "ȱ": "Ȱ", + "ȳ": "Ȳ", + "ⱥ": "Ⱥ", + "ȼ": "Ȼ", + "ƚ": "Ƚ", + "ⱦ": "Ⱦ", + "ɂ": "Ɂ", + "ƀ": "Ƀ", + "ʉ": "Ʉ", + "ʌ": "Ʌ", + "ɇ": "Ɇ", + "ɉ": "Ɉ", + "ɋ": "Ɋ", + "ɍ": "Ɍ", + "ɏ": "Ɏ", + "ι": "ι", + "ͱ": "Ͱ", + "ͳ": "Ͳ", + "ͷ": "Ͷ", + "ϳ": "Ϳ", + "ά": "Ά", + "έ": "Έ", + "ή": "Ή", + "ί": "Ί", + "ό": "Ό", + "ύ": "Ύ", + "ώ": "Ώ", + "α": "Α", + "β": "ϐ", + "γ": "Γ", + "δ": "Δ", + "ε": "ϵ", + "ζ": "Ζ", + "η": "Η", + "θ": "ϴ", + "κ": "ϰ", + "λ": "Λ", + "ν": "Ν", + "ξ": "Ξ", + "ο": "Ο", + "π": "ϖ", + "ρ": "ϱ", + "σ": "ς", + "τ": "Τ", + "υ": "Υ", + "φ": "ϕ", + "χ": "Χ", + "ψ": "Ψ", + "ω": "Ω", + "ϊ": "Ϊ", + "ϋ": "Ϋ", + "ϗ": "Ϗ", + "ϙ": "Ϙ", + "ϛ": "Ϛ", + "ϝ": "Ϝ", + "ϟ": "Ϟ", + "ϡ": "Ϡ", + "ϣ": "Ϣ", + "ϥ": "Ϥ", + "ϧ": "Ϧ", + "ϩ": "Ϩ", + "ϫ": "Ϫ", + "ϭ": "Ϭ", + "ϯ": "Ϯ", + "ϸ": "Ϸ", + "ϲ": "Ϲ", + "ϻ": "Ϻ", + "ͻ": "Ͻ", + "ͼ": "Ͼ", + "ͽ": "Ͽ", + "ѐ": "Ѐ", + "ё": "Ё", + "ђ": "Ђ", + "ѓ": "Ѓ", + "є": "Є", + "ѕ": "Ѕ", + "і": "І", + "ї": "Ї", + "ј": "Ј", + "љ": "Љ", + "њ": "Њ", + "ћ": "Ћ", + "ќ": "Ќ", + "ѝ": "Ѝ", + "ў": "Ў", + "џ": "Џ", + "а": "А", + "б": "Б", + "в": "ᲀ", + "г": "Г", + "д": "ᲁ", + "е": "Е", + "ж": "Ж", + "з": "З", + "и": "И", + "й": "Й", + "к": "К", + "л": "Л", + "м": "М", + "н": "Н", + "о": "ᲂ", + "п": "П", + "р": "Р", + "с": "ᲃ", + "т": "ᲅ", + "у": "У", + "ф": "Ф", + "х": "Х", + "ц": "Ц", + "ч": "Ч", + "ш": "Ш", + "щ": "Щ", + "ъ": "ᲆ", + "ы": "Ы", + "ь": "Ь", + "э": "Э", + "ю": "Ю", + "я": "Я", + "ѡ": "Ѡ", + "ѣ": "ᲇ", + "ѥ": "Ѥ", + "ѧ": "Ѧ", + "ѩ": "Ѩ", + "ѫ": "Ѫ", + "ѭ": "Ѭ", + "ѯ": "Ѯ", + "ѱ": "Ѱ", + "ѳ": "Ѳ", + "ѵ": "Ѵ", + "ѷ": "Ѷ", + "ѹ": "Ѹ", + "ѻ": "Ѻ", + "ѽ": "Ѽ", + "ѿ": "Ѿ", + "ҁ": "Ҁ", + "ҋ": "Ҋ", + "ҍ": "Ҍ", + "ҏ": "Ҏ", + "ґ": "Ґ", + "ғ": "Ғ", + "ҕ": "Ҕ", + "җ": "Җ", + "ҙ": "Ҙ", + "қ": "Қ", + "ҝ": "Ҝ", + "ҟ": "Ҟ", + "ҡ": "Ҡ", + "ң": "Ң", + "ҥ": "Ҥ", + "ҧ": "Ҧ", + "ҩ": "Ҩ", + "ҫ": "Ҫ", + "ҭ": "Ҭ", + "ү": "Ү", + "ұ": "Ұ", + "ҳ": "Ҳ", + "ҵ": "Ҵ", + "ҷ": "Ҷ", + "ҹ": "Ҹ", + "һ": "Һ", + "ҽ": "Ҽ", + "ҿ": "Ҿ", + "ӏ": "Ӏ", + "ӂ": "Ӂ", + "ӄ": "Ӄ", + "ӆ": "Ӆ", + "ӈ": "Ӈ", + "ӊ": "Ӊ", + "ӌ": "Ӌ", + "ӎ": "Ӎ", + "ӑ": "Ӑ", + "ӓ": "Ӓ", + "ӕ": "Ӕ", + "ӗ": "Ӗ", + "ә": "Ә", + "ӛ": "Ӛ", + "ӝ": "Ӝ", + "ӟ": "Ӟ", + "ӡ": "Ӡ", + "ӣ": "Ӣ", + "ӥ": "Ӥ", + "ӧ": "Ӧ", + "ө": "Ө", + "ӫ": "Ӫ", + "ӭ": "Ӭ", + "ӯ": "Ӯ", + "ӱ": "Ӱ", + "ӳ": "Ӳ", + "ӵ": "Ӵ", + "ӷ": "Ӷ", + "ӹ": "Ӹ", + "ӻ": "Ӻ", + "ӽ": "Ӽ", + "ӿ": "Ӿ", + "ԁ": "Ԁ", + "ԃ": "Ԃ", + "ԅ": "Ԅ", + "ԇ": "Ԇ", + "ԉ": "Ԉ", + "ԋ": "Ԋ", + "ԍ": "Ԍ", + "ԏ": "Ԏ", + "ԑ": "Ԑ", + "ԓ": "Ԓ", + "ԕ": "Ԕ", + "ԗ": "Ԗ", + "ԙ": "Ԙ", + "ԛ": "Ԛ", + "ԝ": "Ԝ", + "ԟ": "Ԟ", + "ԡ": "Ԡ", + "ԣ": "Ԣ", + "ԥ": "Ԥ", + "ԧ": "Ԧ", + "ԩ": "Ԩ", + "ԫ": "Ԫ", + "ԭ": "Ԭ", + "ԯ": "Ԯ", + "ա": "Ա", + "բ": "Բ", + "գ": "Գ", + "դ": "Դ", + "ե": "Ե", + "զ": "Զ", + "է": "Է", + "ը": "Ը", + "թ": "Թ", + "ժ": "Ժ", + "ի": "Ի", + "լ": "Լ", + "խ": "Խ", + "ծ": "Ծ", + "կ": "Կ", + "հ": "Հ", + "ձ": "Ձ", + "ղ": "Ղ", + "ճ": "Ճ", + "մ": "Մ", + "յ": "Յ", + "ն": "Ն", + "շ": "Շ", + "ո": "Ո", + "չ": "Չ", + "պ": "Պ", + "ջ": "Ջ", + "ռ": "Ռ", + "ս": "Ս", + "վ": "Վ", + "տ": "Տ", + "ր": "Ր", + "ց": "Ց", + "ւ": "Ւ", + "փ": "Փ", + "ք": "Ք", + "օ": "Օ", + "ֆ": "Ֆ", + "ⴀ": "Ⴀ", + "ⴁ": "Ⴁ", + "ⴂ": "Ⴂ", + "ⴃ": "Ⴃ", + "ⴄ": "Ⴄ", + "ⴅ": "Ⴅ", + "ⴆ": "Ⴆ", + "ⴇ": "Ⴇ", + "ⴈ": "Ⴈ", + "ⴉ": "Ⴉ", + "ⴊ": "Ⴊ", + "ⴋ": "Ⴋ", + "ⴌ": "Ⴌ", + "ⴍ": "Ⴍ", + "ⴎ": "Ⴎ", + "ⴏ": "Ⴏ", + "ⴐ": "Ⴐ", + "ⴑ": "Ⴑ", + "ⴒ": "Ⴒ", + "ⴓ": "Ⴓ", + "ⴔ": "Ⴔ", + "ⴕ": "Ⴕ", + "ⴖ": "Ⴖ", + "ⴗ": "Ⴗ", + "ⴘ": "Ⴘ", + "ⴙ": "Ⴙ", + "ⴚ": "Ⴚ", + "ⴛ": "Ⴛ", + "ⴜ": "Ⴜ", + "ⴝ": "Ⴝ", + "ⴞ": "Ⴞ", + "ⴟ": "Ⴟ", + "ⴠ": "Ⴠ", + "ⴡ": "Ⴡ", + "ⴢ": "Ⴢ", + "ⴣ": "Ⴣ", + "ⴤ": "Ⴤ", + "ⴥ": "Ⴥ", + "ⴧ": "Ⴧ", + "ⴭ": "Ⴭ", + "Ᏸ": "ᏸ", + "Ᏹ": "ᏹ", + "Ᏺ": "ᏺ", + "Ᏻ": "ᏻ", + "Ᏼ": "ᏼ", + "Ᏽ": "ᏽ", + "ꙋ": "Ꙋ", + "ა": "Ა", + "ბ": "Ბ", + "გ": "Გ", + "დ": "Დ", + "ე": "Ე", + "ვ": "Ვ", + "ზ": "Ზ", + "თ": "Თ", + "ი": "Ი", + "კ": "Კ", + "ლ": "Ლ", + "მ": "Მ", + "ნ": "Ნ", + "ო": "Ო", + "პ": "Პ", + "ჟ": "Ჟ", + "რ": "Რ", + "ს": "Ს", + "ტ": "Ტ", + "უ": "Უ", + "ფ": "Ფ", + "ქ": "Ქ", + "ღ": "Ღ", + "ყ": "Ყ", + "შ": "Შ", + "ჩ": "Ჩ", + "ც": "Ც", + "ძ": "Ძ", + "წ": "Წ", + "ჭ": "Ჭ", + "ხ": "Ხ", + "ჯ": "Ჯ", + "ჰ": "Ჰ", + "ჱ": "Ჱ", + "ჲ": "Ჲ", + "ჳ": "Ჳ", + "ჴ": "Ჴ", + "ჵ": "Ჵ", + "ჶ": "Ჶ", + "ჷ": "Ჷ", + "ჸ": "Ჸ", + "ჹ": "Ჹ", + "ჺ": "Ჺ", + "ჽ": "Ჽ", + "ჾ": "Ჾ", + "ჿ": "Ჿ", + "ḁ": "Ḁ", + "ḃ": "Ḃ", + "ḅ": "Ḅ", + "ḇ": "Ḇ", + "ḉ": "Ḉ", + "ḋ": "Ḋ", + "ḍ": "Ḍ", + "ḏ": "Ḏ", + "ḑ": "Ḑ", + "ḓ": "Ḓ", + "ḕ": "Ḕ", + "ḗ": "Ḗ", + "ḙ": "Ḙ", + "ḛ": "Ḛ", + "ḝ": "Ḝ", + "ḟ": "Ḟ", + "ḡ": "Ḡ", + "ḣ": "Ḣ", + "ḥ": "Ḥ", + "ḧ": "Ḧ", + "ḩ": "Ḩ", + "ḫ": "Ḫ", + "ḭ": "Ḭ", + "ḯ": "Ḯ", + "ḱ": "Ḱ", + "ḳ": "Ḳ", + "ḵ": "Ḵ", + "ḷ": "Ḷ", + "ḹ": "Ḹ", + "ḻ": "Ḻ", + "ḽ": "Ḽ", + "ḿ": "Ḿ", + "ṁ": "Ṁ", + "ṃ": "Ṃ", + "ṅ": "Ṅ", + "ṇ": "Ṇ", + "ṉ": "Ṉ", + "ṋ": "Ṋ", + "ṍ": "Ṍ", + "ṏ": "Ṏ", + "ṑ": "Ṑ", + "ṓ": "Ṓ", + "ṕ": "Ṕ", + "ṗ": "Ṗ", + "ṙ": "Ṙ", + "ṛ": "Ṛ", + "ṝ": "Ṝ", + "ṟ": "Ṟ", + "ṡ": "ẛ", + "ṣ": "Ṣ", + "ṥ": "Ṥ", + "ṧ": "Ṧ", + "ṩ": "Ṩ", + "ṫ": "Ṫ", + "ṭ": "Ṭ", + "ṯ": "Ṯ", + "ṱ": "Ṱ", + "ṳ": "Ṳ", + "ṵ": "Ṵ", + "ṷ": "Ṷ", + "ṹ": "Ṹ", + "ṻ": "Ṻ", + "ṽ": "Ṽ", + "ṿ": "Ṿ", + "ẁ": "Ẁ", + "ẃ": "Ẃ", + "ẅ": "Ẅ", + "ẇ": "Ẇ", + "ẉ": "Ẉ", + "ẋ": "Ẋ", + "ẍ": "Ẍ", + "ẏ": "Ẏ", + "ẑ": "Ẑ", + "ẓ": "Ẓ", + "ẕ": "Ẕ", + "ạ": "Ạ", + "ả": "Ả", + "ấ": "Ấ", + "ầ": "Ầ", + "ẩ": "Ẩ", + "ẫ": "Ẫ", + "ậ": "Ậ", + "ắ": "Ắ", + "ằ": "Ằ", + "ẳ": "Ẳ", + "ẵ": "Ẵ", + "ặ": "Ặ", + "ẹ": "Ẹ", + "ẻ": "Ẻ", + "ẽ": "Ẽ", + "ế": "Ế", + "ề": "Ề", + "ể": "Ể", + "ễ": "Ễ", + "ệ": "Ệ", + "ỉ": "Ỉ", + "ị": "Ị", + "ọ": "Ọ", + "ỏ": "Ỏ", + "ố": "Ố", + "ồ": "Ồ", + "ổ": "Ổ", + "ỗ": "Ỗ", + "ộ": "Ộ", + "ớ": "Ớ", + "ờ": "Ờ", + "ở": "Ở", + "ỡ": "Ỡ", + "ợ": "Ợ", + "ụ": "Ụ", + "ủ": "Ủ", + "ứ": "Ứ", + "ừ": "Ừ", + "ử": "Ử", + "ữ": "Ữ", + "ự": "Ự", + "ỳ": "Ỳ", + "ỵ": "Ỵ", + "ỷ": "Ỷ", + "ỹ": "Ỹ", + "ỻ": "Ỻ", + "ỽ": "Ỽ", + "ỿ": "Ỿ", + "ἀ": "Ἀ", + "ἁ": "Ἁ", + "ἂ": "Ἂ", + "ἃ": "Ἃ", + "ἄ": "Ἄ", + "ἅ": "Ἅ", + "ἆ": "Ἆ", + "ἇ": "Ἇ", + "ἐ": "Ἐ", + "ἑ": "Ἑ", + "ἒ": "Ἒ", + "ἓ": "Ἓ", + "ἔ": "Ἔ", + "ἕ": "Ἕ", + "ἠ": "Ἠ", + "ἡ": "Ἡ", + "ἢ": "Ἢ", + "ἣ": "Ἣ", + "ἤ": "Ἤ", + "ἥ": "Ἥ", + "ἦ": "Ἦ", + "ἧ": "Ἧ", + "ἰ": "Ἰ", + "ἱ": "Ἱ", + "ἲ": "Ἲ", + "ἳ": "Ἳ", + "ἴ": "Ἴ", + "ἵ": "Ἵ", + "ἶ": "Ἶ", + "ἷ": "Ἷ", + "ὀ": "Ὀ", + "ὁ": "Ὁ", + "ὂ": "Ὂ", + "ὃ": "Ὃ", + "ὄ": "Ὄ", + "ὅ": "Ὅ", + "ὑ": "Ὑ", + "ὓ": "Ὓ", + "ὕ": "Ὕ", + "ὗ": "Ὗ", + "ὠ": "Ὠ", + "ὡ": "Ὡ", + "ὢ": "Ὢ", + "ὣ": "Ὣ", + "ὤ": "Ὤ", + "ὥ": "Ὥ", + "ὦ": "Ὦ", + "ὧ": "Ὧ", + "ᾰ": "Ᾰ", + "ᾱ": "Ᾱ", + "ὰ": "Ὰ", + "ά": "Ά", + "ὲ": "Ὲ", + "έ": "Έ", + "ὴ": "Ὴ", + "ή": "Ή", + "ῐ": "Ῐ", + "ῑ": "Ῑ", + "ὶ": "Ὶ", + "ί": "Ί", + "ῠ": "Ῠ", + "ῡ": "Ῡ", + "ὺ": "Ὺ", + "ύ": "Ύ", + "ῥ": "Ῥ", + "ὸ": "Ὸ", + "ό": "Ό", + "ὼ": "Ὼ", + "ώ": "Ώ", + "ⅎ": "Ⅎ", + "ⅰ": "Ⅰ", + "ⅱ": "Ⅱ", + "ⅲ": "Ⅲ", + "ⅳ": "Ⅳ", + "ⅴ": "Ⅴ", + "ⅵ": "Ⅵ", + "ⅶ": "Ⅶ", + "ⅷ": "Ⅷ", + "ⅸ": "Ⅸ", + "ⅹ": "Ⅹ", + "ⅺ": "Ⅺ", + "ⅻ": "Ⅻ", + "ⅼ": "Ⅼ", + "ⅽ": "Ⅽ", + "ⅾ": "Ⅾ", + "ⅿ": "Ⅿ", + "ↄ": "Ↄ", + "ⓐ": "Ⓐ", + "ⓑ": "Ⓑ", + "ⓒ": "Ⓒ", + "ⓓ": "Ⓓ", + "ⓔ": "Ⓔ", + "ⓕ": "Ⓕ", + "ⓖ": "Ⓖ", + "ⓗ": "Ⓗ", + "ⓘ": "Ⓘ", + "ⓙ": "Ⓙ", + "ⓚ": "Ⓚ", + "ⓛ": "Ⓛ", + "ⓜ": "Ⓜ", + "ⓝ": "Ⓝ", + "ⓞ": "Ⓞ", + "ⓟ": "Ⓟ", + "ⓠ": "Ⓠ", + "ⓡ": "Ⓡ", + "ⓢ": "Ⓢ", + "ⓣ": "Ⓣ", + "ⓤ": "Ⓤ", + "ⓥ": "Ⓥ", + "ⓦ": "Ⓦ", + "ⓧ": "Ⓧ", + "ⓨ": "Ⓨ", + "ⓩ": "Ⓩ", + "ⰰ": "Ⰰ", + "ⰱ": "Ⰱ", + "ⰲ": "Ⰲ", + "ⰳ": "Ⰳ", + "ⰴ": "Ⰴ", + "ⰵ": "Ⰵ", + "ⰶ": "Ⰶ", + "ⰷ": "Ⰷ", + "ⰸ": "Ⰸ", + "ⰹ": "Ⰹ", + "ⰺ": "Ⰺ", + "ⰻ": "Ⰻ", + "ⰼ": "Ⰼ", + "ⰽ": "Ⰽ", + "ⰾ": "Ⰾ", + "ⰿ": "Ⰿ", + "ⱀ": "Ⱀ", + "ⱁ": "Ⱁ", + "ⱂ": "Ⱂ", + "ⱃ": "Ⱃ", + "ⱄ": "Ⱄ", + "ⱅ": "Ⱅ", + "ⱆ": "Ⱆ", + "ⱇ": "Ⱇ", + "ⱈ": "Ⱈ", + "ⱉ": "Ⱉ", + "ⱊ": "Ⱊ", + "ⱋ": "Ⱋ", + "ⱌ": "Ⱌ", + "ⱍ": "Ⱍ", + "ⱎ": "Ⱎ", + "ⱏ": "Ⱏ", + "ⱐ": "Ⱐ", + "ⱑ": "Ⱑ", + "ⱒ": "Ⱒ", + "ⱓ": "Ⱓ", + "ⱔ": "Ⱔ", + "ⱕ": "Ⱕ", + "ⱖ": "Ⱖ", + "ⱗ": "Ⱗ", + "ⱘ": "Ⱘ", + "ⱙ": "Ⱙ", + "ⱚ": "Ⱚ", + "ⱛ": "Ⱛ", + "ⱜ": "Ⱜ", + "ⱝ": "Ⱝ", + "ⱞ": "Ⱞ", + "ⱟ": "Ⱟ", + "ⱡ": "Ⱡ", + "ɫ": "Ɫ", + "ᵽ": "Ᵽ", + "ɽ": "Ɽ", + "ⱨ": "Ⱨ", + "ⱪ": "Ⱪ", + "ⱬ": "Ⱬ", + "ɑ": "Ɑ", + "ɱ": "Ɱ", + "ɐ": "Ɐ", + "ɒ": "Ɒ", + "ⱳ": "Ⱳ", + "ⱶ": "Ⱶ", + "ȿ": "Ȿ", + "ɀ": "Ɀ", + "ⲁ": "Ⲁ", + "ⲃ": "Ⲃ", + "ⲅ": "Ⲅ", + "ⲇ": "Ⲇ", + "ⲉ": "Ⲉ", + "ⲋ": "Ⲋ", + "ⲍ": "Ⲍ", + "ⲏ": "Ⲏ", + "ⲑ": "Ⲑ", + "ⲓ": "Ⲓ", + "ⲕ": "Ⲕ", + "ⲗ": "Ⲗ", + "ⲙ": "Ⲙ", + "ⲛ": "Ⲛ", + "ⲝ": "Ⲝ", + "ⲟ": "Ⲟ", + "ⲡ": "Ⲡ", + "ⲣ": "Ⲣ", + "ⲥ": "Ⲥ", + "ⲧ": "Ⲧ", + "ⲩ": "Ⲩ", + "ⲫ": "Ⲫ", + "ⲭ": "Ⲭ", + "ⲯ": "Ⲯ", + "ⲱ": "Ⲱ", + "ⲳ": "Ⲳ", + "ⲵ": "Ⲵ", + "ⲷ": "Ⲷ", + "ⲹ": "Ⲹ", + "ⲻ": "Ⲻ", + "ⲽ": "Ⲽ", + "ⲿ": "Ⲿ", + "ⳁ": "Ⳁ", + "ⳃ": "Ⳃ", + "ⳅ": "Ⳅ", + "ⳇ": "Ⳇ", + "ⳉ": "Ⳉ", + "ⳋ": "Ⳋ", + "ⳍ": "Ⳍ", + "ⳏ": "Ⳏ", + "ⳑ": "Ⳑ", + "ⳓ": "Ⳓ", + "ⳕ": "Ⳕ", + "ⳗ": "Ⳗ", + "ⳙ": "Ⳙ", + "ⳛ": "Ⳛ", + "ⳝ": "Ⳝ", + "ⳟ": "Ⳟ", + "ⳡ": "Ⳡ", + "ⳣ": "Ⳣ", + "ⳬ": "Ⳬ", + "ⳮ": "Ⳮ", + "ⳳ": "Ⳳ", + "ꙁ": "Ꙁ", + "ꙃ": "Ꙃ", + "ꙅ": "Ꙅ", + "ꙇ": "Ꙇ", + "ꙉ": "Ꙉ", + "ꙍ": "Ꙍ", + "ꙏ": "Ꙏ", + "ꙑ": "Ꙑ", + "ꙓ": "Ꙓ", + "ꙕ": "Ꙕ", + "ꙗ": "Ꙗ", + "ꙙ": "Ꙙ", + "ꙛ": "Ꙛ", + "ꙝ": "Ꙝ", + "ꙟ": "Ꙟ", + "ꙡ": "Ꙡ", + "ꙣ": "Ꙣ", + "ꙥ": "Ꙥ", + "ꙧ": "Ꙧ", + "ꙩ": "Ꙩ", + "ꙫ": "Ꙫ", + "ꙭ": "Ꙭ", + "ꚁ": "Ꚁ", + "ꚃ": "Ꚃ", + "ꚅ": "Ꚅ", + "ꚇ": "Ꚇ", + "ꚉ": "Ꚉ", + "ꚋ": "Ꚋ", + "ꚍ": "Ꚍ", + "ꚏ": "Ꚏ", + "ꚑ": "Ꚑ", + "ꚓ": "Ꚓ", + "ꚕ": "Ꚕ", + "ꚗ": "Ꚗ", + "ꚙ": "Ꚙ", + "ꚛ": "Ꚛ", + "ꜣ": "Ꜣ", + "ꜥ": "Ꜥ", + "ꜧ": "Ꜧ", + "ꜩ": "Ꜩ", + "ꜫ": "Ꜫ", + "ꜭ": "Ꜭ", + "ꜯ": "Ꜯ", + "ꜳ": "Ꜳ", + "ꜵ": "Ꜵ", + "ꜷ": "Ꜷ", + "ꜹ": "Ꜹ", + "ꜻ": "Ꜻ", + "ꜽ": "Ꜽ", + "ꜿ": "Ꜿ", + "ꝁ": "Ꝁ", + "ꝃ": "Ꝃ", + "ꝅ": "Ꝅ", + "ꝇ": "Ꝇ", + "ꝉ": "Ꝉ", + "ꝋ": "Ꝋ", + "ꝍ": "Ꝍ", + "ꝏ": "Ꝏ", + "ꝑ": "Ꝑ", + "ꝓ": "Ꝓ", + "ꝕ": "Ꝕ", + "ꝗ": "Ꝗ", + "ꝙ": "Ꝙ", + "ꝛ": "Ꝛ", + "ꝝ": "Ꝝ", + "ꝟ": "Ꝟ", + "ꝡ": "Ꝡ", + "ꝣ": "Ꝣ", + "ꝥ": "Ꝥ", + "ꝧ": "Ꝧ", + "ꝩ": "Ꝩ", + "ꝫ": "Ꝫ", + "ꝭ": "Ꝭ", + "ꝯ": "Ꝯ", + "ꝺ": "Ꝺ", + "ꝼ": "Ꝼ", + "ᵹ": "Ᵹ", + "ꝿ": "Ꝿ", + "ꞁ": "Ꞁ", + "ꞃ": "Ꞃ", + "ꞅ": "Ꞅ", + "ꞇ": "Ꞇ", + "ꞌ": "Ꞌ", + "ɥ": "Ɥ", + "ꞑ": "Ꞑ", + "ꞓ": "Ꞓ", + "ꞗ": "Ꞗ", + "ꞙ": "Ꞙ", + "ꞛ": "Ꞛ", + "ꞝ": "Ꞝ", + "ꞟ": "Ꞟ", + "ꞡ": "Ꞡ", + "ꞣ": "Ꞣ", + "ꞥ": "Ꞥ", + "ꞧ": "Ꞧ", + "ꞩ": "Ꞩ", + "ɦ": "Ɦ", + "ɜ": "Ɜ", + "ɡ": "Ɡ", + "ɬ": "Ɬ", + "ɪ": "Ɪ", + "ʞ": "Ʞ", + "ʇ": "Ʇ", + "ʝ": "Ʝ", + "ꭓ": "Ꭓ", + "ꞵ": "Ꞵ", + "ꞷ": "Ꞷ", + "ꞹ": "Ꞹ", + "ꞻ": "Ꞻ", + "ꞽ": "Ꞽ", + "ꞿ": "Ꞿ", + "ꟁ": "Ꟁ", + "ꟃ": "Ꟃ", + "ꞔ": "Ꞔ", + "ʂ": "Ʂ", + "ᶎ": "Ᶎ", + "ꟈ": "Ꟈ", + "ꟊ": "Ꟊ", + "ꟑ": "Ꟑ", + "ꟗ": "Ꟗ", + "ꟙ": "Ꟙ", + "ꟶ": "Ꟶ", + "Ꭰ": "ꭰ", + "Ꭱ": "ꭱ", + "Ꭲ": "ꭲ", + "Ꭳ": "ꭳ", + "Ꭴ": "ꭴ", + "Ꭵ": "ꭵ", + "Ꭶ": "ꭶ", + "Ꭷ": "ꭷ", + "Ꭸ": "ꭸ", + "Ꭹ": "ꭹ", + "Ꭺ": "ꭺ", + "Ꭻ": "ꭻ", + "Ꭼ": "ꭼ", + "Ꭽ": "ꭽ", + "Ꭾ": "ꭾ", + "Ꭿ": "ꭿ", + "Ꮀ": "ꮀ", + "Ꮁ": "ꮁ", + "Ꮂ": "ꮂ", + "Ꮃ": "ꮃ", + "Ꮄ": "ꮄ", + "Ꮅ": "ꮅ", + "Ꮆ": "ꮆ", + "Ꮇ": "ꮇ", + "Ꮈ": "ꮈ", + "Ꮉ": "ꮉ", + "Ꮊ": "ꮊ", + "Ꮋ": "ꮋ", + "Ꮌ": "ꮌ", + "Ꮍ": "ꮍ", + "Ꮎ": "ꮎ", + "Ꮏ": "ꮏ", + "Ꮐ": "ꮐ", + "Ꮑ": "ꮑ", + "Ꮒ": "ꮒ", + "Ꮓ": "ꮓ", + "Ꮔ": "ꮔ", + "Ꮕ": "ꮕ", + "Ꮖ": "ꮖ", + "Ꮗ": "ꮗ", + "Ꮘ": "ꮘ", + "Ꮙ": "ꮙ", + "Ꮚ": "ꮚ", + "Ꮛ": "ꮛ", + "Ꮜ": "ꮜ", + "Ꮝ": "ꮝ", + "Ꮞ": "ꮞ", + "Ꮟ": "ꮟ", + "Ꮠ": "ꮠ", + "Ꮡ": "ꮡ", + "Ꮢ": "ꮢ", + "Ꮣ": "ꮣ", + "Ꮤ": "ꮤ", + "Ꮥ": "ꮥ", + "Ꮦ": "ꮦ", + "Ꮧ": "ꮧ", + "Ꮨ": "ꮨ", + "Ꮩ": "ꮩ", + "Ꮪ": "ꮪ", + "Ꮫ": "ꮫ", + "Ꮬ": "ꮬ", + "Ꮭ": "ꮭ", + "Ꮮ": "ꮮ", + "Ꮯ": "ꮯ", + "Ꮰ": "ꮰ", + "Ꮱ": "ꮱ", + "Ꮲ": "ꮲ", + "Ꮳ": "ꮳ", + "Ꮴ": "ꮴ", + "Ꮵ": "ꮵ", + "Ꮶ": "ꮶ", + "Ꮷ": "ꮷ", + "Ꮸ": "ꮸ", + "Ꮹ": "ꮹ", + "Ꮺ": "ꮺ", + "Ꮻ": "ꮻ", + "Ꮼ": "ꮼ", + "Ꮽ": "ꮽ", + "Ꮾ": "ꮾ", + "Ꮿ": "ꮿ", + "a": "A", + "b": "B", + "c": "C", + "d": "D", + "e": "E", + "f": "F", + "g": "G", + "h": "H", + "i": "I", + "j": "J", + "k": "K", + "l": "L", + "m": "M", + "n": "N", + "o": "O", + "p": "P", + "q": "Q", + "r": "R", + "s": "S", + "t": "T", + "u": "U", + "v": "V", + "w": "W", + "x": "X", + "y": "Y", + "z": "Z", + "𐐨": "𐐀", + "𐐩": "𐐁", + "𐐪": "𐐂", + "𐐫": "𐐃", + "𐐬": "𐐄", + "𐐭": "𐐅", + "𐐮": "𐐆", + "𐐯": "𐐇", + "𐐰": "𐐈", + "𐐱": "𐐉", + "𐐲": "𐐊", + "𐐳": "𐐋", + "𐐴": "𐐌", + "𐐵": "𐐍", + "𐐶": "𐐎", + "𐐷": "𐐏", + "𐐸": "𐐐", + "𐐹": "𐐑", + "𐐺": "𐐒", + "𐐻": "𐐓", + "𐐼": "𐐔", + "𐐽": "𐐕", + "𐐾": "𐐖", + "𐐿": "𐐗", + "𐑀": "𐐘", + "𐑁": "𐐙", + "𐑂": "𐐚", + "𐑃": "𐐛", + "𐑄": "𐐜", + "𐑅": "𐐝", + "𐑆": "𐐞", + "𐑇": "𐐟", + "𐑈": "𐐠", + "𐑉": "𐐡", + "𐑊": "𐐢", + "𐑋": "𐐣", + "𐑌": "𐐤", + "𐑍": "𐐥", + "𐑎": "𐐦", + "𐑏": "𐐧", + "𐓘": "𐒰", + "𐓙": "𐒱", + "𐓚": "𐒲", + "𐓛": "𐒳", + "𐓜": "𐒴", + "𐓝": "𐒵", + "𐓞": "𐒶", + "𐓟": "𐒷", + "𐓠": "𐒸", + "𐓡": "𐒹", + "𐓢": "𐒺", + "𐓣": "𐒻", + "𐓤": "𐒼", + "𐓥": "𐒽", + "𐓦": "𐒾", + "𐓧": "𐒿", + "𐓨": "𐓀", + "𐓩": "𐓁", + "𐓪": "𐓂", + "𐓫": "𐓃", + "𐓬": "𐓄", + "𐓭": "𐓅", + "𐓮": "𐓆", + "𐓯": "𐓇", + "𐓰": "𐓈", + "𐓱": "𐓉", + "𐓲": "𐓊", + "𐓳": "𐓋", + "𐓴": "𐓌", + "𐓵": "𐓍", + "𐓶": "𐓎", + "𐓷": "𐓏", + "𐓸": "𐓐", + "𐓹": "𐓑", + "𐓺": "𐓒", + "𐓻": "𐓓", + "𐖗": "𐕰", + "𐖘": "𐕱", + "𐖙": "𐕲", + "𐖚": "𐕳", + "𐖛": "𐕴", + "𐖜": "𐕵", + "𐖝": "𐕶", + "𐖞": "𐕷", + "𐖟": "𐕸", + "𐖠": "𐕹", + "𐖡": "𐕺", + "𐖣": "𐕼", + "𐖤": "𐕽", + "𐖥": "𐕾", + "𐖦": "𐕿", + "𐖧": "𐖀", + "𐖨": "𐖁", + "𐖩": "𐖂", + "𐖪": "𐖃", + "𐖫": "𐖄", + "𐖬": "𐖅", + "𐖭": "𐖆", + "𐖮": "𐖇", + "𐖯": "𐖈", + "𐖰": "𐖉", + "𐖱": "𐖊", + "𐖳": "𐖌", + "𐖴": "𐖍", + "𐖵": "𐖎", + "𐖶": "𐖏", + "𐖷": "𐖐", + "𐖸": "𐖑", + "𐖹": "𐖒", + "𐖻": "𐖔", + "𐖼": "𐖕", + "𐳀": "𐲀", + "𐳁": "𐲁", + "𐳂": "𐲂", + "𐳃": "𐲃", + "𐳄": "𐲄", + "𐳅": "𐲅", + "𐳆": "𐲆", + "𐳇": "𐲇", + "𐳈": "𐲈", + "𐳉": "𐲉", + "𐳊": "𐲊", + "𐳋": "𐲋", + "𐳌": "𐲌", + "𐳍": "𐲍", + "𐳎": "𐲎", + "𐳏": "𐲏", + "𐳐": "𐲐", + "𐳑": "𐲑", + "𐳒": "𐲒", + "𐳓": "𐲓", + "𐳔": "𐲔", + "𐳕": "𐲕", + "𐳖": "𐲖", + "𐳗": "𐲗", + "𐳘": "𐲘", + "𐳙": "𐲙", + "𐳚": "𐲚", + "𐳛": "𐲛", + "𐳜": "𐲜", + "𐳝": "𐲝", + "𐳞": "𐲞", + "𐳟": "𐲟", + "𐳠": "𐲠", + "𐳡": "𐲡", + "𐳢": "𐲢", + "𐳣": "𐲣", + "𐳤": "𐲤", + "𐳥": "𐲥", + "𐳦": "𐲦", + "𐳧": "𐲧", + "𐳨": "𐲨", + "𐳩": "𐲩", + "𐳪": "𐲪", + "𐳫": "𐲫", + "𐳬": "𐲬", + "𐳭": "𐲭", + "𐳮": "𐲮", + "𐳯": "𐲯", + "𐳰": "𐲰", + "𐳱": "𐲱", + "𐳲": "𐲲", + "𑣀": "𑢠", + "𑣁": "𑢡", + "𑣂": "𑢢", + "𑣃": "𑢣", + "𑣄": "𑢤", + "𑣅": "𑢥", + "𑣆": "𑢦", + "𑣇": "𑢧", + "𑣈": "𑢨", + "𑣉": "𑢩", + "𑣊": "𑢪", + "𑣋": "𑢫", + "𑣌": "𑢬", + "𑣍": "𑢭", + "𑣎": "𑢮", + "𑣏": "𑢯", + "𑣐": "𑢰", + "𑣑": "𑢱", + "𑣒": "𑢲", + "𑣓": "𑢳", + "𑣔": "𑢴", + "𑣕": "𑢵", + "𑣖": "𑢶", + "𑣗": "𑢷", + "𑣘": "𑢸", + "𑣙": "𑢹", + "𑣚": "𑢺", + "𑣛": "𑢻", + "𑣜": "𑢼", + "𑣝": "𑢽", + "𑣞": "𑢾", + "𑣟": "𑢿", + "𖹠": "𖹀", + "𖹡": "𖹁", + "𖹢": "𖹂", + "𖹣": "𖹃", + "𖹤": "𖹄", + "𖹥": "𖹅", + "𖹦": "𖹆", + "𖹧": "𖹇", + "𖹨": "𖹈", + "𖹩": "𖹉", + "𖹪": "𖹊", + "𖹫": "𖹋", + "𖹬": "𖹌", + "𖹭": "𖹍", + "𖹮": "𖹎", + "𖹯": "𖹏", + "𖹰": "𖹐", + "𖹱": "𖹑", + "𖹲": "𖹒", + "𖹳": "𖹓", + "𖹴": "𖹔", + "𖹵": "𖹕", + "𖹶": "𖹖", + "𖹷": "𖹗", + "𖹸": "𖹘", + "𖹹": "𖹙", + "𖹺": "𖹚", + "𖹻": "𖹛", + "𖹼": "𖹜", + "𖹽": "𖹝", + "𖹾": "𖹞", + "𖹿": "𖹟", + "𞤢": "𞤀", + "𞤣": "𞤁", + "𞤤": "𞤂", + "𞤥": "𞤃", + "𞤦": "𞤄", + "𞤧": "𞤅", + "𞤨": "𞤆", + "𞤩": "𞤇", + "𞤪": "𞤈", + "𞤫": "𞤉", + "𞤬": "𞤊", + "𞤭": "𞤋", + "𞤮": "𞤌", + "𞤯": "𞤍", + "𞤰": "𞤎", + "𞤱": "𞤏", + "𞤲": "𞤐", + "𞤳": "𞤑", + "𞤴": "𞤒", + "𞤵": "𞤓", + "𞤶": "𞤔", + "𞤷": "𞤕", + "𞤸": "𞤖", + "𞤹": "𞤗", + "𞤺": "𞤘", + "𞤻": "𞤙", + "𞤼": "𞤚", + "𞤽": "𞤛", + "𞤾": "𞤜", + "𞤿": "𞤝", + "𞥀": "𞤞", + "𞥁": "𞤟", + "𞥂": "𞤠", + "𞥃": "𞤡" + }, + "S": { + "ß": "ẞ", + "ᾀ": "ᾈ", + "ᾁ": "ᾉ", + "ᾂ": "ᾊ", + "ᾃ": "ᾋ", + "ᾄ": "ᾌ", + "ᾅ": "ᾍ", + "ᾆ": "ᾎ", + "ᾇ": "ᾏ", + "ᾐ": "ᾘ", + "ᾑ": "ᾙ", + "ᾒ": "ᾚ", + "ᾓ": "ᾛ", + "ᾔ": "ᾜ", + "ᾕ": "ᾝ", + "ᾖ": "ᾞ", + "ᾗ": "ᾟ", + "ᾠ": "ᾨ", + "ᾡ": "ᾩ", + "ᾢ": "ᾪ", + "ᾣ": "ᾫ", + "ᾤ": "ᾬ", + "ᾥ": "ᾭ", + "ᾦ": "ᾮ", + "ᾧ": "ᾯ", + "ᾳ": "ᾼ", + "ῃ": "ῌ", + "ῳ": "ῼ" + } +} \ No newline at end of file diff --git a/node_modules/es-abstract/helpers/defaultEndianness.js b/node_modules/es-abstract/helpers/defaultEndianness.js new file mode 100644 index 0000000000000000000000000000000000000000..faba47022e31f6554a131f4f0a8a8ddd9eb9d3ca --- /dev/null +++ b/node_modules/es-abstract/helpers/defaultEndianness.js @@ -0,0 +1,21 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Uint8Array = GetIntrinsic('%Uint8Array%', true); +var $Uint32Array = GetIntrinsic('%Uint32Array%', true); + +var typedArrayBuffer = require('typed-array-buffer'); + +var uInt32 = $Uint32Array && new $Uint32Array([0x12345678]); +var uInt8 = uInt32 && new $Uint8Array(typedArrayBuffer(uInt32)); + +module.exports = uInt8 + ? uInt8[0] === 0x78 + ? 'little' + : uInt8[0] === 0x12 + ? 'big' + : uInt8[0] === 0x34 + ? 'mixed' // https://developer.mozilla.org/en-US/docs/Glossary/Endianness + : 'unknown' // ??? + : 'indeterminate'; // no way to know diff --git a/node_modules/es-abstract/helpers/every.js b/node_modules/es-abstract/helpers/every.js new file mode 100644 index 0000000000000000000000000000000000000000..42a458211ede1dc31b1b1b15e7d64160ff9d91ff --- /dev/null +++ b/node_modules/es-abstract/helpers/every.js @@ -0,0 +1,10 @@ +'use strict'; + +module.exports = function every(array, predicate) { + for (var i = 0; i < array.length; i += 1) { + if (!predicate(array[i], i, array)) { + return false; + } + } + return true; +}; diff --git a/node_modules/es-abstract/helpers/forEach.js b/node_modules/es-abstract/helpers/forEach.js new file mode 100644 index 0000000000000000000000000000000000000000..35915a656a07edc2affdc8f872293923426a0ecb --- /dev/null +++ b/node_modules/es-abstract/helpers/forEach.js @@ -0,0 +1,7 @@ +'use strict'; + +module.exports = function forEach(array, callback) { + for (var i = 0; i < array.length; i += 1) { + callback(array[i], i, array); // eslint-disable-line callback-return + } +}; diff --git a/node_modules/es-abstract/helpers/fractionToBinaryString.js b/node_modules/es-abstract/helpers/fractionToBinaryString.js new file mode 100644 index 0000000000000000000000000000000000000000..1ba671da6603fe33b29dadcd120aaff2f4126ae4 --- /dev/null +++ b/node_modules/es-abstract/helpers/fractionToBinaryString.js @@ -0,0 +1,33 @@ +'use strict'; + +var MAX_ITER = 1075; // 1023+52 (subnormals) => BIAS+NUM_SIGNFICAND_BITS-1 +var maxBits = 54; // only 53 bits for fraction + +module.exports = function fractionToBitString(x) { + var str = ''; + if (x === 0) { + return str; + } + var j = MAX_ITER; + + var y; + // Each time we multiply by 2 and find a ones digit, add a '1'; otherwise, add a '0'.. + for (var i = 0; i < MAX_ITER; i += 1) { + y = x * 2; + if (y >= 1) { + x = y - 1; // eslint-disable-line no-param-reassign + str += '1'; + if (j === MAX_ITER) { + j = i; // first 1 + } + } else { + x = y; // eslint-disable-line no-param-reassign + str += '0'; + } + // Stop when we have no more decimals to process or in the event we found a fraction which cannot be represented in a finite number of bits... + if (y === 1 || i - j > maxBits) { + return str; + } + } + return str; +}; diff --git a/node_modules/es-abstract/helpers/fromPropertyDescriptor.js b/node_modules/es-abstract/helpers/fromPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..878861271cbed008b3951c7393df91fd43fe1b9b --- /dev/null +++ b/node_modules/es-abstract/helpers/fromPropertyDescriptor.js @@ -0,0 +1,27 @@ +'use strict'; + +module.exports = function fromPropertyDescriptor(Desc) { + if (typeof Desc === 'undefined') { + return Desc; + } + var obj = {}; + if ('[[Value]]' in Desc) { + obj.value = Desc['[[Value]]']; + } + if ('[[Writable]]' in Desc) { + obj.writable = !!Desc['[[Writable]]']; + } + if ('[[Get]]' in Desc) { + obj.get = Desc['[[Get]]']; + } + if ('[[Set]]' in Desc) { + obj.set = Desc['[[Set]]']; + } + if ('[[Enumerable]]' in Desc) { + obj.enumerable = !!Desc['[[Enumerable]]']; + } + if ('[[Configurable]]' in Desc) { + obj.configurable = !!Desc['[[Configurable]]']; + } + return obj; +}; diff --git a/node_modules/es-abstract/helpers/getInferredName.js b/node_modules/es-abstract/helpers/getInferredName.js new file mode 100644 index 0000000000000000000000000000000000000000..5fd24ffa8c614a7aad12a02bdacc96edb2409acb --- /dev/null +++ b/node_modules/es-abstract/helpers/getInferredName.js @@ -0,0 +1,4 @@ +'use strict'; + +// TODO: remove, semver-major +module.exports = require('get-symbol-description/getInferredName'); diff --git a/node_modules/es-abstract/helpers/getIteratorMethod.js b/node_modules/es-abstract/helpers/getIteratorMethod.js new file mode 100644 index 0000000000000000000000000000000000000000..61864202c5e76f7ccd7f7b6c2d8a64ea6186ff59 --- /dev/null +++ b/node_modules/es-abstract/helpers/getIteratorMethod.js @@ -0,0 +1,50 @@ +'use strict'; + +var hasSymbols = require('has-symbols')(); +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); +var isString = require('is-string'); + +var $iterator = GetIntrinsic('%Symbol.iterator%', true); +var $stringSlice = callBound('String.prototype.slice'); +var $String = GetIntrinsic('%String%'); + +var IsArray = require('./IsArray'); + +module.exports = function getIteratorMethod(ES, iterable) { + var usingIterator; + if (hasSymbols) { + usingIterator = ES.GetMethod(iterable, $iterator); + } else if (IsArray(iterable)) { + usingIterator = function () { + var i = -1; + var arr = this; + return { + next: function () { + i += 1; + return { + done: i >= arr.length, + value: arr[i] + }; + } + }; + }; + } else if (isString(iterable)) { + usingIterator = function () { + var i = 0; + return { + next: function () { + var nextIndex = ES.AdvanceStringIndex($String(iterable), i, true); + var value = $stringSlice(iterable, i, nextIndex); + i = nextIndex; + var done = nextIndex > iterable.length; + return { + done: done, + value: done ? void undefined : value + }; + } + }; + }; + } + return usingIterator; +}; diff --git a/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js b/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..e0f823d108f26a95243430f05c9d6bbde1ec1913 --- /dev/null +++ b/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js @@ -0,0 +1,5 @@ +'use strict'; + +// TODO: remove, semver-major + +module.exports = require('gopd'); diff --git a/node_modules/es-abstract/helpers/getProto.js b/node_modules/es-abstract/helpers/getProto.js new file mode 100644 index 0000000000000000000000000000000000000000..0b891dfd79f1acee83f9b65c57beb35cb10c4c06 --- /dev/null +++ b/node_modules/es-abstract/helpers/getProto.js @@ -0,0 +1,4 @@ +'use strict'; + +// TODO, semver-major: remove +module.exports = require('get-proto'); diff --git a/node_modules/es-abstract/helpers/getSymbolDescription.js b/node_modules/es-abstract/helpers/getSymbolDescription.js new file mode 100644 index 0000000000000000000000000000000000000000..699705f4f9bec1877871db1199c2fee3a85a0087 --- /dev/null +++ b/node_modules/es-abstract/helpers/getSymbolDescription.js @@ -0,0 +1,4 @@ +'use strict'; + +// TODO: remove, semver-major +module.exports = require('get-symbol-description'); diff --git a/node_modules/es-abstract/helpers/intToBinaryString.js b/node_modules/es-abstract/helpers/intToBinaryString.js new file mode 100644 index 0000000000000000000000000000000000000000..cfa0ebcf0cca5ecc0a16fb341038cd491c0b5c25 --- /dev/null +++ b/node_modules/es-abstract/helpers/intToBinaryString.js @@ -0,0 +1,21 @@ +'use strict'; + +var $floor = require('math-intrinsics/floor'); + +// https://runestone.academy/ns/books/published/pythonds/BasicDS/ConvertingDecimalNumberstoBinaryNumbers.html#:~:text=The%20Divide%20by%202%20algorithm,have%20a%20remainder%20of%200 + +module.exports = function intToBinaryString(x) { + var str = ''; + var y; + + while (x > 0) { + y = x / 2; + x = $floor(y); // eslint-disable-line no-param-reassign + if (y === x) { + str = '0' + str; + } else { + str = '1' + str; + } + } + return str; +}; diff --git a/node_modules/es-abstract/helpers/integerToNBytes.js b/node_modules/es-abstract/helpers/integerToNBytes.js new file mode 100644 index 0000000000000000000000000000000000000000..dd3f98c051891d3b5858a577501f50922a0cb88d --- /dev/null +++ b/node_modules/es-abstract/helpers/integerToNBytes.js @@ -0,0 +1,28 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $Number = GetIntrinsic('%Number%'); +var $BigInt = GetIntrinsic('%BigInt%', true); + +module.exports = function integerToNBytes(intValue, n, isLittleEndian) { + var Z = typeof intValue === 'bigint' ? $BigInt : $Number; + /* + if (intValue >= 0) { // step 3.d + // Let rawBytes be a List containing the n-byte binary encoding of intValue. If isLittleEndian is false, the bytes are ordered in big endian order. Otherwise, the bytes are ordered in little endian order. + } else { // step 3.e + // Let rawBytes be a List containing the n-byte binary 2's complement encoding of intValue. If isLittleEndian is false, the bytes are ordered in big endian order. Otherwise, the bytes are ordered in little endian order. + } + */ + if (intValue < 0) { + intValue >>>= 0; // eslint-disable-line no-param-reassign + } + + var rawBytes = []; + for (var i = 0; i < n; i++) { + rawBytes[isLittleEndian ? i : n - 1 - i] = $Number(intValue & Z(0xFF)); + intValue >>= Z(8); // eslint-disable-line no-param-reassign + } + + return rawBytes; // step 4 +}; diff --git a/node_modules/es-abstract/helpers/isAbstractClosure.js b/node_modules/es-abstract/helpers/isAbstractClosure.js new file mode 100644 index 0000000000000000000000000000000000000000..503200dc5d5dfcf0aa38a86671546b51f4385385 --- /dev/null +++ b/node_modules/es-abstract/helpers/isAbstractClosure.js @@ -0,0 +1,9 @@ +'use strict'; + +var functionName = require('function.prototype.name'); + +var anon = functionName(function () {}); + +module.exports = function isAbstractClosure(x) { + return typeof x === 'function' && (!x.prototype || functionName(x) === anon); +}; diff --git a/node_modules/es-abstract/helpers/isByteValue.js b/node_modules/es-abstract/helpers/isByteValue.js new file mode 100644 index 0000000000000000000000000000000000000000..1a7d0d35306475e5a73167751454db5b9df2a3df --- /dev/null +++ b/node_modules/es-abstract/helpers/isByteValue.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function isByteValue(value) { + return typeof value === 'number' && value >= 0 && value <= 255 && (value | 0) === value; +}; diff --git a/node_modules/es-abstract/helpers/isCodePoint.js b/node_modules/es-abstract/helpers/isCodePoint.js new file mode 100644 index 0000000000000000000000000000000000000000..acda02e9937893780f1ad28902b0352cf1d17d50 --- /dev/null +++ b/node_modules/es-abstract/helpers/isCodePoint.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function isCodePoint(cp) { + return typeof cp === 'number' && cp >= 0 && cp <= 0x10FFFF && (cp | 0) === cp; +}; diff --git a/node_modules/es-abstract/helpers/isFinite.js b/node_modules/es-abstract/helpers/isFinite.js new file mode 100644 index 0000000000000000000000000000000000000000..7ec751145cc8028217b2412ee609549003116558 --- /dev/null +++ b/node_modules/es-abstract/helpers/isFinite.js @@ -0,0 +1,4 @@ +'use strict'; + +// TODO, semver-major: delete +module.exports = require('math-intrinsics/isFinite'); diff --git a/node_modules/es-abstract/helpers/isFullyPopulatedPropertyDescriptor.js b/node_modules/es-abstract/helpers/isFullyPopulatedPropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..227860ef692261b044c9a8f1d8e99dac19d69802 --- /dev/null +++ b/node_modules/es-abstract/helpers/isFullyPopulatedPropertyDescriptor.js @@ -0,0 +1,10 @@ +'use strict'; + +var isPropertyDescriptor = require('./records/property-descriptor'); + +module.exports = function isFullyPopulatedPropertyDescriptor(ES, Desc) { + return isPropertyDescriptor(Desc) + && '[[Enumerable]]' in Desc + && '[[Configurable]]' in Desc + && (ES.IsAccessorDescriptor(Desc) || ES.IsDataDescriptor(Desc)); +}; diff --git a/node_modules/es-abstract/helpers/isInteger.js b/node_modules/es-abstract/helpers/isInteger.js new file mode 100644 index 0000000000000000000000000000000000000000..49c2c1ea8b39fb2e6dc81a350c266e4eb154db87 --- /dev/null +++ b/node_modules/es-abstract/helpers/isInteger.js @@ -0,0 +1,4 @@ +'use strict'; + +// TODO, semver-major: delete +module.exports = require('math-intrinsics/isInteger'); diff --git a/node_modules/es-abstract/helpers/isLeadingSurrogate.js b/node_modules/es-abstract/helpers/isLeadingSurrogate.js new file mode 100644 index 0000000000000000000000000000000000000000..fec61b2a573c1defd7a0a449e0aa7dcba7fe70d8 --- /dev/null +++ b/node_modules/es-abstract/helpers/isLeadingSurrogate.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function isLeadingSurrogate(charCode) { + return typeof charCode === 'number' && charCode >= 0xD800 && charCode <= 0xDBFF; +}; diff --git a/node_modules/es-abstract/helpers/isLineTerminator.js b/node_modules/es-abstract/helpers/isLineTerminator.js new file mode 100644 index 0000000000000000000000000000000000000000..baa683901616d1a0554617d1a3f59f5bdc6cf626 --- /dev/null +++ b/node_modules/es-abstract/helpers/isLineTerminator.js @@ -0,0 +1,7 @@ +'use strict'; + +// https://262.ecma-international.org/5.1/#sec-7.3 + +module.exports = function isLineTerminator(c) { + return c === '\n' || c === '\r' || c === '\u2028' || c === '\u2029'; +}; diff --git a/node_modules/es-abstract/helpers/isNaN.js b/node_modules/es-abstract/helpers/isNaN.js new file mode 100644 index 0000000000000000000000000000000000000000..cb8631dca6c00e507c1146b8400c09c5369835c0 --- /dev/null +++ b/node_modules/es-abstract/helpers/isNaN.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = Number.isNaN || function isNaN(a) { + return a !== a; +}; diff --git a/node_modules/es-abstract/helpers/isNegativeZero.js b/node_modules/es-abstract/helpers/isNegativeZero.js new file mode 100644 index 0000000000000000000000000000000000000000..ceba8c552b2f8156dfbc55a81b443ec7cd6f579a --- /dev/null +++ b/node_modules/es-abstract/helpers/isNegativeZero.js @@ -0,0 +1,6 @@ +'use strict'; + +// TODO, semver-major: remove +module.exports = function isNegativeZero(x) { + return x === 0 && 1 / x === 1 / -0; +}; diff --git a/node_modules/es-abstract/helpers/isObject.js b/node_modules/es-abstract/helpers/isObject.js new file mode 100644 index 0000000000000000000000000000000000000000..a93ac1f14726ff8fb0b6ec431db346a9ec640cda --- /dev/null +++ b/node_modules/es-abstract/helpers/isObject.js @@ -0,0 +1,5 @@ +'use strict'; + +// TODO: remove, semver-major + +module.exports = require('es-object-atoms/isObject'); diff --git a/node_modules/es-abstract/helpers/isPrefixOf.js b/node_modules/es-abstract/helpers/isPrefixOf.js new file mode 100644 index 0000000000000000000000000000000000000000..17819f2d0e175cb28c0e564043adbb2246fb3016 --- /dev/null +++ b/node_modules/es-abstract/helpers/isPrefixOf.js @@ -0,0 +1,13 @@ +'use strict'; + +var $strSlice = require('call-bound')('String.prototype.slice'); + +module.exports = function isPrefixOf(prefix, string) { + if (prefix === string) { + return true; + } + if (prefix.length > string.length) { + return false; + } + return $strSlice(string, 0, prefix.length) === prefix; +}; diff --git a/node_modules/es-abstract/helpers/isPrimitive.js b/node_modules/es-abstract/helpers/isPrimitive.js new file mode 100644 index 0000000000000000000000000000000000000000..06f0bf042525a13635fcd0980e07d4737a09c0c8 --- /dev/null +++ b/node_modules/es-abstract/helpers/isPrimitive.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function isPrimitive(value) { + return value === null || (typeof value !== 'function' && typeof value !== 'object'); +}; diff --git a/node_modules/es-abstract/helpers/isPropertyKey.js b/node_modules/es-abstract/helpers/isPropertyKey.js new file mode 100644 index 0000000000000000000000000000000000000000..4b1c5766a4c66b1d1658f8907f991b9699178390 --- /dev/null +++ b/node_modules/es-abstract/helpers/isPropertyKey.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function isPropertyKey(argument) { + return typeof argument === 'string' || typeof argument === 'symbol'; +}; diff --git a/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js b/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..a6162a1d3c79d32c73bf30ce9d78a7121c214055 --- /dev/null +++ b/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js @@ -0,0 +1,20 @@ +'use strict'; + +var every = require('./every'); + +module.exports = function isSamePropertyDescriptor(ES, D1, D2) { + var fields = [ + '[[Configurable]]', + '[[Enumerable]]', + '[[Get]]', + '[[Set]]', + '[[Value]]', + '[[Writable]]' + ]; + return every(fields, function (field) { + if ((field in D1) !== (field in D2)) { + return false; + } + return ES.SameValue(D1[field], D2[field]); + }); +}; diff --git a/node_modules/es-abstract/helpers/isSameType.js b/node_modules/es-abstract/helpers/isSameType.js new file mode 100644 index 0000000000000000000000000000000000000000..20307d7ec5af280e9db57754f85e3dbe40048b1c --- /dev/null +++ b/node_modules/es-abstract/helpers/isSameType.js @@ -0,0 +1,16 @@ +'use strict'; + +module.exports = function isSameType(x, y) { + if (x === y) { + return true; + } + + if (typeof x === typeof y) { + if (typeof x !== 'object' || typeof y !== 'object') { + return true; + } + return !!x === !!y; + } + + return false; +}; diff --git a/node_modules/es-abstract/helpers/isStringOrHole.js b/node_modules/es-abstract/helpers/isStringOrHole.js new file mode 100644 index 0000000000000000000000000000000000000000..dea9aafef2f9351196c959dffb2adb1fdaf7a5bf --- /dev/null +++ b/node_modules/es-abstract/helpers/isStringOrHole.js @@ -0,0 +1,9 @@ +'use strict'; + +// TODO: semver-major: remove + +var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false + +module.exports = function isStringOrHole(item, index, arr) { + return typeof item === 'string' || (canDistinguishSparseFromUndefined ? !(index in arr) : typeof item === 'undefined'); +}; diff --git a/node_modules/es-abstract/helpers/isStringOrUndefined.js b/node_modules/es-abstract/helpers/isStringOrUndefined.js new file mode 100644 index 0000000000000000000000000000000000000000..7fc485779c3adcf76446b4ca7ab06cb0813079b1 --- /dev/null +++ b/node_modules/es-abstract/helpers/isStringOrUndefined.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function isStringOrUndefined(item) { + return typeof item === 'string' || typeof item === 'undefined'; +}; diff --git a/node_modules/es-abstract/helpers/isTrailingSurrogate.js b/node_modules/es-abstract/helpers/isTrailingSurrogate.js new file mode 100644 index 0000000000000000000000000000000000000000..002930accf80e17560d182ff69a0dd313c2b3f9e --- /dev/null +++ b/node_modules/es-abstract/helpers/isTrailingSurrogate.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function isTrailingSurrogate(charCode) { + return typeof charCode === 'number' && charCode >= 0xDC00 && charCode <= 0xDFFF; +}; diff --git a/node_modules/es-abstract/helpers/maxSafeInteger.js b/node_modules/es-abstract/helpers/maxSafeInteger.js new file mode 100644 index 0000000000000000000000000000000000000000..baf0f9226cf7bbf9be9327c55965b2e6eb9071fe --- /dev/null +++ b/node_modules/es-abstract/helpers/maxSafeInteger.js @@ -0,0 +1,4 @@ +'use strict'; + +// TODO, semver-major: delete +module.exports = require('math-intrinsics/constants/maxSafeInteger'); diff --git a/node_modules/es-abstract/helpers/maxValue.js b/node_modules/es-abstract/helpers/maxValue.js new file mode 100644 index 0000000000000000000000000000000000000000..71f490309a1b2bdae9424f7137b00fc2c0ffbb36 --- /dev/null +++ b/node_modules/es-abstract/helpers/maxValue.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = Number.MAX_VALUE || 1.7976931348623157e+308; diff --git a/node_modules/es-abstract/helpers/mod.js b/node_modules/es-abstract/helpers/mod.js new file mode 100644 index 0000000000000000000000000000000000000000..7e604647c3e5e45958d70908bd502b18eb532e73 --- /dev/null +++ b/node_modules/es-abstract/helpers/mod.js @@ -0,0 +1,4 @@ +'use strict'; + +// TODO, semver-major: delete +module.exports = require('math-intrinsics/mod'); diff --git a/node_modules/es-abstract/helpers/modBigInt.js b/node_modules/es-abstract/helpers/modBigInt.js new file mode 100644 index 0000000000000000000000000000000000000000..22be2a1a70d8dccabaa77dfe098bf4090f88dc13 --- /dev/null +++ b/node_modules/es-abstract/helpers/modBigInt.js @@ -0,0 +1,6 @@ +'use strict'; + +module.exports = function bigIntMod(BigIntRemainder, bigint, modulo) { + var remain = BigIntRemainder(bigint, modulo); + return remain >= 0 ? remain : remain + modulo; +}; diff --git a/node_modules/es-abstract/helpers/padTimeComponent.js b/node_modules/es-abstract/helpers/padTimeComponent.js new file mode 100644 index 0000000000000000000000000000000000000000..afc52b5ad7a73bd288ee6c6bbdb1a167a5607d9f --- /dev/null +++ b/node_modules/es-abstract/helpers/padTimeComponent.js @@ -0,0 +1,9 @@ +'use strict'; + +var callBound = require('call-bound'); + +var $strSlice = callBound('String.prototype.slice'); + +module.exports = function padTimeComponent(c, count) { + return $strSlice('00' + c, -(count || 2)); +}; diff --git a/node_modules/es-abstract/helpers/records/async-generator-request-record.js b/node_modules/es-abstract/helpers/records/async-generator-request-record.js new file mode 100644 index 0000000000000000000000000000000000000000..8adb4fb20a11ea8ac5af8b0f63449f2551a5f768 --- /dev/null +++ b/node_modules/es-abstract/helpers/records/async-generator-request-record.js @@ -0,0 +1,13 @@ +'use strict'; + +var hasOwn = require('hasown'); + +var isPromiseCapabilityRecord = require('./promise-capability-record'); + +module.exports = function isAsyncGeneratorRequestRecord(value) { + return !!value + && typeof value === 'object' + && hasOwn(value, '[[Completion]]') // TODO: confirm is a completion record + && hasOwn(value, '[[Capability]]') + && isPromiseCapabilityRecord(value['[[Capability]]']); +}; diff --git a/node_modules/es-abstract/helpers/records/data-view-with-buffer-witness-record.js b/node_modules/es-abstract/helpers/records/data-view-with-buffer-witness-record.js new file mode 100644 index 0000000000000000000000000000000000000000..74f26e46ec417c0ed6b3ef92b468328065245fa2 --- /dev/null +++ b/node_modules/es-abstract/helpers/records/data-view-with-buffer-witness-record.js @@ -0,0 +1,18 @@ +'use strict'; + +var hasOwn = require('hasown'); +var isDataView = require('is-data-view'); + +var isInteger = require('../isInteger'); + +module.exports = function isDataViewWithBufferWitnessRecord(value) { + return !!value + && typeof value === 'object' + && hasOwn(value, '[[Object]]') + && hasOwn(value, '[[CachedBufferByteLength]]') + && ( + (isInteger(value['[[CachedBufferByteLength]]']) && value['[[CachedBufferByteLength]]'] >= 0) + || value['[[CachedBufferByteLength]]'] === 'DETACHED' + ) + && isDataView(value['[[Object]]']); +}; diff --git a/node_modules/es-abstract/helpers/records/iterator-record-2023.js b/node_modules/es-abstract/helpers/records/iterator-record-2023.js new file mode 100644 index 0000000000000000000000000000000000000000..cd04a89443d29df5e2bb5f19e33ea0ecacd5c7db --- /dev/null +++ b/node_modules/es-abstract/helpers/records/iterator-record-2023.js @@ -0,0 +1,7 @@ +'use strict'; + +var isIteratorRecordNew = require('./iterator-record'); + +module.exports = function isIteratorRecord(value) { + return isIteratorRecordNew(value) && typeof value['[[NextMethod]]'] === 'function'; +}; diff --git a/node_modules/es-abstract/helpers/records/iterator-record.js b/node_modules/es-abstract/helpers/records/iterator-record.js new file mode 100644 index 0000000000000000000000000000000000000000..66cd74923e13fcd2312e8f7d8501dc1a82b180ba --- /dev/null +++ b/node_modules/es-abstract/helpers/records/iterator-record.js @@ -0,0 +1,12 @@ +'use strict'; + +var hasOwn = require('hasown'); + +module.exports = function isIteratorRecord(value) { + return !!value + && typeof value === 'object' + && hasOwn(value, '[[Iterator]]') + && hasOwn(value, '[[NextMethod]]') + && hasOwn(value, '[[Done]]') + && typeof value['[[Done]]'] === 'boolean'; +}; diff --git a/node_modules/es-abstract/helpers/records/match-record.js b/node_modules/es-abstract/helpers/records/match-record.js new file mode 100644 index 0000000000000000000000000000000000000000..be8ca2cadb2988bb6365dc0c0ae7681b489b1918 --- /dev/null +++ b/node_modules/es-abstract/helpers/records/match-record.js @@ -0,0 +1,18 @@ +'use strict'; + +var hasOwn = require('hasown'); + +// https://262.ecma-international.org/13.0/#sec-match-records + +module.exports = function isMatchRecord(record) { + return ( + !!record + && typeof record === 'object' + && hasOwn(record, '[[StartIndex]]') + && hasOwn(record, '[[EndIndex]]') + && record['[[StartIndex]]'] >= 0 + && record['[[EndIndex]]'] >= record['[[StartIndex]]'] + && String(parseInt(record['[[StartIndex]]'], 10)) === String(record['[[StartIndex]]']) + && String(parseInt(record['[[EndIndex]]'], 10)) === String(record['[[EndIndex]]']) + ); +}; diff --git a/node_modules/es-abstract/helpers/records/promise-capability-record.js b/node_modules/es-abstract/helpers/records/promise-capability-record.js new file mode 100644 index 0000000000000000000000000000000000000000..723a538e9e9592f5c77a9582e709d144cc0f9db0 --- /dev/null +++ b/node_modules/es-abstract/helpers/records/promise-capability-record.js @@ -0,0 +1,16 @@ +'use strict'; + +var hasOwn = require('hasown'); + +module.exports = function isPromiseCapabilityRecord(value) { + return !!value + && typeof value === 'object' + && hasOwn(value, '[[Resolve]]') + && typeof value['[[Resolve]]'] === 'function' + && hasOwn(value, '[[Reject]]') + && typeof value['[[Reject]]'] === 'function' + && hasOwn(value, '[[Promise]]') + && !!value['[[Promise]]'] + && typeof value['[[Promise]]'] === 'object' + && typeof value['[[Promise]]'].then === 'function'; +}; diff --git a/node_modules/es-abstract/helpers/records/property-descriptor.js b/node_modules/es-abstract/helpers/records/property-descriptor.js new file mode 100644 index 0000000000000000000000000000000000000000..0fcdc991fecb29c17b57e09884a57319beea4153 --- /dev/null +++ b/node_modules/es-abstract/helpers/records/property-descriptor.js @@ -0,0 +1,36 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var hasOwn = require('hasown'); + +var allowed = { + __proto__: null, + '[[Configurable]]': true, + '[[Enumerable]]': true, + '[[Get]]': true, + '[[Set]]': true, + '[[Value]]': true, + '[[Writable]]': true +}; + +// https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type + +module.exports = function isPropertyDescriptor(Desc) { + if (!Desc || typeof Desc !== 'object') { + return false; + } + + for (var key in Desc) { // eslint-disable-line + if (hasOwn(Desc, key) && !allowed[key]) { + return false; + } + } + + var isData = hasOwn(Desc, '[[Value]]') || hasOwn(Desc, '[[Writable]]'); + var IsAccessor = hasOwn(Desc, '[[Get]]') || hasOwn(Desc, '[[Set]]'); + if (isData && IsAccessor) { + throw new $TypeError('Property Descriptors may not be both accessor and data descriptors'); + } + return true; +}; diff --git a/node_modules/es-abstract/helpers/records/regexp-record.js b/node_modules/es-abstract/helpers/records/regexp-record.js new file mode 100644 index 0000000000000000000000000000000000000000..e636306f2c06d22b1c3f972473991aafbaf53014 --- /dev/null +++ b/node_modules/es-abstract/helpers/records/regexp-record.js @@ -0,0 +1,23 @@ +'use strict'; + +var hasOwn = require('hasown'); + +var isInteger = require('../isInteger'); + +module.exports = function isRegExpRecord(value) { + return !!value + && typeof value === 'object' + && hasOwn(value, '[[IgnoreCase]]') + && typeof value['[[IgnoreCase]]'] === 'boolean' + && hasOwn(value, '[[Multiline]]') + && typeof value['[[Multiline]]'] === 'boolean' + && hasOwn(value, '[[DotAll]]') + && typeof value['[[DotAll]]'] === 'boolean' + && hasOwn(value, '[[Unicode]]') + && typeof value['[[Unicode]]'] === 'boolean' + && hasOwn(value, '[[CapturingGroupsCount]]') + && typeof value['[[CapturingGroupsCount]]'] === 'number' + && isInteger(value['[[CapturingGroupsCount]]']) + && value['[[CapturingGroupsCount]]'] >= 0 + && (!hasOwn(value, '[[UnicodeSets]]') || typeof value['[[UnicodeSets]]'] === 'boolean'); // optional since it was added later +}; diff --git a/node_modules/es-abstract/helpers/records/set-record.js b/node_modules/es-abstract/helpers/records/set-record.js new file mode 100644 index 0000000000000000000000000000000000000000..fdde8f483729860fe32f0818e7a09a507ba147e1 --- /dev/null +++ b/node_modules/es-abstract/helpers/records/set-record.js @@ -0,0 +1,21 @@ +'use strict'; + +var hasOwn = require('hasown'); +var isInteger = require('../isInteger'); + +module.exports = function isSetRecord(value) { + return !!value + && typeof value === 'object' + && hasOwn(value, '[[SetObject]]') + && value['[[SetObject]]'] + && typeof value['[[SetObject]]'] === 'object' + && hasOwn(value, '[[Size]]') + && ( + value['[[Size]]'] === Infinity + || (isInteger(value['[[Size]]']) && value['[[Size]]'] >= 0) + ) + && hasOwn(value, '[[Has]]') + && typeof value['[[Has]]'] === 'function' + && hasOwn(value, '[[Keys]]') + && typeof value['[[Keys]]'] === 'function'; +}; diff --git a/node_modules/es-abstract/helpers/records/typed-array-with-buffer-witness-record.js b/node_modules/es-abstract/helpers/records/typed-array-with-buffer-witness-record.js new file mode 100644 index 0000000000000000000000000000000000000000..47bc1ec949ad5aad3931500657f78c940068a8c5 --- /dev/null +++ b/node_modules/es-abstract/helpers/records/typed-array-with-buffer-witness-record.js @@ -0,0 +1,18 @@ +'use strict'; + +var hasOwn = require('hasown'); +var isTypedArray = require('is-typed-array'); + +var isInteger = require('../isInteger'); + +module.exports = function isTypedArrayWithBufferWitnessRecord(value) { + return !!value + && typeof value === 'object' + && hasOwn(value, '[[Object]]') + && hasOwn(value, '[[CachedBufferByteLength]]') + && ( + (isInteger(value['[[CachedBufferByteLength]]']) && value['[[CachedBufferByteLength]]'] >= 0) + || value['[[CachedBufferByteLength]]'] === 'DETACHED' + ) + && isTypedArray(value['[[Object]]']); +}; diff --git a/node_modules/es-abstract/helpers/reduce.js b/node_modules/es-abstract/helpers/reduce.js new file mode 100644 index 0000000000000000000000000000000000000000..fb9a56f6da123ce9e9af63fc482130dd30283065 --- /dev/null +++ b/node_modules/es-abstract/helpers/reduce.js @@ -0,0 +1,9 @@ +'use strict'; + +module.exports = function reduce(arr, fn, init) { + var acc = init; + for (var i = 0; i < arr.length; i += 1) { + acc = fn(acc, arr[i], i); + } + return acc; +}; diff --git a/node_modules/es-abstract/helpers/regexTester.js b/node_modules/es-abstract/helpers/regexTester.js new file mode 100644 index 0000000000000000000000000000000000000000..41e48bec34c660129f9fbdd749a1d54140845282 --- /dev/null +++ b/node_modules/es-abstract/helpers/regexTester.js @@ -0,0 +1,5 @@ +'use strict'; + +// TODO: remove, semver-major + +module.exports = require('safe-regex-test'); diff --git a/node_modules/es-abstract/helpers/setProto.js b/node_modules/es-abstract/helpers/setProto.js new file mode 100644 index 0000000000000000000000000000000000000000..b261bcfec622b4c3e194d0ee657ac366a61f6a92 --- /dev/null +++ b/node_modules/es-abstract/helpers/setProto.js @@ -0,0 +1,4 @@ +'use strict'; + +// TODO, semver-major: remove +module.exports = require('set-proto'); diff --git a/node_modules/es-abstract/helpers/sign.js b/node_modules/es-abstract/helpers/sign.js new file mode 100644 index 0000000000000000000000000000000000000000..512dd20bd89d045fc9e19576f9163c565ec484eb --- /dev/null +++ b/node_modules/es-abstract/helpers/sign.js @@ -0,0 +1,4 @@ +'use strict'; + +// TODO, semver-major: delete +module.exports = require('math-intrinsics/sign'); diff --git a/node_modules/es-abstract/helpers/some.js b/node_modules/es-abstract/helpers/some.js new file mode 100644 index 0000000000000000000000000000000000000000..c0b440507745bfb29cec27074f4421fba6a992a3 --- /dev/null +++ b/node_modules/es-abstract/helpers/some.js @@ -0,0 +1,10 @@ +'use strict'; + +module.exports = function some(array, predicate) { + for (var i = 0; i < array.length; i += 1) { + if (predicate(array[i], i, array)) { + return true; + } + } + return false; +}; diff --git a/node_modules/es-abstract/helpers/timeConstants.js b/node_modules/es-abstract/helpers/timeConstants.js new file mode 100644 index 0000000000000000000000000000000000000000..c275b40e70f12b247c58ad2ed44a715904199265 --- /dev/null +++ b/node_modules/es-abstract/helpers/timeConstants.js @@ -0,0 +1,19 @@ +'use strict'; + +var HoursPerDay = 24; +var MinutesPerHour = 60; +var SecondsPerMinute = 60; +var msPerSecond = 1e3; +var msPerMinute = msPerSecond * SecondsPerMinute; +var msPerHour = msPerMinute * MinutesPerHour; +var msPerDay = 86400000; + +module.exports = { + HoursPerDay: HoursPerDay, + MinutesPerHour: MinutesPerHour, + SecondsPerMinute: SecondsPerMinute, + msPerSecond: msPerSecond, + msPerMinute: msPerMinute, + msPerHour: msPerHour, + msPerDay: msPerDay +}; diff --git a/node_modules/es-abstract/helpers/timeValue.js b/node_modules/es-abstract/helpers/timeValue.js new file mode 100644 index 0000000000000000000000000000000000000000..09f808a1cd6326c556805365b2d9ce60fc77d333 --- /dev/null +++ b/node_modules/es-abstract/helpers/timeValue.js @@ -0,0 +1,7 @@ +'use strict'; + +var $DateGetTime = require('call-bound')('Date.prototype.getTime'); + +module.exports = function timeValue(x) { + return $DateGetTime(x); +}; diff --git a/node_modules/es-abstract/helpers/typedArrayConstructors.js b/node_modules/es-abstract/helpers/typedArrayConstructors.js new file mode 100644 index 0000000000000000000000000000000000000000..810c37d6d36c32326b0515eda0f192e2735c4740 --- /dev/null +++ b/node_modules/es-abstract/helpers/typedArrayConstructors.js @@ -0,0 +1,23 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var constructors = { + __proto__: null, + $Int8Array: GetIntrinsic('%Int8Array%', true), + $Uint8Array: GetIntrinsic('%Uint8Array%', true), + $Uint8ClampedArray: GetIntrinsic('%Uint8ClampedArray%', true), + $Int16Array: GetIntrinsic('%Int16Array%', true), + $Uint16Array: GetIntrinsic('%Uint16Array%', true), + $Int32Array: GetIntrinsic('%Int32Array%', true), + $Uint32Array: GetIntrinsic('%Uint32Array%', true), + $BigInt64Array: GetIntrinsic('%BigInt64Array%', true), + $BigUint64Array: GetIntrinsic('%BigUint64Array%', true), + $Float16Array: GetIntrinsic('%Float16Array%', true), + $Float32Array: GetIntrinsic('%Float32Array%', true), + $Float64Array: GetIntrinsic('%Float64Array%', true) +}; + +module.exports = function getConstructor(kind) { + return constructors['$' + kind]; +}; diff --git a/node_modules/es-abstract/helpers/valueToFloat16Bytes.js b/node_modules/es-abstract/helpers/valueToFloat16Bytes.js new file mode 100644 index 0000000000000000000000000000000000000000..021750e4580a7ca38028479772f70954ab9066b3 --- /dev/null +++ b/node_modules/es-abstract/helpers/valueToFloat16Bytes.js @@ -0,0 +1,73 @@ +'use strict'; + +var $abs = require('math-intrinsics/abs'); +var $floor = require('math-intrinsics/floor'); +var $pow = require('math-intrinsics/pow'); + +var isFinite = require('math-intrinsics/isFinite'); +var isNaN = require('math-intrinsics/isNaN'); +var isNegativeZero = require('math-intrinsics/isNegativeZero'); + +var maxFiniteFloat16 = 65504; // 2**16 - 2**5 + +module.exports = function valueToFloat16Bytes(value, isLittleEndian) { + // NaN → exponent=all-ones, mantissa MSB=1 → 0x7e00 + if (isNaN(value)) { + return isLittleEndian + ? [0x00, 0x7e] + : [0x7e, 0x00]; + } + + var leastSig; + + // ±0 → just the sign bit + if (value === 0) { + leastSig = isNegativeZero(value) ? 0x80 : 0x00; + return isLittleEndian + ? [0x00, leastSig] + : [leastSig, 0x00]; + } + + // ±∞ → exponent=all-ones, mantissa=0 → 0x7c00 or 0xfc00 + if ($abs(value) > maxFiniteFloat16 || !isFinite(value)) { + leastSig = value < 0 ? 0xfc : 0x7c; + return isLittleEndian + ? [0x00, leastSig] + : [leastSig, 0x00]; + } + + var sign = value < 0 ? 1 : 0; + value = $abs(value); // eslint-disable-line no-param-reassign + + // normalize to [1,2) + var exponent = 0; + while (value >= 2) { + exponent += 1; + value /= 2; // eslint-disable-line no-param-reassign + } + while (value < 1) { + exponent -= 1; + value *= 2; // eslint-disable-line no-param-reassign + } + + // build mantissa (10 bits) + var mantissa = value - 1; + mantissa *= $pow(2, 10) + 0.5; + mantissa = $floor(mantissa); + + // apply bias (15) and shift into place + exponent += 15; + exponent <<= 10; + + // pack sign, exponent, mantissa + var result = (sign << 15) | exponent | mantissa; + + // split into two bytes + var byte0 = result & 0xFF; + result >>= 8; + var byte1 = result & 0xFF; + + return isLittleEndian + ? [byte0, byte1] + : [byte1, byte0]; +}; diff --git a/node_modules/es-abstract/helpers/valueToFloat32Bytes.js b/node_modules/es-abstract/helpers/valueToFloat32Bytes.js new file mode 100644 index 0000000000000000000000000000000000000000..4443a47dd0a69b9c8538156da39e3428291f95d7 --- /dev/null +++ b/node_modules/es-abstract/helpers/valueToFloat32Bytes.js @@ -0,0 +1,67 @@ +'use strict'; + +var $abs = require('math-intrinsics/abs'); +var $floor = require('math-intrinsics/floor'); +var $pow = require('math-intrinsics/pow'); + +var isFinite = require('math-intrinsics/isFinite'); +var isNaN = require('math-intrinsics/isNaN'); +var isNegativeZero = require('math-intrinsics/isNegativeZero'); + +var maxFiniteFloat32 = 3.4028234663852886e+38; // roughly 2 ** 128 - 1 + +module.exports = function valueToFloat32Bytes(value, isLittleEndian) { + if (isNaN(value)) { + return isLittleEndian ? [0, 0, 192, 127] : [127, 192, 0, 0]; // hardcoded + } + + var leastSig; + + if (value === 0) { + leastSig = isNegativeZero(value) ? 0x80 : 0; + return isLittleEndian ? [0, 0, 0, leastSig] : [leastSig, 0, 0, 0]; + } + + if ($abs(value) > maxFiniteFloat32 || !isFinite(value)) { + leastSig = value < 0 ? 255 : 127; + return isLittleEndian ? [0, 0, 128, leastSig] : [leastSig, 128, 0, 0]; + } + + var sign = value < 0 ? 1 : 0; + value = $abs(value); // eslint-disable-line no-param-reassign + + var exponent = 0; + while (value >= 2) { + exponent += 1; + value /= 2; // eslint-disable-line no-param-reassign + } + + while (value < 1) { + exponent -= 1; + value *= 2; // eslint-disable-line no-param-reassign + } + + var mantissa = value - 1; + mantissa *= $pow(2, 23) + 0.5; + mantissa = $floor(mantissa); + + exponent += 127; + exponent <<= 23; + + var result = (sign << 31) + | exponent + | mantissa; + + var byte0 = result & 255; + result >>= 8; + var byte1 = result & 255; + result >>= 8; + var byte2 = result & 255; + result >>= 8; + var byte3 = result & 255; + + if (isLittleEndian) { + return [byte0, byte1, byte2, byte3]; + } + return [byte3, byte2, byte1, byte0]; +}; diff --git a/node_modules/es-abstract/helpers/valueToFloat64Bytes.js b/node_modules/es-abstract/helpers/valueToFloat64Bytes.js new file mode 100644 index 0000000000000000000000000000000000000000..444d5e8797269b0955b708392c340f94b92e5fac --- /dev/null +++ b/node_modules/es-abstract/helpers/valueToFloat64Bytes.js @@ -0,0 +1,83 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $parseInt = GetIntrinsic('%parseInt%'); +var $abs = require('math-intrinsics/abs'); +var $floor = require('math-intrinsics/floor'); +var isNegativeZero = require('math-intrinsics/isNegativeZero'); + +var callBound = require('call-bound'); + +var $strIndexOf = callBound('String.prototype.indexOf'); +var $strSlice = callBound('String.prototype.slice'); + +var fractionToBitString = require('../helpers/fractionToBinaryString'); +var intToBinString = require('../helpers/intToBinaryString'); + +var float64bias = 1023; + +var elevenOnes = '11111111111'; +var elevenZeroes = '00000000000'; +var fiftyOneZeroes = elevenZeroes + elevenZeroes + elevenZeroes + elevenZeroes + '0000000'; + +// IEEE 754-1985 +module.exports = function valueToFloat64Bytes(value, isLittleEndian) { + var signBit = value < 0 || isNegativeZero(value) ? '1' : '0'; + var exponentBits; + var significandBits; + + if (isNaN(value)) { + exponentBits = elevenOnes; + significandBits = '1' + fiftyOneZeroes; + } else if (!isFinite(value)) { + exponentBits = elevenOnes; + significandBits = '0' + fiftyOneZeroes; + } else if (value === 0) { + exponentBits = elevenZeroes; + significandBits = '0' + fiftyOneZeroes; + } else { + value = $abs(value); // eslint-disable-line no-param-reassign + + // Isolate the integer part (digits before the decimal): + var integerPart = $floor(value); + + var intBinString = intToBinString(integerPart); // bit string for integer part + var fracBinString = fractionToBitString(value - integerPart); // bit string for fractional part + + var numberOfBits; + // find exponent needed to normalize integer+fractional parts + if (intBinString) { + exponentBits = intBinString.length - 1; // move the decimal to the left + } else { + var first1 = $strIndexOf(fracBinString, '1'); + if (first1 > -1) { + numberOfBits = first1 + 1; + } + exponentBits = -numberOfBits; // move the decimal to the right + } + + significandBits = intBinString + fracBinString; + if (exponentBits < 0) { + // subnormals + if (exponentBits <= -float64bias) { + numberOfBits = float64bias - 1; // limit number of removed bits + } + significandBits = $strSlice(significandBits, numberOfBits); // remove all leading 0s and the first 1 for normal values; for subnormals, remove up to `float64bias - 1` leading bits + } else { + significandBits = $strSlice(significandBits, 1); // remove the leading '1' (implicit/hidden bit) + } + exponentBits = $strSlice(elevenZeroes + intToBinString(exponentBits + float64bias), -11); // Convert the exponent to a bit string + + significandBits = $strSlice(significandBits + fiftyOneZeroes + '0', 0, 52); // fill in any trailing zeros and ensure we have only 52 fraction bits + } + + var bits = signBit + exponentBits + significandBits; + var rawBytes = []; + for (var i = 0; i < 8; i++) { + var targetIndex = isLittleEndian ? 8 - i - 1 : i; + rawBytes[targetIndex] = $parseInt($strSlice(bits, i * 8, (i + 1) * 8), 2); + } + + return rawBytes; +}; diff --git a/node_modules/es-abstract/index.js b/node_modules/es-abstract/index.js new file mode 100644 index 0000000000000000000000000000000000000000..88183bdf96d0c0ef13bbde7d0e822a888df782e5 --- /dev/null +++ b/node_modules/es-abstract/index.js @@ -0,0 +1,38 @@ +'use strict'; + +var assign = require('./helpers/assign'); + +var ES5 = require('./es5'); +var ES2015 = require('./es2015'); +var ES2016 = require('./es2016'); +var ES2017 = require('./es2017'); +var ES2018 = require('./es2018'); +var ES2019 = require('./es2019'); +var ES2020 = require('./es2020'); +var ES2021 = require('./es2021'); +var ES2022 = require('./es2022'); +var ES2023 = require('./es2023'); +var ES2024 = require('./es2024'); +var ES2025 = require('./es2025'); + +var ES = { + ES5: ES5, + ES6: ES2015, + ES2015: ES2015, + ES7: ES2016, + ES2016: ES2016, + ES2017: ES2017, + ES2018: ES2018, + ES2019: ES2019, + ES2020: ES2020, + ES2021: ES2021, + ES2022: ES2022, + ES2023: ES2023, + ES2024: ES2024, + ES2025: ES2025 +}; +assign(ES, ES5); +delete ES.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible +assign(ES, ES2015); + +module.exports = ES; diff --git a/node_modules/es-abstract/operations/2015.js b/node_modules/es-abstract/operations/2015.js new file mode 100644 index 0000000000000000000000000000000000000000..9edb26779c4985741f2f51db7bdd584edb9c5997 --- /dev/null +++ b/node_modules/es-abstract/operations/2015.js @@ -0,0 +1,744 @@ +'use strict'; + +module.exports = { + IsPropertyDescriptor: 'https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type', // not actually an abstract op + + abs: { + url: 'https://262.ecma-international.org/6.0/#sec-algorithm-conventions' + }, + 'Abstract Equality Comparison': { + url: 'https://262.ecma-international.org/6.0/#sec-abstract-equality-comparison' + }, + 'Abstract Relational Comparison': { + url: 'https://262.ecma-international.org/6.0/#sec-abstract-relational-comparison' + }, + AddRestrictedFunctionProperties: { + url: 'https://262.ecma-international.org/6.0/#sec-addrestrictedfunctionproperties' + }, + AdvanceStringIndex: { + url: 'https://262.ecma-international.org/6.0/#sec-advancestringindex' + }, + AllocateArrayBuffer: { + url: 'https://262.ecma-international.org/6.0/#sec-allocatearraybuffer' + }, + AllocateTypedArray: { + url: 'https://262.ecma-international.org/6.0/#sec-allocatetypedarray' + }, + ArrayCreate: { + url: 'https://262.ecma-international.org/6.0/#sec-arraycreate' + }, + ArraySetLength: { + url: 'https://262.ecma-international.org/6.0/#sec-arraysetlength' + }, + ArraySpeciesCreate: { + url: 'https://262.ecma-international.org/6.0/#sec-arrayspeciescreate' + }, + BoundFunctionCreate: { + url: 'https://262.ecma-international.org/6.0/#sec-boundfunctioncreate' + }, + Call: { + url: 'https://262.ecma-international.org/6.0/#sec-call' + }, + Canonicalize: { + url: 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-canonicalize-ch' + }, + CanonicalNumericIndexString: { + url: 'https://262.ecma-international.org/6.0/#sec-canonicalnumericindexstring' + }, + CharacterRange: { + url: 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-characterrange-abstract-operation' + }, + CharacterSetMatcher: { + url: 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation' + }, + CloneArrayBuffer: { + url: 'https://262.ecma-international.org/6.0/#sec-clonearraybuffer' + }, + CompletePropertyDescriptor: { + url: 'https://262.ecma-international.org/6.0/#sec-completepropertydescriptor' + }, + Completion: { + url: 'https://262.ecma-international.org/6.0/#sec-implicit-completion-values' + }, + CompletionRecord: { + url: 'https://262.ecma-international.org/6.0/#sec-completion-record-specification-type' + }, + Construct: { + url: 'https://262.ecma-international.org/6.0/#sec-construct' + }, + CopyDataBlockBytes: { + url: 'https://262.ecma-international.org/6.0/#sec-copydatablockbytes' + }, + CreateArrayFromList: { + url: 'https://262.ecma-international.org/6.0/#sec-createarrayfromlist' + }, + CreateArrayIterator: { + url: 'https://262.ecma-international.org/6.0/#sec-createarrayiterator' + }, + CreateBuiltinFunction: { + url: 'https://262.ecma-international.org/6.0/#sec-createbuiltinfunction' + }, + CreateByteDataBlock: { + url: 'https://262.ecma-international.org/6.0/#sec-createbytedatablock' + }, + CreateDataProperty: { + url: 'https://262.ecma-international.org/6.0/#sec-createdataproperty' + }, + CreateDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/6.0/#sec-createdatapropertyorthrow' + }, + CreateDynamicFunction: { + url: 'https://262.ecma-international.org/6.0/#sec-createdynamicfunction' + }, + CreateHTML: { + url: 'https://262.ecma-international.org/6.0/#sec-createhtml' + }, + CreateIntrinsics: { + url: 'https://262.ecma-international.org/6.0/#sec-createintrinsics' + }, + CreateIterResultObject: { + url: 'https://262.ecma-international.org/6.0/#sec-createiterresultobject' + }, + CreateListFromArrayLike: { + url: 'https://262.ecma-international.org/6.0/#sec-createlistfromarraylike' + }, + CreateListIterator: { + url: 'https://262.ecma-international.org/6.0/#sec-createlistiterator' + }, + CreateMapIterator: { + url: 'https://262.ecma-international.org/6.0/#sec-createmapiterator' + }, + CreateMappedArgumentsObject: { + url: 'https://262.ecma-international.org/6.0/#sec-createmappedargumentsobject' + }, + CreateMethodProperty: { + url: 'https://262.ecma-international.org/6.0/#sec-createmethodproperty' + }, + CreatePerIterationEnvironment: { + url: 'https://262.ecma-international.org/6.0/#sec-createperiterationenvironment' + }, + CreateRealm: { + url: 'https://262.ecma-international.org/6.0/#sec-createrealm' + }, + CreateSetIterator: { + url: 'https://262.ecma-international.org/6.0/#sec-createsetiterator' + }, + CreateUnmappedArgumentsObject: { + url: 'https://262.ecma-international.org/6.0/#sec-createunmappedargumentsobject' + }, + DateFromTime: { + url: 'https://262.ecma-international.org/6.0/#sec-date-number' + }, + Day: { + url: 'https://262.ecma-international.org/6.0/#sec-day-number-and-time-within-day' + }, + DayFromYear: { + url: 'https://262.ecma-international.org/6.0/#sec-year-number' + }, + DaylightSavingTA: { + url: 'https://262.ecma-international.org/6.0/#sec-daylight-saving-time-adjustment' + }, + DaysInYear: { + url: 'https://262.ecma-international.org/6.0/#sec-year-number' + }, + DayWithinYear: { + url: 'https://262.ecma-international.org/6.0/#sec-month-number' + }, + Decode: { + url: 'https://262.ecma-international.org/6.0/#sec-decode' + }, + DefinePropertyOrThrow: { + url: 'https://262.ecma-international.org/6.0/#sec-definepropertyorthrow' + }, + DeletePropertyOrThrow: { + url: 'https://262.ecma-international.org/6.0/#sec-deletepropertyorthrow' + }, + DetachArrayBuffer: { + url: 'https://262.ecma-international.org/6.0/#sec-detacharraybuffer' + }, + Encode: { + url: 'https://262.ecma-international.org/6.0/#sec-encode' + }, + EnqueueJob: { + url: 'https://262.ecma-international.org/6.0/#sec-enqueuejob' + }, + EnumerableOwnNames: { + url: 'https://262.ecma-international.org/6.0/#sec-enumerableownnames' + }, + EscapeRegExpPattern: { + url: 'https://262.ecma-international.org/6.0/#sec-escaperegexppattern' + }, + EvalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/6.0/#sec-evaldeclarationinstantiation' + }, + EvaluateCall: { + url: 'https://262.ecma-international.org/6.0/#sec-evaluatecall' + }, + EvaluateDirectCall: { + url: 'https://262.ecma-international.org/6.0/#sec-evaluatedirectcall' + }, + EvaluateNew: { + url: 'https://262.ecma-international.org/6.0/#sec-evaluatenew' + }, + floor: { + url: 'https://262.ecma-international.org/6.0/#sec-algorithm-conventions' + }, + ForBodyEvaluation: { + url: 'https://262.ecma-international.org/6.0/#sec-forbodyevaluation' + }, + 'ForIn/OfBodyEvaluation': { + url: 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset' + }, + 'ForIn/OfHeadEvaluation': { + url: 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind' + }, + FromPropertyDescriptor: { + url: 'https://262.ecma-international.org/6.0/#sec-frompropertydescriptor' + }, + FulfillPromise: { + url: 'https://262.ecma-international.org/6.0/#sec-fulfillpromise' + }, + FunctionAllocate: { + url: 'https://262.ecma-international.org/6.0/#sec-functionallocate' + }, + FunctionCreate: { + url: 'https://262.ecma-international.org/6.0/#sec-functioncreate' + }, + FunctionInitialize: { + url: 'https://262.ecma-international.org/6.0/#sec-functioninitialize' + }, + GeneratorFunctionCreate: { + url: 'https://262.ecma-international.org/6.0/#sec-generatorfunctioncreate' + }, + GeneratorResume: { + url: 'https://262.ecma-international.org/6.0/#sec-generatorresume' + }, + GeneratorResumeAbrupt: { + url: 'https://262.ecma-international.org/6.0/#sec-generatorresumeabrupt' + }, + GeneratorStart: { + url: 'https://262.ecma-international.org/6.0/#sec-generatorstart' + }, + GeneratorValidate: { + url: 'https://262.ecma-international.org/6.0/#sec-generatorvalidate' + }, + GeneratorYield: { + url: 'https://262.ecma-international.org/6.0/#sec-generatoryield' + }, + Get: { + url: 'https://262.ecma-international.org/6.0/#sec-get-o-p' + }, + GetBase: { + url: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues' + }, + GetFunctionRealm: { + url: 'https://262.ecma-international.org/6.0/#sec-getfunctionrealm' + }, + GetGlobalObject: { + url: 'https://262.ecma-international.org/6.0/#sec-getglobalobject' + }, + GetIdentifierReference: { + url: 'https://262.ecma-international.org/6.0/#sec-getidentifierreference' + }, + GetIterator: { + url: 'https://262.ecma-international.org/6.0/#sec-getiterator' + }, + GetMethod: { + url: 'https://262.ecma-international.org/6.0/#sec-getmethod' + }, + GetModuleNamespace: { + url: 'https://262.ecma-international.org/6.0/#sec-getmodulenamespace' + }, + GetNewTarget: { + url: 'https://262.ecma-international.org/6.0/#sec-getnewtarget' + }, + GetOwnPropertyKeys: { + url: 'https://262.ecma-international.org/6.0/#sec-getownpropertykeys' + }, + GetPrototypeFromConstructor: { + url: 'https://262.ecma-international.org/6.0/#sec-getprototypefromconstructor' + }, + GetReferencedName: { + url: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues' + }, + GetSubstitution: { + url: 'https://262.ecma-international.org/6.0/#sec-getsubstitution' + }, + GetSuperConstructor: { + url: 'https://262.ecma-international.org/6.0/#sec-getsuperconstructor' + }, + GetTemplateObject: { + url: 'https://262.ecma-international.org/6.0/#sec-gettemplateobject' + }, + GetThisEnvironment: { + url: 'https://262.ecma-international.org/6.0/#sec-getthisenvironment' + }, + GetThisValue: { + url: 'https://262.ecma-international.org/6.0/#sec-getthisvalue' + }, + GetV: { + url: 'https://262.ecma-international.org/6.0/#sec-getv' + }, + GetValue: { + url: 'https://262.ecma-international.org/6.0/#sec-getvalue' + }, + GetValueFromBuffer: { + url: 'https://262.ecma-international.org/6.0/#sec-getvaluefrombuffer' + }, + GetViewValue: { + url: 'https://262.ecma-international.org/6.0/#sec-getviewvalue' + }, + HasOwnProperty: { + url: 'https://262.ecma-international.org/6.0/#sec-hasownproperty' + }, + HasPrimitiveBase: { + url: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues' + }, + HasProperty: { + url: 'https://262.ecma-international.org/6.0/#sec-hasproperty' + }, + HourFromTime: { + url: 'https://262.ecma-international.org/6.0/#sec-hours-minutes-second-and-milliseconds' + }, + ImportedLocalNames: { + url: 'https://262.ecma-international.org/6.0/#sec-importedlocalnames' + }, + InitializeHostDefinedRealm: { + url: 'https://262.ecma-international.org/6.0/#sec-initializehostdefinedrealm' + }, + InitializeReferencedBinding: { + url: 'https://262.ecma-international.org/6.0/#sec-initializereferencedbinding' + }, + InLeapYear: { + url: 'https://262.ecma-international.org/6.0/#sec-year-number' + }, + InstanceofOperator: { + url: 'https://262.ecma-international.org/6.0/#sec-instanceofoperator' + }, + IntegerIndexedElementGet: { + url: 'https://262.ecma-international.org/6.0/#sec-integerindexedelementget' + }, + IntegerIndexedElementSet: { + url: 'https://262.ecma-international.org/6.0/#sec-integerindexedelementset' + }, + IntegerIndexedObjectCreate: { + url: 'https://262.ecma-international.org/6.0/#sec-integerindexedobjectcreate' + }, + InternalizeJSONProperty: { + url: 'https://262.ecma-international.org/6.0/#sec-internalizejsonproperty' + }, + Invoke: { + url: 'https://262.ecma-international.org/6.0/#sec-invoke' + }, + IsAccessorDescriptor: { + url: 'https://262.ecma-international.org/6.0/#sec-isaccessordescriptor' + }, + IsAnonymousFunctionDefinition: { + url: 'https://262.ecma-international.org/6.0/#sec-isanonymousfunctiondefinition' + }, + IsArray: { + url: 'https://262.ecma-international.org/6.0/#sec-isarray' + }, + IsCallable: { + url: 'https://262.ecma-international.org/6.0/#sec-iscallable' + }, + IsCompatiblePropertyDescriptor: { + url: 'https://262.ecma-international.org/6.0/#sec-iscompatiblepropertydescriptor' + }, + IsConcatSpreadable: { + url: 'https://262.ecma-international.org/6.0/#sec-isconcatspreadable' + }, + IsConstructor: { + url: 'https://262.ecma-international.org/6.0/#sec-isconstructor' + }, + IsDataDescriptor: { + url: 'https://262.ecma-international.org/6.0/#sec-isdatadescriptor' + }, + IsDetachedBuffer: { + url: 'https://262.ecma-international.org/6.0/#sec-isdetachedbuffer' + }, + IsExtensible: { + url: 'https://262.ecma-international.org/6.0/#sec-isextensible-o' + }, + IsGenericDescriptor: { + url: 'https://262.ecma-international.org/6.0/#sec-isgenericdescriptor' + }, + IsInTailPosition: { + url: 'https://262.ecma-international.org/6.0/#sec-isintailposition' + }, + IsInteger: { + url: 'https://262.ecma-international.org/6.0/#sec-isinteger' + }, + IsLabelledFunction: { + url: 'https://262.ecma-international.org/6.0/#sec-islabelledfunction' + }, + IsPromise: { + url: 'https://262.ecma-international.org/6.0/#sec-ispromise' + }, + IsPropertyKey: { + url: 'https://262.ecma-international.org/6.0/#sec-ispropertykey' + }, + IsPropertyReference: { + url: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues' + }, + IsRegExp: { + url: 'https://262.ecma-international.org/6.0/#sec-isregexp' + }, + IsStrictReference: { + url: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues' + }, + IsSuperReference: { + url: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues' + }, + IsUnresolvableReference: { + url: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues' + }, + IsWordChar: { + url: 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-iswordchar-abstract-operation' + }, + IteratorClose: { + url: 'https://262.ecma-international.org/6.0/#sec-iteratorclose' + }, + IteratorComplete: { + url: 'https://262.ecma-international.org/6.0/#sec-iteratorcomplete' + }, + IteratorNext: { + url: 'https://262.ecma-international.org/6.0/#sec-iteratornext' + }, + IteratorStep: { + url: 'https://262.ecma-international.org/6.0/#sec-iteratorstep' + }, + IteratorValue: { + url: 'https://262.ecma-international.org/6.0/#sec-iteratorvalue' + }, + LocalTime: { + url: 'https://262.ecma-international.org/6.0/#sec-localtime' + }, + LoopContinues: { + url: 'https://262.ecma-international.org/6.0/#sec-loopcontinues' + }, + MakeArgGetter: { + url: 'https://262.ecma-international.org/6.0/#sec-makearggetter' + }, + MakeArgSetter: { + url: 'https://262.ecma-international.org/6.0/#sec-makeargsetter' + }, + MakeClassConstructor: { + url: 'https://262.ecma-international.org/6.0/#sec-makeclassconstructor' + }, + MakeConstructor: { + url: 'https://262.ecma-international.org/6.0/#sec-makeconstructor' + }, + MakeDate: { + url: 'https://262.ecma-international.org/6.0/#sec-makedate' + }, + MakeDay: { + url: 'https://262.ecma-international.org/6.0/#sec-makeday' + }, + MakeMethod: { + url: 'https://262.ecma-international.org/6.0/#sec-makemethod' + }, + MakeSuperPropertyReference: { + url: 'https://262.ecma-international.org/6.0/#sec-makesuperpropertyreference' + }, + MakeTime: { + url: 'https://262.ecma-international.org/6.0/#sec-maketime' + }, + max: { + url: 'https://262.ecma-international.org/6.0/#sec-algorithm-conventions' + }, + min: { + url: 'https://262.ecma-international.org/6.0/#sec-algorithm-conventions' + }, + MinFromTime: { + url: 'https://262.ecma-international.org/6.0/#sec-hours-minutes-second-and-milliseconds' + }, + ModuleNamespaceCreate: { + url: 'https://262.ecma-international.org/6.0/#sec-modulenamespacecreate' + }, + modulo: { + url: 'https://262.ecma-international.org/6.0/#sec-algorithm-conventions' + }, + MonthFromTime: { + url: 'https://262.ecma-international.org/6.0/#sec-month-number' + }, + msFromTime: { + url: 'https://262.ecma-international.org/6.0/#sec-hours-minutes-second-and-milliseconds' + }, + msPerDay: { + url: 'https://262.ecma-international.org/6.0/#sec-day-number-and-time-within-day' + }, + NewDeclarativeEnvironment: { + url: 'https://262.ecma-international.org/6.0/#sec-newdeclarativeenvironment' + }, + NewFunctionEnvironment: { + url: 'https://262.ecma-international.org/6.0/#sec-newfunctionenvironment' + }, + NewGlobalEnvironment: { + url: 'https://262.ecma-international.org/6.0/#sec-newglobalenvironment' + }, + NewModuleEnvironment: { + url: 'https://262.ecma-international.org/6.0/#sec-newmoduleenvironment' + }, + NewObjectEnvironment: { + url: 'https://262.ecma-international.org/6.0/#sec-newobjectenvironment' + }, + NewPromiseCapability: { + url: 'https://262.ecma-international.org/6.0/#sec-newpromisecapability' + }, + NormalCompletion: { + url: 'https://262.ecma-international.org/6.0/#sec-normalcompletion' + }, + ObjectCreate: { + url: 'https://262.ecma-international.org/6.0/#sec-objectcreate' + }, + ObjectDefineProperties: { + url: 'https://262.ecma-international.org/6.0/#sec-objectdefineproperties' + }, + OrdinaryCallBindThis: { + url: 'https://262.ecma-international.org/6.0/#sec-ordinarycallbindthis' + }, + OrdinaryCallEvaluateBody: { + url: 'https://262.ecma-international.org/6.0/#sec-ordinarycallevaluatebody' + }, + OrdinaryCreateFromConstructor: { + url: 'https://262.ecma-international.org/6.0/#sec-ordinarycreatefromconstructor' + }, + OrdinaryDefineOwnProperty: { + url: 'https://262.ecma-international.org/6.0/#sec-ordinarydefineownproperty' + }, + OrdinaryGetOwnProperty: { + url: 'https://262.ecma-international.org/6.0/#sec-ordinarygetownproperty' + }, + OrdinaryHasInstance: { + url: 'https://262.ecma-international.org/6.0/#sec-ordinaryhasinstance' + }, + OrdinaryHasProperty: { + url: 'https://262.ecma-international.org/6.0/#sec-ordinaryhasproperty' + }, + ParseModule: { + url: 'https://262.ecma-international.org/6.0/#sec-parsemodule' + }, + PerformEval: { + url: 'https://262.ecma-international.org/6.0/#sec-performeval' + }, + PerformPromiseAll: { + url: 'https://262.ecma-international.org/6.0/#sec-performpromiseall' + }, + PerformPromiseRace: { + url: 'https://262.ecma-international.org/6.0/#sec-performpromiserace' + }, + PerformPromiseThen: { + url: 'https://262.ecma-international.org/6.0/#sec-performpromisethen' + }, + PrepareForOrdinaryCall: { + url: 'https://262.ecma-international.org/6.0/#sec-prepareforordinarycall' + }, + PrepareForTailCall: { + url: 'https://262.ecma-international.org/6.0/#sec-preparefortailcall' + }, + ProxyCreate: { + url: 'https://262.ecma-international.org/6.0/#sec-proxycreate' + }, + PutValue: { + url: 'https://262.ecma-international.org/6.0/#sec-putvalue' + }, + QuoteJSONString: { + url: 'https://262.ecma-international.org/6.0/#sec-quotejsonstring' + }, + RegExpAlloc: { + url: 'https://262.ecma-international.org/6.0/#sec-regexpalloc' + }, + RegExpBuiltinExec: { + url: 'https://262.ecma-international.org/6.0/#sec-regexpbuiltinexec' + }, + RegExpCreate: { + url: 'https://262.ecma-international.org/6.0/#sec-regexpcreate' + }, + RegExpExec: { + url: 'https://262.ecma-international.org/6.0/#sec-regexpexec' + }, + RegExpInitialize: { + url: 'https://262.ecma-international.org/6.0/#sec-regexpinitialize' + }, + RejectPromise: { + url: 'https://262.ecma-international.org/6.0/#sec-rejectpromise' + }, + RepeatMatcher: { + url: 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-repeatmatcher-abstract-operation' + }, + RequireObjectCoercible: { + url: 'https://262.ecma-international.org/6.0/#sec-requireobjectcoercible' + }, + ResolveBinding: { + url: 'https://262.ecma-international.org/6.0/#sec-resolvebinding' + }, + ResolveThisBinding: { + url: 'https://262.ecma-international.org/6.0/#sec-resolvethisbinding' + }, + SameValue: { + url: 'https://262.ecma-international.org/6.0/#sec-samevalue' + }, + SameValueZero: { + url: 'https://262.ecma-international.org/6.0/#sec-samevaluezero' + }, + SecFromTime: { + url: 'https://262.ecma-international.org/6.0/#sec-hours-minutes-second-and-milliseconds' + }, + SerializeJSONArray: { + url: 'https://262.ecma-international.org/6.0/#sec-serializejsonarray' + }, + SerializeJSONObject: { + url: 'https://262.ecma-international.org/6.0/#sec-serializejsonobject' + }, + SerializeJSONProperty: { + url: 'https://262.ecma-international.org/6.0/#sec-serializejsonproperty' + }, + Set: { + url: 'https://262.ecma-international.org/6.0/#sec-set-o-p-v-throw' + }, + SetDefaultGlobalBindings: { + url: 'https://262.ecma-international.org/6.0/#sec-setdefaultglobalbindings' + }, + SetFunctionName: { + url: 'https://262.ecma-international.org/6.0/#sec-setfunctionname' + }, + SetIntegrityLevel: { + url: 'https://262.ecma-international.org/6.0/#sec-setintegritylevel' + }, + SetRealmGlobalObject: { + url: 'https://262.ecma-international.org/6.0/#sec-setrealmglobalobject' + }, + SetValueInBuffer: { + url: 'https://262.ecma-international.org/6.0/#sec-setvalueinbuffer' + }, + SetViewValue: { + url: 'https://262.ecma-international.org/6.0/#sec-setviewvalue' + }, + sign: { + url: 'https://262.ecma-international.org/6.0/#sec-algorithm-conventions' + }, + SortCompare: { + url: 'https://262.ecma-international.org/6.0/#sec-sortcompare' + }, + SpeciesConstructor: { + url: 'https://262.ecma-international.org/6.0/#sec-speciesconstructor' + }, + SplitMatch: { + url: 'https://262.ecma-international.org/6.0/#sec-splitmatch' + }, + 'Strict Equality Comparison': { + url: 'https://262.ecma-international.org/6.0/#sec-strict-equality-comparison' + }, + StringCreate: { + url: 'https://262.ecma-international.org/6.0/#sec-stringcreate' + }, + StringGetIndexProperty: { + url: 'https://262.ecma-international.org/6.0/#sec-stringgetindexproperty' + }, + SymbolDescriptiveString: { + url: 'https://262.ecma-international.org/6.0/#sec-symboldescriptivestring' + }, + TestIntegrityLevel: { + url: 'https://262.ecma-international.org/6.0/#sec-testintegritylevel' + }, + thisBooleanValue: { + url: 'https://262.ecma-international.org/6.0/#sec-properties-of-the-boolean-prototype-object' + }, + thisNumberValue: { + url: 'https://262.ecma-international.org/6.0/#sec-properties-of-the-number-prototype-object' + }, + thisStringValue: { + url: 'https://262.ecma-international.org/6.0/#sec-properties-of-the-string-prototype-object' + }, + thisTimeValue: { + url: 'https://262.ecma-international.org/6.0/#sec-properties-of-the-date-prototype-object' + }, + TimeClip: { + url: 'https://262.ecma-international.org/6.0/#sec-timeclip' + }, + TimeFromYear: { + url: 'https://262.ecma-international.org/6.0/#sec-year-number' + }, + TimeWithinDay: { + url: 'https://262.ecma-international.org/6.0/#sec-day-number-and-time-within-day' + }, + ToBoolean: { + url: 'https://262.ecma-international.org/6.0/#sec-toboolean' + }, + ToDateString: { + url: 'https://262.ecma-international.org/6.0/#sec-todatestring' + }, + ToInt16: { + url: 'https://262.ecma-international.org/6.0/#sec-toint16' + }, + ToInt32: { + url: 'https://262.ecma-international.org/6.0/#sec-toint32' + }, + ToInt8: { + url: 'https://262.ecma-international.org/6.0/#sec-toint8' + }, + ToInteger: { + url: 'https://262.ecma-international.org/6.0/#sec-tointeger' + }, + ToLength: { + url: 'https://262.ecma-international.org/6.0/#sec-tolength' + }, + ToNumber: { + url: 'https://262.ecma-international.org/6.0/#sec-tonumber' + }, + ToObject: { + url: 'https://262.ecma-international.org/6.0/#sec-toobject' + }, + ToPrimitive: { + url: 'https://262.ecma-international.org/6.0/#sec-toprimitive' + }, + ToPropertyDescriptor: { + url: 'https://262.ecma-international.org/6.0/#sec-topropertydescriptor' + }, + ToPropertyKey: { + url: 'https://262.ecma-international.org/6.0/#sec-topropertykey' + }, + ToString: { + url: 'https://262.ecma-international.org/6.0/#sec-tostring' + }, + ToUint16: { + url: 'https://262.ecma-international.org/6.0/#sec-touint16' + }, + ToUint32: { + url: 'https://262.ecma-international.org/6.0/#sec-touint32' + }, + ToUint8: { + url: 'https://262.ecma-international.org/6.0/#sec-touint8' + }, + ToUint8Clamp: { + url: 'https://262.ecma-international.org/6.0/#sec-touint8clamp' + }, + TriggerPromiseReactions: { + url: 'https://262.ecma-international.org/6.0/#sec-triggerpromisereactions' + }, + Type: { + url: 'https://262.ecma-international.org/6.0/#sec-ecmascript-data-types-and-values' + }, + TypedArrayFrom: { + url: 'https://262.ecma-international.org/6.0/#sec-typedarrayfrom' + }, + UpdateEmpty: { + url: 'https://262.ecma-international.org/6.0/#sec-updateempty' + }, + UTC: { + url: 'https://262.ecma-international.org/6.0/#sec-utc-t' + }, + ValidateAndApplyPropertyDescriptor: { + url: 'https://262.ecma-international.org/6.0/#sec-validateandapplypropertydescriptor' + }, + ValidateTypedArray: { + url: 'https://262.ecma-international.org/6.0/#sec-validatetypedarray' + }, + WeekDay: { + url: 'https://262.ecma-international.org/6.0/#sec-week-day' + }, + YearFromTime: { + url: 'https://262.ecma-international.org/6.0/#sec-year-number' + } +}; diff --git a/node_modules/es-abstract/operations/2016.js b/node_modules/es-abstract/operations/2016.js new file mode 100644 index 0000000000000000000000000000000000000000..66e6d4afc85345378fd784b74fb8afc870dc3c99 --- /dev/null +++ b/node_modules/es-abstract/operations/2016.js @@ -0,0 +1,813 @@ +'use strict'; + +module.exports = { + IsPropertyDescriptor: 'https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type', // not actually an abstract op + + abs: { + url: 'https://262.ecma-international.org/7.0/#sec-algorithm-conventions' + }, + 'Abstract Equality Comparison': { + url: 'https://262.ecma-international.org/7.0/#sec-abstract-equality-comparison' + }, + 'Abstract Relational Comparison': { + url: 'https://262.ecma-international.org/7.0/#sec-abstract-relational-comparison' + }, + AddRestrictedFunctionProperties: { + url: 'https://262.ecma-international.org/7.0/#sec-addrestrictedfunctionproperties' + }, + AdvanceStringIndex: { + url: 'https://262.ecma-international.org/7.0/#sec-advancestringindex' + }, + AllocateArrayBuffer: { + url: 'https://262.ecma-international.org/7.0/#sec-allocatearraybuffer' + }, + AllocateTypedArray: { + url: 'https://262.ecma-international.org/7.0/#sec-allocatetypedarray' + }, + AllocateTypedArrayBuffer: { + url: 'https://262.ecma-international.org/7.0/#sec-allocatetypedarraybuffer' + }, + ArrayCreate: { + url: 'https://262.ecma-international.org/7.0/#sec-arraycreate' + }, + ArraySetLength: { + url: 'https://262.ecma-international.org/7.0/#sec-arraysetlength' + }, + ArraySpeciesCreate: { + url: 'https://262.ecma-international.org/7.0/#sec-arrayspeciescreate' + }, + BlockDeclarationInstantiation: { + url: 'https://262.ecma-international.org/7.0/#sec-blockdeclarationinstantiation' + }, + BoundFunctionCreate: { + url: 'https://262.ecma-international.org/7.0/#sec-boundfunctioncreate' + }, + Call: { + url: 'https://262.ecma-international.org/7.0/#sec-call' + }, + Canonicalize: { + url: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-canonicalize-ch' + }, + CanonicalNumericIndexString: { + url: 'https://262.ecma-international.org/7.0/#sec-canonicalnumericindexstring' + }, + CharacterRange: { + url: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-characterrange-abstract-operation' + }, + CharacterRangeOrUnion: { + url: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation' + }, + CharacterSetMatcher: { + url: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation' + }, + CloneArrayBuffer: { + url: 'https://262.ecma-international.org/7.0/#sec-clonearraybuffer' + }, + CompletePropertyDescriptor: { + url: 'https://262.ecma-international.org/7.0/#sec-completepropertydescriptor' + }, + Completion: { + url: 'https://262.ecma-international.org/7.0/#sec-completion-record-specification-type' + }, + CompletionRecord: { + url: 'https://262.ecma-international.org/7.0/#sec-completion-record-specification-type' + }, + Construct: { + url: 'https://262.ecma-international.org/7.0/#sec-construct' + }, + CopyDataBlockBytes: { + url: 'https://262.ecma-international.org/7.0/#sec-copydatablockbytes' + }, + CreateArrayFromList: { + url: 'https://262.ecma-international.org/7.0/#sec-createarrayfromlist' + }, + CreateArrayIterator: { + url: 'https://262.ecma-international.org/7.0/#sec-createarrayiterator' + }, + CreateBuiltinFunction: { + url: 'https://262.ecma-international.org/7.0/#sec-createbuiltinfunction' + }, + CreateByteDataBlock: { + url: 'https://262.ecma-international.org/7.0/#sec-createbytedatablock' + }, + CreateDataProperty: { + url: 'https://262.ecma-international.org/7.0/#sec-createdataproperty' + }, + CreateDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/7.0/#sec-createdatapropertyorthrow' + }, + CreateDynamicFunction: { + url: 'https://262.ecma-international.org/7.0/#sec-createdynamicfunction' + }, + CreateHTML: { + url: 'https://262.ecma-international.org/7.0/#sec-createhtml' + }, + CreateIntrinsics: { + url: 'https://262.ecma-international.org/7.0/#sec-createintrinsics' + }, + CreateIterResultObject: { + url: 'https://262.ecma-international.org/7.0/#sec-createiterresultobject' + }, + CreateListFromArrayLike: { + url: 'https://262.ecma-international.org/7.0/#sec-createlistfromarraylike' + }, + CreateListIterator: { + url: 'https://262.ecma-international.org/7.0/#sec-createlistiterator' + }, + CreateMapIterator: { + url: 'https://262.ecma-international.org/7.0/#sec-createmapiterator' + }, + CreateMappedArgumentsObject: { + url: 'https://262.ecma-international.org/7.0/#sec-createmappedargumentsobject' + }, + CreateMethodProperty: { + url: 'https://262.ecma-international.org/7.0/#sec-createmethodproperty' + }, + CreatePerIterationEnvironment: { + url: 'https://262.ecma-international.org/7.0/#sec-createperiterationenvironment' + }, + CreateRealm: { + url: 'https://262.ecma-international.org/7.0/#sec-createrealm' + }, + CreateResolvingFunctions: { + url: 'https://262.ecma-international.org/7.0/#sec-createresolvingfunctions' + }, + CreateSetIterator: { + url: 'https://262.ecma-international.org/7.0/#sec-createsetiterator' + }, + CreateStringIterator: { + url: 'https://262.ecma-international.org/7.0/#sec-createstringiterator' + }, + CreateUnmappedArgumentsObject: { + url: 'https://262.ecma-international.org/7.0/#sec-createunmappedargumentsobject' + }, + DateFromTime: { + url: 'https://262.ecma-international.org/7.0/#sec-date-number' + }, + Day: { + url: 'https://262.ecma-international.org/7.0/#sec-day-number-and-time-within-day' + }, + DayFromYear: { + url: 'https://262.ecma-international.org/7.0/#sec-year-number' + }, + DaylightSavingTA: { + url: 'https://262.ecma-international.org/7.0/#sec-daylight-saving-time-adjustment' + }, + DaysInYear: { + url: 'https://262.ecma-international.org/7.0/#sec-year-number' + }, + DayWithinYear: { + url: 'https://262.ecma-international.org/7.0/#sec-month-number' + }, + Decode: { + url: 'https://262.ecma-international.org/7.0/#sec-decode' + }, + DefinePropertyOrThrow: { + url: 'https://262.ecma-international.org/7.0/#sec-definepropertyorthrow' + }, + DeletePropertyOrThrow: { + url: 'https://262.ecma-international.org/7.0/#sec-deletepropertyorthrow' + }, + DetachArrayBuffer: { + url: 'https://262.ecma-international.org/7.0/#sec-detacharraybuffer' + }, + Encode: { + url: 'https://262.ecma-international.org/7.0/#sec-encode' + }, + EnqueueJob: { + url: 'https://262.ecma-international.org/7.0/#sec-enqueuejob' + }, + EnumerableOwnNames: { + url: 'https://262.ecma-international.org/7.0/#sec-enumerableownnames' + }, + EnumerateObjectProperties: { + url: 'https://262.ecma-international.org/7.0/#sec-enumerate-object-properties' + }, + EscapeRegExpPattern: { + url: 'https://262.ecma-international.org/7.0/#sec-escaperegexppattern' + }, + EvalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/7.0/#sec-evaldeclarationinstantiation' + }, + EvaluateCall: { + url: 'https://262.ecma-international.org/7.0/#sec-evaluatecall' + }, + EvaluateDirectCall: { + url: 'https://262.ecma-international.org/7.0/#sec-evaluatedirectcall' + }, + EvaluateNew: { + url: 'https://262.ecma-international.org/7.0/#sec-evaluatenew' + }, + floor: { + url: 'https://262.ecma-international.org/7.0/#sec-algorithm-conventions' + }, + ForBodyEvaluation: { + url: 'https://262.ecma-international.org/7.0/#sec-forbodyevaluation' + }, + 'ForIn/OfBodyEvaluation': { + url: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset' + }, + 'ForIn/OfHeadEvaluation': { + url: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind' + }, + FromPropertyDescriptor: { + url: 'https://262.ecma-international.org/7.0/#sec-frompropertydescriptor' + }, + FulfillPromise: { + url: 'https://262.ecma-international.org/7.0/#sec-fulfillpromise' + }, + FunctionAllocate: { + url: 'https://262.ecma-international.org/7.0/#sec-functionallocate' + }, + FunctionCreate: { + url: 'https://262.ecma-international.org/7.0/#sec-functioncreate' + }, + FunctionDeclarationInstantiation: { + url: 'https://262.ecma-international.org/7.0/#sec-functiondeclarationinstantiation' + }, + FunctionInitialize: { + url: 'https://262.ecma-international.org/7.0/#sec-functioninitialize' + }, + GeneratorFunctionCreate: { + url: 'https://262.ecma-international.org/7.0/#sec-generatorfunctioncreate' + }, + GeneratorResume: { + url: 'https://262.ecma-international.org/7.0/#sec-generatorresume' + }, + GeneratorResumeAbrupt: { + url: 'https://262.ecma-international.org/7.0/#sec-generatorresumeabrupt' + }, + GeneratorStart: { + url: 'https://262.ecma-international.org/7.0/#sec-generatorstart' + }, + GeneratorValidate: { + url: 'https://262.ecma-international.org/7.0/#sec-generatorvalidate' + }, + GeneratorYield: { + url: 'https://262.ecma-international.org/7.0/#sec-generatoryield' + }, + Get: { + url: 'https://262.ecma-international.org/7.0/#sec-get-o-p' + }, + GetActiveScriptOrModule: { + url: 'https://262.ecma-international.org/7.0/#sec-getactivescriptormodule' + }, + GetFunctionRealm: { + url: 'https://262.ecma-international.org/7.0/#sec-getfunctionrealm' + }, + GetGlobalObject: { + url: 'https://262.ecma-international.org/7.0/#sec-getglobalobject' + }, + GetIdentifierReference: { + url: 'https://262.ecma-international.org/7.0/#sec-getidentifierreference' + }, + GetIterator: { + url: 'https://262.ecma-international.org/7.0/#sec-getiterator' + }, + GetMethod: { + url: 'https://262.ecma-international.org/7.0/#sec-getmethod' + }, + GetModuleNamespace: { + url: 'https://262.ecma-international.org/7.0/#sec-getmodulenamespace' + }, + GetNewTarget: { + url: 'https://262.ecma-international.org/7.0/#sec-getnewtarget' + }, + GetOwnPropertyKeys: { + url: 'https://262.ecma-international.org/7.0/#sec-getownpropertykeys' + }, + GetPrototypeFromConstructor: { + url: 'https://262.ecma-international.org/7.0/#sec-getprototypefromconstructor' + }, + GetSubstitution: { + url: 'https://262.ecma-international.org/7.0/#sec-getsubstitution' + }, + GetSuperConstructor: { + url: 'https://262.ecma-international.org/7.0/#sec-getsuperconstructor' + }, + GetTemplateObject: { + url: 'https://262.ecma-international.org/7.0/#sec-gettemplateobject' + }, + GetThisEnvironment: { + url: 'https://262.ecma-international.org/7.0/#sec-getthisenvironment' + }, + GetThisValue: { + url: 'https://262.ecma-international.org/7.0/#sec-getthisvalue' + }, + GetV: { + url: 'https://262.ecma-international.org/7.0/#sec-getv' + }, + GetValue: { + url: 'https://262.ecma-international.org/7.0/#sec-getvalue' + }, + GetValueFromBuffer: { + url: 'https://262.ecma-international.org/7.0/#sec-getvaluefrombuffer' + }, + GetViewValue: { + url: 'https://262.ecma-international.org/7.0/#sec-getviewvalue' + }, + GlobalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/7.0/#sec-globaldeclarationinstantiation' + }, + HasOwnProperty: { + url: 'https://262.ecma-international.org/7.0/#sec-hasownproperty' + }, + HasProperty: { + url: 'https://262.ecma-international.org/7.0/#sec-hasproperty' + }, + HourFromTime: { + url: 'https://262.ecma-international.org/7.0/#sec-hours-minutes-second-and-milliseconds' + }, + IfAbruptRejectPromise: { + url: 'https://262.ecma-international.org/7.0/#sec-ifabruptrejectpromise' + }, + ImportedLocalNames: { + url: 'https://262.ecma-international.org/7.0/#sec-importedlocalnames' + }, + InitializeBoundName: { + url: 'https://262.ecma-international.org/7.0/#sec-initializeboundname' + }, + InitializeHostDefinedRealm: { + url: 'https://262.ecma-international.org/7.0/#sec-initializehostdefinedrealm' + }, + InitializeReferencedBinding: { + url: 'https://262.ecma-international.org/7.0/#sec-initializereferencedbinding' + }, + InLeapYear: { + url: 'https://262.ecma-international.org/7.0/#sec-year-number' + }, + InstanceofOperator: { + url: 'https://262.ecma-international.org/7.0/#sec-instanceofoperator' + }, + IntegerIndexedElementGet: { + url: 'https://262.ecma-international.org/7.0/#sec-integerindexedelementget' + }, + IntegerIndexedElementSet: { + url: 'https://262.ecma-international.org/7.0/#sec-integerindexedelementset' + }, + IntegerIndexedObjectCreate: { + url: 'https://262.ecma-international.org/7.0/#sec-integerindexedobjectcreate' + }, + InternalizeJSONProperty: { + url: 'https://262.ecma-international.org/7.0/#sec-internalizejsonproperty' + }, + Invoke: { + url: 'https://262.ecma-international.org/7.0/#sec-invoke' + }, + IsAccessorDescriptor: { + url: 'https://262.ecma-international.org/7.0/#sec-isaccessordescriptor' + }, + IsAnonymousFunctionDefinition: { + url: 'https://262.ecma-international.org/7.0/#sec-isanonymousfunctiondefinition' + }, + IsArray: { + url: 'https://262.ecma-international.org/7.0/#sec-isarray' + }, + IsCallable: { + url: 'https://262.ecma-international.org/7.0/#sec-iscallable' + }, + IsCompatiblePropertyDescriptor: { + url: 'https://262.ecma-international.org/7.0/#sec-iscompatiblepropertydescriptor' + }, + IsConcatSpreadable: { + url: 'https://262.ecma-international.org/7.0/#sec-isconcatspreadable' + }, + IsConstructor: { + url: 'https://262.ecma-international.org/7.0/#sec-isconstructor' + }, + IsDataDescriptor: { + url: 'https://262.ecma-international.org/7.0/#sec-isdatadescriptor' + }, + IsDetachedBuffer: { + url: 'https://262.ecma-international.org/7.0/#sec-isdetachedbuffer' + }, + IsExtensible: { + url: 'https://262.ecma-international.org/7.0/#sec-isextensible-o' + }, + IsGenericDescriptor: { + url: 'https://262.ecma-international.org/7.0/#sec-isgenericdescriptor' + }, + IsInTailPosition: { + url: 'https://262.ecma-international.org/7.0/#sec-isintailposition' + }, + IsInteger: { + url: 'https://262.ecma-international.org/7.0/#sec-isinteger' + }, + IsLabelledFunction: { + url: 'https://262.ecma-international.org/7.0/#sec-islabelledfunction' + }, + IsPromise: { + url: 'https://262.ecma-international.org/7.0/#sec-ispromise' + }, + IsPropertyKey: { + url: 'https://262.ecma-international.org/7.0/#sec-ispropertykey' + }, + IsRegExp: { + url: 'https://262.ecma-international.org/7.0/#sec-isregexp' + }, + IsWordChar: { + url: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-iswordchar-abstract-operation' + }, + IterableToArrayLike: { + url: 'https://262.ecma-international.org/7.0/#sec-iterabletoarraylike' + }, + IteratorClose: { + url: 'https://262.ecma-international.org/7.0/#sec-iteratorclose' + }, + IteratorComplete: { + url: 'https://262.ecma-international.org/7.0/#sec-iteratorcomplete' + }, + IteratorNext: { + url: 'https://262.ecma-international.org/7.0/#sec-iteratornext' + }, + IteratorStep: { + url: 'https://262.ecma-international.org/7.0/#sec-iteratorstep' + }, + IteratorValue: { + url: 'https://262.ecma-international.org/7.0/#sec-iteratorvalue' + }, + LocalTime: { + url: 'https://262.ecma-international.org/7.0/#sec-localtime' + }, + LoopContinues: { + url: 'https://262.ecma-international.org/7.0/#sec-loopcontinues' + }, + MakeArgGetter: { + url: 'https://262.ecma-international.org/7.0/#sec-makearggetter' + }, + MakeArgSetter: { + url: 'https://262.ecma-international.org/7.0/#sec-makeargsetter' + }, + MakeClassConstructor: { + url: 'https://262.ecma-international.org/7.0/#sec-makeclassconstructor' + }, + MakeConstructor: { + url: 'https://262.ecma-international.org/7.0/#sec-makeconstructor' + }, + MakeDate: { + url: 'https://262.ecma-international.org/7.0/#sec-makedate' + }, + MakeDay: { + url: 'https://262.ecma-international.org/7.0/#sec-makeday' + }, + MakeMethod: { + url: 'https://262.ecma-international.org/7.0/#sec-makemethod' + }, + MakeSuperPropertyReference: { + url: 'https://262.ecma-international.org/7.0/#sec-makesuperpropertyreference' + }, + MakeTime: { + url: 'https://262.ecma-international.org/7.0/#sec-maketime' + }, + max: { + url: 'https://262.ecma-international.org/7.0/#sec-algorithm-conventions' + }, + min: { + url: 'https://262.ecma-international.org/7.0/#sec-algorithm-conventions' + }, + MinFromTime: { + url: 'https://262.ecma-international.org/7.0/#sec-hours-minutes-second-and-milliseconds' + }, + ModuleNamespaceCreate: { + url: 'https://262.ecma-international.org/7.0/#sec-modulenamespacecreate' + }, + modulo: { + url: 'https://262.ecma-international.org/7.0/#sec-algorithm-conventions' + }, + MonthFromTime: { + url: 'https://262.ecma-international.org/7.0/#sec-month-number' + }, + msFromTime: { + url: 'https://262.ecma-international.org/7.0/#sec-hours-minutes-second-and-milliseconds' + }, + NewDeclarativeEnvironment: { + url: 'https://262.ecma-international.org/7.0/#sec-newdeclarativeenvironment' + }, + NewFunctionEnvironment: { + url: 'https://262.ecma-international.org/7.0/#sec-newfunctionenvironment' + }, + NewGlobalEnvironment: { + url: 'https://262.ecma-international.org/7.0/#sec-newglobalenvironment' + }, + NewModuleEnvironment: { + url: 'https://262.ecma-international.org/7.0/#sec-newmoduleenvironment' + }, + NewObjectEnvironment: { + url: 'https://262.ecma-international.org/7.0/#sec-newobjectenvironment' + }, + NewPromiseCapability: { + url: 'https://262.ecma-international.org/7.0/#sec-newpromisecapability' + }, + NextJob: { + url: 'https://262.ecma-international.org/7.0/#sec-nextjob-result' + }, + NormalCompletion: { + url: 'https://262.ecma-international.org/7.0/#sec-normalcompletion' + }, + ObjectCreate: { + url: 'https://262.ecma-international.org/7.0/#sec-objectcreate' + }, + ObjectDefineProperties: { + url: 'https://262.ecma-international.org/7.0/#sec-objectdefineproperties' + }, + OrdinaryCallBindThis: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinarycallbindthis' + }, + OrdinaryCallEvaluateBody: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinarycallevaluatebody' + }, + OrdinaryCreateFromConstructor: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinarycreatefromconstructor' + }, + OrdinaryDefineOwnProperty: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinarydefineownproperty' + }, + OrdinaryDelete: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinarydelete' + }, + OrdinaryGet: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinaryget' + }, + OrdinaryGetOwnProperty: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinarygetownproperty' + }, + OrdinaryGetPrototypeOf: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof' + }, + OrdinaryHasInstance: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinaryhasinstance' + }, + OrdinaryHasProperty: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinaryhasproperty' + }, + OrdinaryIsExtensible: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinaryisextensible' + }, + OrdinaryOwnPropertyKeys: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinaryownpropertykeys' + }, + OrdinaryPreventExtensions: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinarypreventextensions' + }, + OrdinarySet: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinaryset' + }, + OrdinarySetPrototypeOf: { + url: 'https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof' + }, + ParseModule: { + url: 'https://262.ecma-international.org/7.0/#sec-parsemodule' + }, + ParseScript: { + url: 'https://262.ecma-international.org/7.0/#sec-parse-script' + }, + PerformEval: { + url: 'https://262.ecma-international.org/7.0/#sec-performeval' + }, + PerformPromiseAll: { + url: 'https://262.ecma-international.org/7.0/#sec-performpromiseall' + }, + PerformPromiseRace: { + url: 'https://262.ecma-international.org/7.0/#sec-performpromiserace' + }, + PerformPromiseThen: { + url: 'https://262.ecma-international.org/7.0/#sec-performpromisethen' + }, + PrepareForOrdinaryCall: { + url: 'https://262.ecma-international.org/7.0/#sec-prepareforordinarycall' + }, + PrepareForTailCall: { + url: 'https://262.ecma-international.org/7.0/#sec-preparefortailcall' + }, + PromiseReactionJob: { + url: 'https://262.ecma-international.org/7.0/#sec-promisereactionjob' + }, + PromiseResolveThenableJob: { + url: 'https://262.ecma-international.org/7.0/#sec-promiseresolvethenablejob' + }, + ProxyCreate: { + url: 'https://262.ecma-international.org/7.0/#sec-proxycreate' + }, + PutValue: { + url: 'https://262.ecma-international.org/7.0/#sec-putvalue' + }, + QuoteJSONString: { + url: 'https://262.ecma-international.org/7.0/#sec-quotejsonstring' + }, + RegExpAlloc: { + url: 'https://262.ecma-international.org/7.0/#sec-regexpalloc' + }, + RegExpBuiltinExec: { + url: 'https://262.ecma-international.org/7.0/#sec-regexpbuiltinexec' + }, + RegExpCreate: { + url: 'https://262.ecma-international.org/7.0/#sec-regexpcreate' + }, + RegExpExec: { + url: 'https://262.ecma-international.org/7.0/#sec-regexpexec' + }, + RegExpInitialize: { + url: 'https://262.ecma-international.org/7.0/#sec-regexpinitialize' + }, + RejectPromise: { + url: 'https://262.ecma-international.org/7.0/#sec-rejectpromise' + }, + RepeatMatcher: { + url: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-repeatmatcher-abstract-operation' + }, + RequireObjectCoercible: { + url: 'https://262.ecma-international.org/7.0/#sec-requireobjectcoercible' + }, + ResolveBinding: { + url: 'https://262.ecma-international.org/7.0/#sec-resolvebinding' + }, + ResolveThisBinding: { + url: 'https://262.ecma-international.org/7.0/#sec-resolvethisbinding' + }, + ReturnIfAbrupt: { + url: 'https://262.ecma-international.org/7.0/#sec-returnifabrupt' + }, + SameValue: { + url: 'https://262.ecma-international.org/7.0/#sec-samevalue' + }, + SameValueNonNumber: { + url: 'https://262.ecma-international.org/7.0/#sec-samevaluenonnumber' + }, + SameValueZero: { + url: 'https://262.ecma-international.org/7.0/#sec-samevaluezero' + }, + ScriptEvaluation: { + url: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-scriptevaluation' + }, + ScriptEvaluationJob: { + url: 'https://262.ecma-international.org/7.0/#sec-scriptevaluationjob' + }, + SecFromTime: { + url: 'https://262.ecma-international.org/7.0/#sec-hours-minutes-second-and-milliseconds' + }, + SerializeJSONArray: { + url: 'https://262.ecma-international.org/7.0/#sec-serializejsonarray' + }, + SerializeJSONObject: { + url: 'https://262.ecma-international.org/7.0/#sec-serializejsonobject' + }, + SerializeJSONProperty: { + url: 'https://262.ecma-international.org/7.0/#sec-serializejsonproperty' + }, + Set: { + url: 'https://262.ecma-international.org/7.0/#sec-set-o-p-v-throw' + }, + SetDefaultGlobalBindings: { + url: 'https://262.ecma-international.org/7.0/#sec-setdefaultglobalbindings' + }, + SetFunctionName: { + url: 'https://262.ecma-international.org/7.0/#sec-setfunctionname' + }, + SetIntegrityLevel: { + url: 'https://262.ecma-international.org/7.0/#sec-setintegritylevel' + }, + SetRealmGlobalObject: { + url: 'https://262.ecma-international.org/7.0/#sec-setrealmglobalobject' + }, + SetValueInBuffer: { + url: 'https://262.ecma-international.org/7.0/#sec-setvalueinbuffer' + }, + SetViewValue: { + url: 'https://262.ecma-international.org/7.0/#sec-setviewvalue' + }, + SortCompare: { + url: 'https://262.ecma-international.org/7.0/#sec-sortcompare' + }, + SpeciesConstructor: { + url: 'https://262.ecma-international.org/7.0/#sec-speciesconstructor' + }, + SplitMatch: { + url: 'https://262.ecma-international.org/7.0/#sec-splitmatch' + }, + 'Strict Equality Comparison': { + url: 'https://262.ecma-international.org/7.0/#sec-strict-equality-comparison' + }, + StringCreate: { + url: 'https://262.ecma-international.org/7.0/#sec-stringcreate' + }, + SymbolDescriptiveString: { + url: 'https://262.ecma-international.org/7.0/#sec-symboldescriptivestring' + }, + TestIntegrityLevel: { + url: 'https://262.ecma-international.org/7.0/#sec-testintegritylevel' + }, + thisBooleanValue: { + url: 'https://262.ecma-international.org/7.0/#sec-thisbooleanvalue' + }, + thisNumberValue: { + url: 'https://262.ecma-international.org/7.0/#sec-properties-of-the-number-prototype-object' + }, + thisStringValue: { + url: 'https://262.ecma-international.org/7.0/#sec-properties-of-the-string-prototype-object' + }, + thisTimeValue: { + url: 'https://262.ecma-international.org/7.0/#sec-properties-of-the-date-prototype-object' + }, + TimeClip: { + url: 'https://262.ecma-international.org/7.0/#sec-timeclip' + }, + TimeFromYear: { + url: 'https://262.ecma-international.org/7.0/#sec-year-number' + }, + TimeWithinDay: { + url: 'https://262.ecma-international.org/7.0/#sec-day-number-and-time-within-day' + }, + ToBoolean: { + url: 'https://262.ecma-international.org/7.0/#sec-toboolean' + }, + ToDateString: { + url: 'https://262.ecma-international.org/7.0/#sec-todatestring' + }, + ToInt16: { + url: 'https://262.ecma-international.org/7.0/#sec-toint16' + }, + ToInt32: { + url: 'https://262.ecma-international.org/7.0/#sec-toint32' + }, + ToInt8: { + url: 'https://262.ecma-international.org/7.0/#sec-toint8' + }, + ToInteger: { + url: 'https://262.ecma-international.org/7.0/#sec-tointeger' + }, + ToLength: { + url: 'https://262.ecma-international.org/7.0/#sec-tolength' + }, + ToNumber: { + url: 'https://262.ecma-international.org/7.0/#sec-tonumber' + }, + ToObject: { + url: 'https://262.ecma-international.org/7.0/#sec-toobject' + }, + TopLevelModuleEvaluationJob: { + url: 'https://262.ecma-international.org/7.0/#sec-toplevelmoduleevaluationjob' + }, + ToPrimitive: { + url: 'https://262.ecma-international.org/7.0/#sec-toprimitive' + }, + ToPropertyDescriptor: { + url: 'https://262.ecma-international.org/7.0/#sec-topropertydescriptor' + }, + ToPropertyKey: { + url: 'https://262.ecma-international.org/7.0/#sec-topropertykey' + }, + ToString: { + url: 'https://262.ecma-international.org/7.0/#sec-tostring' + }, + 'ToString Applied to the Number Type': { + url: 'https://262.ecma-international.org/7.0/#sec-tostring-applied-to-the-number-type' + }, + ToUint16: { + url: 'https://262.ecma-international.org/7.0/#sec-touint16' + }, + ToUint32: { + url: 'https://262.ecma-international.org/7.0/#sec-touint32' + }, + ToUint8: { + url: 'https://262.ecma-international.org/7.0/#sec-touint8' + }, + ToUint8Clamp: { + url: 'https://262.ecma-international.org/7.0/#sec-touint8clamp' + }, + TriggerPromiseReactions: { + url: 'https://262.ecma-international.org/7.0/#sec-triggerpromisereactions' + }, + Type: { + url: 'https://262.ecma-international.org/7.0/#sec-ecmascript-data-types-and-values' + }, + TypedArrayCreate: { + url: 'https://262.ecma-international.org/7.0/#typedarray-create' + }, + TypedArraySpeciesCreate: { + url: 'https://262.ecma-international.org/7.0/#typedarray-species-create' + }, + UpdateEmpty: { + url: 'https://262.ecma-international.org/7.0/#sec-updateempty' + }, + UTC: { + url: 'https://262.ecma-international.org/7.0/#sec-utc-t' + }, + UTF16Decode: { + url: 'https://262.ecma-international.org/7.0/#sec-utf16decode' + }, + UTF16Encoding: { + url: 'https://262.ecma-international.org/7.0/#sec-utf16encoding' + }, + ValidateAndApplyPropertyDescriptor: { + url: 'https://262.ecma-international.org/7.0/#sec-validateandapplypropertydescriptor' + }, + ValidateTypedArray: { + url: 'https://262.ecma-international.org/7.0/#sec-validatetypedarray' + }, + WeekDay: { + url: 'https://262.ecma-international.org/7.0/#sec-week-day' + }, + YearFromTime: { + url: 'https://262.ecma-international.org/7.0/#sec-year-number' + } +}; diff --git a/node_modules/es-abstract/operations/2017.js b/node_modules/es-abstract/operations/2017.js new file mode 100644 index 0000000000000000000000000000000000000000..5fa6e6aeafdbef80e13dfb70414ab54b56b43868 --- /dev/null +++ b/node_modules/es-abstract/operations/2017.js @@ -0,0 +1,954 @@ +'use strict'; + +module.exports = { + IsPropertyDescriptor: 'https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type', // not actually an abstract op + + abs: { + url: 'https://262.ecma-international.org/8.0/#eqn-abs' + }, + 'Abstract Equality Comparison': { + url: 'https://262.ecma-international.org/8.0/#sec-abstract-equality-comparison' + }, + 'Abstract Relational Comparison': { + url: 'https://262.ecma-international.org/8.0/#sec-abstract-relational-comparison' + }, + AddRestrictedFunctionProperties: { + url: 'https://262.ecma-international.org/8.0/#sec-addrestrictedfunctionproperties' + }, + AddWaiter: { + url: 'https://262.ecma-international.org/8.0/#sec-addwaiter' + }, + AdvanceStringIndex: { + url: 'https://262.ecma-international.org/8.0/#sec-advancestringindex' + }, + 'agent-order': { + url: 'https://262.ecma-international.org/8.0/#sec-agent-order' + }, + AgentCanSuspend: { + url: 'https://262.ecma-international.org/8.0/#sec-agentcansuspend' + }, + AgentSignifier: { + url: 'https://262.ecma-international.org/8.0/#sec-agentsignifier' + }, + AllocateArrayBuffer: { + url: 'https://262.ecma-international.org/8.0/#sec-allocatearraybuffer' + }, + AllocateSharedArrayBuffer: { + url: 'https://262.ecma-international.org/8.0/#sec-allocatesharedarraybuffer' + }, + AllocateTypedArray: { + url: 'https://262.ecma-international.org/8.0/#sec-allocatetypedarray' + }, + AllocateTypedArrayBuffer: { + url: 'https://262.ecma-international.org/8.0/#sec-allocatetypedarraybuffer' + }, + ArrayCreate: { + url: 'https://262.ecma-international.org/8.0/#sec-arraycreate' + }, + ArraySetLength: { + url: 'https://262.ecma-international.org/8.0/#sec-arraysetlength' + }, + ArraySpeciesCreate: { + url: 'https://262.ecma-international.org/8.0/#sec-arrayspeciescreate' + }, + AsyncFunctionAwait: { + url: 'https://262.ecma-international.org/8.0/#sec-async-functions-abstract-operations-async-function-await' + }, + AsyncFunctionCreate: { + url: 'https://262.ecma-international.org/8.0/#sec-async-functions-abstract-operations-async-function-create' + }, + AsyncFunctionStart: { + url: 'https://262.ecma-international.org/8.0/#sec-async-functions-abstract-operations-async-function-start' + }, + AtomicLoad: { + url: 'https://262.ecma-international.org/8.0/#sec-atomicload' + }, + AtomicReadModifyWrite: { + url: 'https://262.ecma-international.org/8.0/#sec-atomicreadmodifywrite' + }, + BlockDeclarationInstantiation: { + url: 'https://262.ecma-international.org/8.0/#sec-blockdeclarationinstantiation' + }, + BoundFunctionCreate: { + url: 'https://262.ecma-international.org/8.0/#sec-boundfunctioncreate' + }, + Call: { + url: 'https://262.ecma-international.org/8.0/#sec-call' + }, + Canonicalize: { + url: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-canonicalize-ch' + }, + CanonicalNumericIndexString: { + url: 'https://262.ecma-international.org/8.0/#sec-canonicalnumericindexstring' + }, + CharacterRange: { + url: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-characterrange-abstract-operation' + }, + CharacterRangeOrUnion: { + url: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation' + }, + CharacterSetMatcher: { + url: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation' + }, + CloneArrayBuffer: { + url: 'https://262.ecma-international.org/8.0/#sec-clonearraybuffer' + }, + CompletePropertyDescriptor: { + url: 'https://262.ecma-international.org/8.0/#sec-completepropertydescriptor' + }, + Completion: { + url: 'https://262.ecma-international.org/8.0/#sec-completion-record-specification-type' + }, + CompletionRecord: { + url: 'https://262.ecma-international.org/8.0/#sec-completion-record-specification-type' + }, + ComposeWriteEventBytes: { + url: 'https://262.ecma-international.org/8.0/#sec-composewriteeventbytes' + }, + Construct: { + url: 'https://262.ecma-international.org/8.0/#sec-construct' + }, + CopyDataBlockBytes: { + url: 'https://262.ecma-international.org/8.0/#sec-copydatablockbytes' + }, + CreateArrayFromList: { + url: 'https://262.ecma-international.org/8.0/#sec-createarrayfromlist' + }, + CreateArrayIterator: { + url: 'https://262.ecma-international.org/8.0/#sec-createarrayiterator' + }, + CreateBuiltinFunction: { + url: 'https://262.ecma-international.org/8.0/#sec-createbuiltinfunction' + }, + CreateByteDataBlock: { + url: 'https://262.ecma-international.org/8.0/#sec-createbytedatablock' + }, + CreateDataProperty: { + url: 'https://262.ecma-international.org/8.0/#sec-createdataproperty' + }, + CreateDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/8.0/#sec-createdatapropertyorthrow' + }, + CreateDynamicFunction: { + url: 'https://262.ecma-international.org/8.0/#sec-createdynamicfunction' + }, + CreateHTML: { + url: 'https://262.ecma-international.org/8.0/#sec-createhtml' + }, + CreateIntrinsics: { + url: 'https://262.ecma-international.org/8.0/#sec-createintrinsics' + }, + CreateIterResultObject: { + url: 'https://262.ecma-international.org/8.0/#sec-createiterresultobject' + }, + CreateListFromArrayLike: { + url: 'https://262.ecma-international.org/8.0/#sec-createlistfromarraylike' + }, + CreateListIterator: { + url: 'https://262.ecma-international.org/8.0/#sec-createlistiterator' + }, + CreateMapIterator: { + url: 'https://262.ecma-international.org/8.0/#sec-createmapiterator' + }, + CreateMappedArgumentsObject: { + url: 'https://262.ecma-international.org/8.0/#sec-createmappedargumentsobject' + }, + CreateMethodProperty: { + url: 'https://262.ecma-international.org/8.0/#sec-createmethodproperty' + }, + CreatePerIterationEnvironment: { + url: 'https://262.ecma-international.org/8.0/#sec-createperiterationenvironment' + }, + CreateRealm: { + url: 'https://262.ecma-international.org/8.0/#sec-createrealm' + }, + CreateResolvingFunctions: { + url: 'https://262.ecma-international.org/8.0/#sec-createresolvingfunctions' + }, + CreateSetIterator: { + url: 'https://262.ecma-international.org/8.0/#sec-createsetiterator' + }, + CreateSharedByteDataBlock: { + url: 'https://262.ecma-international.org/8.0/#sec-createsharedbytedatablock' + }, + CreateStringIterator: { + url: 'https://262.ecma-international.org/8.0/#sec-createstringiterator' + }, + CreateUnmappedArgumentsObject: { + url: 'https://262.ecma-international.org/8.0/#sec-createunmappedargumentsobject' + }, + DateFromTime: { + url: 'https://262.ecma-international.org/8.0/#sec-date-number' + }, + Day: { + url: 'https://262.ecma-international.org/8.0/#eqn-Day' + }, + DayFromYear: { + url: 'https://262.ecma-international.org/8.0/#eqn-DaysFromYear' + }, + DaylightSavingTA: { + url: 'https://262.ecma-international.org/8.0/#sec-daylight-saving-time-adjustment' + }, + DaysInYear: { + url: 'https://262.ecma-international.org/8.0/#eqn-DaysInYear' + }, + DayWithinYear: { + url: 'https://262.ecma-international.org/8.0/#eqn-DayWithinYear' + }, + Decode: { + url: 'https://262.ecma-international.org/8.0/#sec-decode' + }, + DefinePropertyOrThrow: { + url: 'https://262.ecma-international.org/8.0/#sec-definepropertyorthrow' + }, + DeletePropertyOrThrow: { + url: 'https://262.ecma-international.org/8.0/#sec-deletepropertyorthrow' + }, + DetachArrayBuffer: { + url: 'https://262.ecma-international.org/8.0/#sec-detacharraybuffer' + }, + Encode: { + url: 'https://262.ecma-international.org/8.0/#sec-encode' + }, + EnqueueJob: { + url: 'https://262.ecma-international.org/8.0/#sec-enqueuejob' + }, + EnterCriticalSection: { + url: 'https://262.ecma-international.org/8.0/#sec-entercriticalsection' + }, + EnumerableOwnProperties: { + url: 'https://262.ecma-international.org/8.0/#sec-enumerableownproperties' + }, + EnumerateObjectProperties: { + url: 'https://262.ecma-international.org/8.0/#sec-enumerate-object-properties' + }, + EscapeRegExpPattern: { + url: 'https://262.ecma-international.org/8.0/#sec-escaperegexppattern' + }, + EvalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/8.0/#sec-evaldeclarationinstantiation' + }, + EvaluateCall: { + url: 'https://262.ecma-international.org/8.0/#sec-evaluatecall' + }, + EvaluateDirectCall: { + url: 'https://262.ecma-international.org/8.0/#sec-evaluatedirectcall' + }, + EvaluateNew: { + url: 'https://262.ecma-international.org/8.0/#sec-evaluatenew' + }, + EventSet: { + url: 'https://262.ecma-international.org/8.0/#sec-event-set' + }, + floor: { + url: 'https://262.ecma-international.org/8.0/#eqn-floor' + }, + ForBodyEvaluation: { + url: 'https://262.ecma-international.org/8.0/#sec-forbodyevaluation' + }, + 'ForIn/OfBodyEvaluation': { + url: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset' + }, + 'ForIn/OfHeadEvaluation': { + url: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind' + }, + FromPropertyDescriptor: { + url: 'https://262.ecma-international.org/8.0/#sec-frompropertydescriptor' + }, + FulfillPromise: { + url: 'https://262.ecma-international.org/8.0/#sec-fulfillpromise' + }, + FunctionAllocate: { + url: 'https://262.ecma-international.org/8.0/#sec-functionallocate' + }, + FunctionCreate: { + url: 'https://262.ecma-international.org/8.0/#sec-functioncreate' + }, + FunctionDeclarationInstantiation: { + url: 'https://262.ecma-international.org/8.0/#sec-functiondeclarationinstantiation' + }, + FunctionInitialize: { + url: 'https://262.ecma-international.org/8.0/#sec-functioninitialize' + }, + GeneratorFunctionCreate: { + url: 'https://262.ecma-international.org/8.0/#sec-generatorfunctioncreate' + }, + GeneratorResume: { + url: 'https://262.ecma-international.org/8.0/#sec-generatorresume' + }, + GeneratorResumeAbrupt: { + url: 'https://262.ecma-international.org/8.0/#sec-generatorresumeabrupt' + }, + GeneratorStart: { + url: 'https://262.ecma-international.org/8.0/#sec-generatorstart' + }, + GeneratorValidate: { + url: 'https://262.ecma-international.org/8.0/#sec-generatorvalidate' + }, + GeneratorYield: { + url: 'https://262.ecma-international.org/8.0/#sec-generatoryield' + }, + Get: { + url: 'https://262.ecma-international.org/8.0/#sec-get-o-p' + }, + GetActiveScriptOrModule: { + url: 'https://262.ecma-international.org/8.0/#sec-getactivescriptormodule' + }, + GetBase: { + url: 'https://262.ecma-international.org/8.0/#ao-getbase' + }, + GetFunctionRealm: { + url: 'https://262.ecma-international.org/8.0/#sec-getfunctionrealm' + }, + GetGlobalObject: { + url: 'https://262.ecma-international.org/8.0/#sec-getglobalobject' + }, + GetIdentifierReference: { + url: 'https://262.ecma-international.org/8.0/#sec-getidentifierreference' + }, + GetIterator: { + url: 'https://262.ecma-international.org/8.0/#sec-getiterator' + }, + GetMethod: { + url: 'https://262.ecma-international.org/8.0/#sec-getmethod' + }, + GetModifySetValueInBuffer: { + url: 'https://262.ecma-international.org/8.0/#sec-getmodifysetvalueinbuffer' + }, + GetModuleNamespace: { + url: 'https://262.ecma-international.org/8.0/#sec-getmodulenamespace' + }, + GetNewTarget: { + url: 'https://262.ecma-international.org/8.0/#sec-getnewtarget' + }, + GetOwnPropertyKeys: { + url: 'https://262.ecma-international.org/8.0/#sec-getownpropertykeys' + }, + GetPrototypeFromConstructor: { + url: 'https://262.ecma-international.org/8.0/#sec-getprototypefromconstructor' + }, + GetReferencedName: { + url: 'https://262.ecma-international.org/8.0/#ao-getreferencedname' + }, + GetSubstitution: { + url: 'https://262.ecma-international.org/8.0/#sec-getsubstitution' + }, + GetSuperConstructor: { + url: 'https://262.ecma-international.org/8.0/#sec-getsuperconstructor' + }, + GetTemplateObject: { + url: 'https://262.ecma-international.org/8.0/#sec-gettemplateobject' + }, + GetThisEnvironment: { + url: 'https://262.ecma-international.org/8.0/#sec-getthisenvironment' + }, + GetThisValue: { + url: 'https://262.ecma-international.org/8.0/#sec-getthisvalue' + }, + GetV: { + url: 'https://262.ecma-international.org/8.0/#sec-getv' + }, + GetValue: { + url: 'https://262.ecma-international.org/8.0/#sec-getvalue' + }, + GetValueFromBuffer: { + url: 'https://262.ecma-international.org/8.0/#sec-getvaluefrombuffer' + }, + GetViewValue: { + url: 'https://262.ecma-international.org/8.0/#sec-getviewvalue' + }, + GetWaiterList: { + url: 'https://262.ecma-international.org/8.0/#sec-getwaiterlist' + }, + GlobalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/8.0/#sec-globaldeclarationinstantiation' + }, + 'happens-before': { + url: 'https://262.ecma-international.org/8.0/#sec-happens-before' + }, + HasOwnProperty: { + url: 'https://262.ecma-international.org/8.0/#sec-hasownproperty' + }, + HasPrimitiveBase: { + url: 'https://262.ecma-international.org/8.0/#ao-hasprimitivebase' + }, + HasProperty: { + url: 'https://262.ecma-international.org/8.0/#sec-hasproperty' + }, + 'host-synchronizes-with': { + url: 'https://262.ecma-international.org/8.0/#sec-host-synchronizes-with' + }, + HostEventSet: { + url: 'https://262.ecma-international.org/8.0/#sec-hosteventset' + }, + HourFromTime: { + url: 'https://262.ecma-international.org/8.0/#eqn-HourFromTime' + }, + IfAbruptRejectPromise: { + url: 'https://262.ecma-international.org/8.0/#sec-ifabruptrejectpromise' + }, + ImportedLocalNames: { + url: 'https://262.ecma-international.org/8.0/#sec-importedlocalnames' + }, + InitializeBoundName: { + url: 'https://262.ecma-international.org/8.0/#sec-initializeboundname' + }, + InitializeHostDefinedRealm: { + url: 'https://262.ecma-international.org/8.0/#sec-initializehostdefinedrealm' + }, + InitializeReferencedBinding: { + url: 'https://262.ecma-international.org/8.0/#sec-initializereferencedbinding' + }, + InLeapYear: { + url: 'https://262.ecma-international.org/8.0/#eqn-InLeapYear' + }, + InstanceofOperator: { + url: 'https://262.ecma-international.org/8.0/#sec-instanceofoperator' + }, + IntegerIndexedElementGet: { + url: 'https://262.ecma-international.org/8.0/#sec-integerindexedelementget' + }, + IntegerIndexedElementSet: { + url: 'https://262.ecma-international.org/8.0/#sec-integerindexedelementset' + }, + IntegerIndexedObjectCreate: { + url: 'https://262.ecma-international.org/8.0/#sec-integerindexedobjectcreate' + }, + InternalizeJSONProperty: { + url: 'https://262.ecma-international.org/8.0/#sec-internalizejsonproperty' + }, + Invoke: { + url: 'https://262.ecma-international.org/8.0/#sec-invoke' + }, + IsAccessorDescriptor: { + url: 'https://262.ecma-international.org/8.0/#sec-isaccessordescriptor' + }, + IsAnonymousFunctionDefinition: { + url: 'https://262.ecma-international.org/8.0/#sec-isanonymousfunctiondefinition' + }, + IsArray: { + url: 'https://262.ecma-international.org/8.0/#sec-isarray' + }, + IsCallable: { + url: 'https://262.ecma-international.org/8.0/#sec-iscallable' + }, + IsCompatiblePropertyDescriptor: { + url: 'https://262.ecma-international.org/8.0/#sec-iscompatiblepropertydescriptor' + }, + IsConcatSpreadable: { + url: 'https://262.ecma-international.org/8.0/#sec-isconcatspreadable' + }, + IsConstructor: { + url: 'https://262.ecma-international.org/8.0/#sec-isconstructor' + }, + IsDataDescriptor: { + url: 'https://262.ecma-international.org/8.0/#sec-isdatadescriptor' + }, + IsDetachedBuffer: { + url: 'https://262.ecma-international.org/8.0/#sec-isdetachedbuffer' + }, + IsExtensible: { + url: 'https://262.ecma-international.org/8.0/#sec-isextensible-o' + }, + IsGenericDescriptor: { + url: 'https://262.ecma-international.org/8.0/#sec-isgenericdescriptor' + }, + IsInTailPosition: { + url: 'https://262.ecma-international.org/8.0/#sec-isintailposition' + }, + IsInteger: { + url: 'https://262.ecma-international.org/8.0/#sec-isinteger' + }, + IsLabelledFunction: { + url: 'https://262.ecma-international.org/8.0/#sec-islabelledfunction' + }, + IsPromise: { + url: 'https://262.ecma-international.org/8.0/#sec-ispromise' + }, + IsPropertyKey: { + url: 'https://262.ecma-international.org/8.0/#sec-ispropertykey' + }, + IsPropertyReference: { + url: 'https://262.ecma-international.org/8.0/#ao-ispropertyreference' + }, + IsRegExp: { + url: 'https://262.ecma-international.org/8.0/#sec-isregexp' + }, + IsSharedArrayBuffer: { + url: 'https://262.ecma-international.org/8.0/#sec-issharedarraybuffer' + }, + IsStrictReference: { + url: 'https://262.ecma-international.org/8.0/#ao-isstrictreference' + }, + IsSuperReference: { + url: 'https://262.ecma-international.org/8.0/#ao-issuperreference' + }, + IsUnresolvableReference: { + url: 'https://262.ecma-international.org/8.0/#ao-isunresolvablereference' + }, + IsWordChar: { + url: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-iswordchar-abstract-operation' + }, + IterableToList: { + url: 'https://262.ecma-international.org/8.0/#sec-iterabletolist' + }, + IteratorClose: { + url: 'https://262.ecma-international.org/8.0/#sec-iteratorclose' + }, + IteratorComplete: { + url: 'https://262.ecma-international.org/8.0/#sec-iteratorcomplete' + }, + IteratorNext: { + url: 'https://262.ecma-international.org/8.0/#sec-iteratornext' + }, + IteratorStep: { + url: 'https://262.ecma-international.org/8.0/#sec-iteratorstep' + }, + IteratorValue: { + url: 'https://262.ecma-international.org/8.0/#sec-iteratorvalue' + }, + LeaveCriticalSection: { + url: 'https://262.ecma-international.org/8.0/#sec-leavecriticalsection' + }, + LocalTime: { + url: 'https://262.ecma-international.org/8.0/#sec-localtime' + }, + LoopContinues: { + url: 'https://262.ecma-international.org/8.0/#sec-loopcontinues' + }, + MakeArgGetter: { + url: 'https://262.ecma-international.org/8.0/#sec-makearggetter' + }, + MakeArgSetter: { + url: 'https://262.ecma-international.org/8.0/#sec-makeargsetter' + }, + MakeClassConstructor: { + url: 'https://262.ecma-international.org/8.0/#sec-makeclassconstructor' + }, + MakeConstructor: { + url: 'https://262.ecma-international.org/8.0/#sec-makeconstructor' + }, + MakeDate: { + url: 'https://262.ecma-international.org/8.0/#sec-makedate' + }, + MakeDay: { + url: 'https://262.ecma-international.org/8.0/#sec-makeday' + }, + MakeMethod: { + url: 'https://262.ecma-international.org/8.0/#sec-makemethod' + }, + MakeSuperPropertyReference: { + url: 'https://262.ecma-international.org/8.0/#sec-makesuperpropertyreference' + }, + MakeTime: { + url: 'https://262.ecma-international.org/8.0/#sec-maketime' + }, + max: { + url: 'https://262.ecma-international.org/8.0/#eqn-max' + }, + 'memory-order': { + url: 'https://262.ecma-international.org/8.0/#sec-memory-order' + }, + min: { + url: 'https://262.ecma-international.org/8.0/#eqn-min' + }, + MinFromTime: { + url: 'https://262.ecma-international.org/8.0/#eqn-MinFromTime' + }, + ModuleNamespaceCreate: { + url: 'https://262.ecma-international.org/8.0/#sec-modulenamespacecreate' + }, + modulo: { + url: 'https://262.ecma-international.org/8.0/#eqn-modulo' + }, + MonthFromTime: { + url: 'https://262.ecma-international.org/8.0/#eqn-MonthFromTime' + }, + msFromTime: { + url: 'https://262.ecma-international.org/8.0/#eqn-msFromTime' + }, + NewDeclarativeEnvironment: { + url: 'https://262.ecma-international.org/8.0/#sec-newdeclarativeenvironment' + }, + NewFunctionEnvironment: { + url: 'https://262.ecma-international.org/8.0/#sec-newfunctionenvironment' + }, + NewGlobalEnvironment: { + url: 'https://262.ecma-international.org/8.0/#sec-newglobalenvironment' + }, + NewModuleEnvironment: { + url: 'https://262.ecma-international.org/8.0/#sec-newmoduleenvironment' + }, + NewObjectEnvironment: { + url: 'https://262.ecma-international.org/8.0/#sec-newobjectenvironment' + }, + NewPromiseCapability: { + url: 'https://262.ecma-international.org/8.0/#sec-newpromisecapability' + }, + NormalCompletion: { + url: 'https://262.ecma-international.org/8.0/#sec-normalcompletion' + }, + NumberToRawBytes: { + url: 'https://262.ecma-international.org/8.0/#sec-numbertorawbytes' + }, + ObjectCreate: { + url: 'https://262.ecma-international.org/8.0/#sec-objectcreate' + }, + ObjectDefineProperties: { + url: 'https://262.ecma-international.org/8.0/#sec-objectdefineproperties' + }, + OrdinaryCallBindThis: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinarycallbindthis' + }, + OrdinaryCallEvaluateBody: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinarycallevaluatebody' + }, + OrdinaryCreateFromConstructor: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinarycreatefromconstructor' + }, + OrdinaryDefineOwnProperty: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinarydefineownproperty' + }, + OrdinaryDelete: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinarydelete' + }, + OrdinaryGet: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinaryget' + }, + OrdinaryGetOwnProperty: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinarygetownproperty' + }, + OrdinaryGetPrototypeOf: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinarygetprototypeof' + }, + OrdinaryHasInstance: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinaryhasinstance' + }, + OrdinaryHasProperty: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinaryhasproperty' + }, + OrdinaryIsExtensible: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinaryisextensible' + }, + OrdinaryOwnPropertyKeys: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinaryownpropertykeys' + }, + OrdinaryPreventExtensions: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinarypreventextensions' + }, + OrdinarySet: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinaryset' + }, + OrdinarySetPrototypeOf: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinarysetprototypeof' + }, + OrdinaryToPrimitive: { + url: 'https://262.ecma-international.org/8.0/#sec-ordinarytoprimitive' + }, + ParseModule: { + url: 'https://262.ecma-international.org/8.0/#sec-parsemodule' + }, + ParseScript: { + url: 'https://262.ecma-international.org/8.0/#sec-parse-script' + }, + PerformEval: { + url: 'https://262.ecma-international.org/8.0/#sec-performeval' + }, + PerformPromiseAll: { + url: 'https://262.ecma-international.org/8.0/#sec-performpromiseall' + }, + PerformPromiseRace: { + url: 'https://262.ecma-international.org/8.0/#sec-performpromiserace' + }, + PerformPromiseThen: { + url: 'https://262.ecma-international.org/8.0/#sec-performpromisethen' + }, + PrepareForOrdinaryCall: { + url: 'https://262.ecma-international.org/8.0/#sec-prepareforordinarycall' + }, + PrepareForTailCall: { + url: 'https://262.ecma-international.org/8.0/#sec-preparefortailcall' + }, + PromiseReactionJob: { + url: 'https://262.ecma-international.org/8.0/#sec-promisereactionjob' + }, + PromiseResolveThenableJob: { + url: 'https://262.ecma-international.org/8.0/#sec-promiseresolvethenablejob' + }, + ProxyCreate: { + url: 'https://262.ecma-international.org/8.0/#sec-proxycreate' + }, + PutValue: { + url: 'https://262.ecma-international.org/8.0/#sec-putvalue' + }, + QuoteJSONString: { + url: 'https://262.ecma-international.org/8.0/#sec-quotejsonstring' + }, + RawBytesToNumber: { + url: 'https://262.ecma-international.org/8.0/#sec-rawbytestonumber' + }, + 'reads-bytes-from': { + url: 'https://262.ecma-international.org/8.0/#sec-reads-bytes-from' + }, + 'reads-from': { + url: 'https://262.ecma-international.org/8.0/#sec-reads-from' + }, + RegExpAlloc: { + url: 'https://262.ecma-international.org/8.0/#sec-regexpalloc' + }, + RegExpBuiltinExec: { + url: 'https://262.ecma-international.org/8.0/#sec-regexpbuiltinexec' + }, + RegExpCreate: { + url: 'https://262.ecma-international.org/8.0/#sec-regexpcreate' + }, + RegExpExec: { + url: 'https://262.ecma-international.org/8.0/#sec-regexpexec' + }, + RegExpInitialize: { + url: 'https://262.ecma-international.org/8.0/#sec-regexpinitialize' + }, + RejectPromise: { + url: 'https://262.ecma-international.org/8.0/#sec-rejectpromise' + }, + RemoveWaiter: { + url: 'https://262.ecma-international.org/8.0/#sec-removewaiter' + }, + RemoveWaiters: { + url: 'https://262.ecma-international.org/8.0/#sec-removewaiters' + }, + RepeatMatcher: { + url: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-repeatmatcher-abstract-operation' + }, + RequireObjectCoercible: { + url: 'https://262.ecma-international.org/8.0/#sec-requireobjectcoercible' + }, + ResolveBinding: { + url: 'https://262.ecma-international.org/8.0/#sec-resolvebinding' + }, + ResolveThisBinding: { + url: 'https://262.ecma-international.org/8.0/#sec-resolvethisbinding' + }, + ReturnIfAbrupt: { + url: 'https://262.ecma-international.org/8.0/#sec-returnifabrupt' + }, + RunJobs: { + url: 'https://262.ecma-international.org/8.0/#sec-runjobs' + }, + SameValue: { + url: 'https://262.ecma-international.org/8.0/#sec-samevalue' + }, + SameValueNonNumber: { + url: 'https://262.ecma-international.org/8.0/#sec-samevaluenonnumber' + }, + SameValueZero: { + url: 'https://262.ecma-international.org/8.0/#sec-samevaluezero' + }, + ScriptEvaluation: { + url: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-scriptevaluation' + }, + ScriptEvaluationJob: { + url: 'https://262.ecma-international.org/8.0/#sec-scriptevaluationjob' + }, + SecFromTime: { + url: 'https://262.ecma-international.org/8.0/#eqn-SecFromTime' + }, + SerializeJSONArray: { + url: 'https://262.ecma-international.org/8.0/#sec-serializejsonarray' + }, + SerializeJSONObject: { + url: 'https://262.ecma-international.org/8.0/#sec-serializejsonobject' + }, + SerializeJSONProperty: { + url: 'https://262.ecma-international.org/8.0/#sec-serializejsonproperty' + }, + Set: { + url: 'https://262.ecma-international.org/8.0/#sec-set-o-p-v-throw' + }, + SetDefaultGlobalBindings: { + url: 'https://262.ecma-international.org/8.0/#sec-setdefaultglobalbindings' + }, + SetFunctionName: { + url: 'https://262.ecma-international.org/8.0/#sec-setfunctionname' + }, + SetImmutablePrototype: { + url: 'https://262.ecma-international.org/8.0/#sec-set-immutable-prototype' + }, + SetIntegrityLevel: { + url: 'https://262.ecma-international.org/8.0/#sec-setintegritylevel' + }, + SetRealmGlobalObject: { + url: 'https://262.ecma-international.org/8.0/#sec-setrealmglobalobject' + }, + SetValueInBuffer: { + url: 'https://262.ecma-international.org/8.0/#sec-setvalueinbuffer' + }, + SetViewValue: { + url: 'https://262.ecma-international.org/8.0/#sec-setviewvalue' + }, + SharedDataBlockEventSet: { + url: 'https://262.ecma-international.org/8.0/#sec-sharedatablockeventset' + }, + SortCompare: { + url: 'https://262.ecma-international.org/8.0/#sec-sortcompare' + }, + SpeciesConstructor: { + url: 'https://262.ecma-international.org/8.0/#sec-speciesconstructor' + }, + SplitMatch: { + url: 'https://262.ecma-international.org/8.0/#sec-splitmatch' + }, + 'Strict Equality Comparison': { + url: 'https://262.ecma-international.org/8.0/#sec-strict-equality-comparison' + }, + StringCreate: { + url: 'https://262.ecma-international.org/8.0/#sec-stringcreate' + }, + StringGetOwnProperty: { + url: 'https://262.ecma-international.org/8.0/#sec-stringgetownproperty' + }, + Suspend: { + url: 'https://262.ecma-international.org/8.0/#sec-suspend' + }, + SymbolDescriptiveString: { + url: 'https://262.ecma-international.org/8.0/#sec-symboldescriptivestring' + }, + 'synchronizes-with': { + url: 'https://262.ecma-international.org/8.0/#sec-synchronizes-with' + }, + TestIntegrityLevel: { + url: 'https://262.ecma-international.org/8.0/#sec-testintegritylevel' + }, + thisBooleanValue: { + url: 'https://262.ecma-international.org/8.0/#sec-thisbooleanvalue' + }, + thisNumberValue: { + url: 'https://262.ecma-international.org/8.0/#sec-thisnumbervalue' + }, + thisStringValue: { + url: 'https://262.ecma-international.org/8.0/#sec-thisstringvalue' + }, + thisTimeValue: { + url: 'https://262.ecma-international.org/8.0/#sec-thistimevalue' + }, + TimeClip: { + url: 'https://262.ecma-international.org/8.0/#sec-timeclip' + }, + TimeFromYear: { + url: 'https://262.ecma-international.org/8.0/#eqn-TimeFromYear' + }, + TimeWithinDay: { + url: 'https://262.ecma-international.org/8.0/#eqn-TimeWithinDay' + }, + ToBoolean: { + url: 'https://262.ecma-international.org/8.0/#sec-toboolean' + }, + ToDateString: { + url: 'https://262.ecma-international.org/8.0/#sec-todatestring' + }, + ToIndex: { + url: 'https://262.ecma-international.org/8.0/#sec-toindex' + }, + ToInt16: { + url: 'https://262.ecma-international.org/8.0/#sec-toint16' + }, + ToInt32: { + url: 'https://262.ecma-international.org/8.0/#sec-toint32' + }, + ToInt8: { + url: 'https://262.ecma-international.org/8.0/#sec-toint8' + }, + ToInteger: { + url: 'https://262.ecma-international.org/8.0/#sec-tointeger' + }, + ToLength: { + url: 'https://262.ecma-international.org/8.0/#sec-tolength' + }, + ToNumber: { + url: 'https://262.ecma-international.org/8.0/#sec-tonumber' + }, + ToObject: { + url: 'https://262.ecma-international.org/8.0/#sec-toobject' + }, + TopLevelModuleEvaluationJob: { + url: 'https://262.ecma-international.org/8.0/#sec-toplevelmoduleevaluationjob' + }, + ToPrimitive: { + url: 'https://262.ecma-international.org/8.0/#sec-toprimitive' + }, + ToPropertyDescriptor: { + url: 'https://262.ecma-international.org/8.0/#sec-topropertydescriptor' + }, + ToPropertyKey: { + url: 'https://262.ecma-international.org/8.0/#sec-topropertykey' + }, + ToString: { + url: 'https://262.ecma-international.org/8.0/#sec-tostring' + }, + 'ToString Applied to the Number Type': { + url: 'https://262.ecma-international.org/8.0/#sec-tostring-applied-to-the-number-type' + }, + ToUint16: { + url: 'https://262.ecma-international.org/8.0/#sec-touint16' + }, + ToUint32: { + url: 'https://262.ecma-international.org/8.0/#sec-touint32' + }, + ToUint8: { + url: 'https://262.ecma-international.org/8.0/#sec-touint8' + }, + ToUint8Clamp: { + url: 'https://262.ecma-international.org/8.0/#sec-touint8clamp' + }, + TriggerPromiseReactions: { + url: 'https://262.ecma-international.org/8.0/#sec-triggerpromisereactions' + }, + Type: { + url: 'https://262.ecma-international.org/8.0/#sec-ecmascript-data-types-and-values' + }, + TypedArrayCreate: { + url: 'https://262.ecma-international.org/8.0/#typedarray-create' + }, + TypedArraySpeciesCreate: { + url: 'https://262.ecma-international.org/8.0/#typedarray-species-create' + }, + UpdateEmpty: { + url: 'https://262.ecma-international.org/8.0/#sec-updateempty' + }, + UTC: { + url: 'https://262.ecma-international.org/8.0/#sec-utc-t' + }, + UTF16Decode: { + url: 'https://262.ecma-international.org/8.0/#sec-utf16decode' + }, + UTF16Encoding: { + url: 'https://262.ecma-international.org/8.0/#sec-utf16encoding' + }, + ValidateAndApplyPropertyDescriptor: { + url: 'https://262.ecma-international.org/8.0/#sec-validateandapplypropertydescriptor' + }, + ValidateAtomicAccess: { + url: 'https://262.ecma-international.org/8.0/#sec-validateatomicaccess' + }, + ValidateSharedIntegerTypedArray: { + url: 'https://262.ecma-international.org/8.0/#sec-validatesharedintegertypedarray' + }, + ValidateTypedArray: { + url: 'https://262.ecma-international.org/8.0/#sec-validatetypedarray' + }, + ValueOfReadEvent: { + url: 'https://262.ecma-international.org/8.0/#sec-valueofreadevent' + }, + WakeWaiter: { + url: 'https://262.ecma-international.org/8.0/#sec-wakewaiter' + }, + WeekDay: { + url: 'https://262.ecma-international.org/8.0/#sec-week-day' + }, + WordCharacters: { + url: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-wordcharacters-abstract-operation' + }, + YearFromTime: { + url: 'https://262.ecma-international.org/8.0/#eqn-YearFromTime' + } +}; diff --git a/node_modules/es-abstract/operations/2018.js b/node_modules/es-abstract/operations/2018.js new file mode 100644 index 0000000000000000000000000000000000000000..251a409205fa4286f09e862442f2c837c694cf8d --- /dev/null +++ b/node_modules/es-abstract/operations/2018.js @@ -0,0 +1,1033 @@ +'use strict'; + +module.exports = { + abs: { + url: 'https://262.ecma-international.org/9.0/#eqn-abs' + }, + 'Abstract Equality Comparison': { + url: 'https://262.ecma-international.org/9.0/#sec-abstract-equality-comparison' + }, + 'Abstract Relational Comparison': { + url: 'https://262.ecma-international.org/9.0/#sec-abstract-relational-comparison' + }, + AddRestrictedFunctionProperties: { + url: 'https://262.ecma-international.org/9.0/#sec-addrestrictedfunctionproperties' + }, + AddWaiter: { + url: 'https://262.ecma-international.org/9.0/#sec-addwaiter' + }, + AdvanceStringIndex: { + url: 'https://262.ecma-international.org/9.0/#sec-advancestringindex' + }, + 'agent-order': { + url: 'https://262.ecma-international.org/9.0/#sec-agent-order' + }, + AgentCanSuspend: { + url: 'https://262.ecma-international.org/9.0/#sec-agentcansuspend' + }, + AgentSignifier: { + url: 'https://262.ecma-international.org/9.0/#sec-agentsignifier' + }, + AllocateArrayBuffer: { + url: 'https://262.ecma-international.org/9.0/#sec-allocatearraybuffer' + }, + AllocateSharedArrayBuffer: { + url: 'https://262.ecma-international.org/9.0/#sec-allocatesharedarraybuffer' + }, + AllocateTypedArray: { + url: 'https://262.ecma-international.org/9.0/#sec-allocatetypedarray' + }, + AllocateTypedArrayBuffer: { + url: 'https://262.ecma-international.org/9.0/#sec-allocatetypedarraybuffer' + }, + ArrayCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-arraycreate' + }, + ArraySetLength: { + url: 'https://262.ecma-international.org/9.0/#sec-arraysetlength' + }, + ArraySpeciesCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-arrayspeciescreate' + }, + AsyncFunctionCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-async-functions-abstract-operations-async-function-create' + }, + AsyncFunctionStart: { + url: 'https://262.ecma-international.org/9.0/#sec-async-functions-abstract-operations-async-function-start' + }, + AsyncGeneratorEnqueue: { + url: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratorenqueue' + }, + AsyncGeneratorFunctionCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratorfunctioncreate' + }, + AsyncGeneratorReject: { + url: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratorreject' + }, + AsyncGeneratorResolve: { + url: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratorresolve' + }, + AsyncGeneratorResumeNext: { + url: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratorresumenext' + }, + AsyncGeneratorStart: { + url: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratorstart' + }, + AsyncGeneratorYield: { + url: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratoryield' + }, + AsyncIteratorClose: { + url: 'https://262.ecma-international.org/9.0/#sec-asynciteratorclose' + }, + AtomicLoad: { + url: 'https://262.ecma-international.org/9.0/#sec-atomicload' + }, + AtomicReadModifyWrite: { + url: 'https://262.ecma-international.org/9.0/#sec-atomicreadmodifywrite' + }, + Await: { + url: 'https://262.ecma-international.org/9.0/#await' + }, + BackreferenceMatcher: { + url: 'https://262.ecma-international.org/9.0/#sec-backreference-matcher' + }, + BlockDeclarationInstantiation: { + url: 'https://262.ecma-international.org/9.0/#sec-blockdeclarationinstantiation' + }, + BoundFunctionCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-boundfunctioncreate' + }, + Call: { + url: 'https://262.ecma-international.org/9.0/#sec-call' + }, + Canonicalize: { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-canonicalize-ch' + }, + CanonicalNumericIndexString: { + url: 'https://262.ecma-international.org/9.0/#sec-canonicalnumericindexstring' + }, + CaseClauseIsSelected: { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-caseclauseisselected' + }, + CharacterRange: { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-characterrange-abstract-operation' + }, + CharacterRangeOrUnion: { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation' + }, + CharacterSetMatcher: { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation' + }, + CloneArrayBuffer: { + url: 'https://262.ecma-international.org/9.0/#sec-clonearraybuffer' + }, + CompletePropertyDescriptor: { + url: 'https://262.ecma-international.org/9.0/#sec-completepropertydescriptor' + }, + Completion: { + url: 'https://262.ecma-international.org/9.0/#sec-completion-record-specification-type' + }, + CompletionRecord: { + url: 'https://262.ecma-international.org/9.0/#sec-completion-record-specification-type' + }, + ComposeWriteEventBytes: { + url: 'https://262.ecma-international.org/9.0/#sec-composewriteeventbytes' + }, + Construct: { + url: 'https://262.ecma-international.org/9.0/#sec-construct' + }, + CopyDataBlockBytes: { + url: 'https://262.ecma-international.org/9.0/#sec-copydatablockbytes' + }, + CopyDataProperties: { + url: 'https://262.ecma-international.org/9.0/#sec-copydataproperties' + }, + CreateArrayFromList: { + url: 'https://262.ecma-international.org/9.0/#sec-createarrayfromlist' + }, + CreateArrayIterator: { + url: 'https://262.ecma-international.org/9.0/#sec-createarrayiterator' + }, + CreateAsyncFromSyncIterator: { + url: 'https://262.ecma-international.org/9.0/#sec-createasyncfromsynciterator' + }, + CreateBuiltinFunction: { + url: 'https://262.ecma-international.org/9.0/#sec-createbuiltinfunction' + }, + CreateByteDataBlock: { + url: 'https://262.ecma-international.org/9.0/#sec-createbytedatablock' + }, + CreateDataProperty: { + url: 'https://262.ecma-international.org/9.0/#sec-createdataproperty' + }, + CreateDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/9.0/#sec-createdatapropertyorthrow' + }, + CreateDynamicFunction: { + url: 'https://262.ecma-international.org/9.0/#sec-createdynamicfunction' + }, + CreateHTML: { + url: 'https://262.ecma-international.org/9.0/#sec-createhtml' + }, + CreateIntrinsics: { + url: 'https://262.ecma-international.org/9.0/#sec-createintrinsics' + }, + CreateIterResultObject: { + url: 'https://262.ecma-international.org/9.0/#sec-createiterresultobject' + }, + CreateListFromArrayLike: { + url: 'https://262.ecma-international.org/9.0/#sec-createlistfromarraylike' + }, + CreateListIteratorRecord: { + url: 'https://262.ecma-international.org/9.0/#sec-createlistiteratorRecord' + }, + CreateMapIterator: { + url: 'https://262.ecma-international.org/9.0/#sec-createmapiterator' + }, + CreateMappedArgumentsObject: { + url: 'https://262.ecma-international.org/9.0/#sec-createmappedargumentsobject' + }, + CreateMethodProperty: { + url: 'https://262.ecma-international.org/9.0/#sec-createmethodproperty' + }, + CreatePerIterationEnvironment: { + url: 'https://262.ecma-international.org/9.0/#sec-createperiterationenvironment' + }, + CreateRealm: { + url: 'https://262.ecma-international.org/9.0/#sec-createrealm' + }, + CreateResolvingFunctions: { + url: 'https://262.ecma-international.org/9.0/#sec-createresolvingfunctions' + }, + CreateSetIterator: { + url: 'https://262.ecma-international.org/9.0/#sec-createsetiterator' + }, + CreateSharedByteDataBlock: { + url: 'https://262.ecma-international.org/9.0/#sec-createsharedbytedatablock' + }, + CreateStringIterator: { + url: 'https://262.ecma-international.org/9.0/#sec-createstringiterator' + }, + CreateUnmappedArgumentsObject: { + url: 'https://262.ecma-international.org/9.0/#sec-createunmappedargumentsobject' + }, + DateFromTime: { + url: 'https://262.ecma-international.org/9.0/#sec-date-number' + }, + DateString: { + url: 'https://262.ecma-international.org/9.0/#sec-datestring' + }, + Day: { + url: 'https://262.ecma-international.org/9.0/#eqn-Day' + }, + DayFromYear: { + url: 'https://262.ecma-international.org/9.0/#eqn-DaysFromYear' + }, + DaysInYear: { + url: 'https://262.ecma-international.org/9.0/#eqn-DaysInYear' + }, + DayWithinYear: { + url: 'https://262.ecma-international.org/9.0/#eqn-DayWithinYear' + }, + Decode: { + url: 'https://262.ecma-international.org/9.0/#sec-decode' + }, + DefinePropertyOrThrow: { + url: 'https://262.ecma-international.org/9.0/#sec-definepropertyorthrow' + }, + DeletePropertyOrThrow: { + url: 'https://262.ecma-international.org/9.0/#sec-deletepropertyorthrow' + }, + DetachArrayBuffer: { + url: 'https://262.ecma-international.org/9.0/#sec-detacharraybuffer' + }, + Encode: { + url: 'https://262.ecma-international.org/9.0/#sec-encode' + }, + EnqueueJob: { + url: 'https://262.ecma-international.org/9.0/#sec-enqueuejob' + }, + EnterCriticalSection: { + url: 'https://262.ecma-international.org/9.0/#sec-entercriticalsection' + }, + EnumerableOwnPropertyNames: { + url: 'https://262.ecma-international.org/9.0/#sec-enumerableownpropertynames' + }, + EnumerateObjectProperties: { + url: 'https://262.ecma-international.org/9.0/#sec-enumerate-object-properties' + }, + EscapeRegExpPattern: { + url: 'https://262.ecma-international.org/9.0/#sec-escaperegexppattern' + }, + EvalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/9.0/#sec-evaldeclarationinstantiation' + }, + EvaluateCall: { + url: 'https://262.ecma-international.org/9.0/#sec-evaluatecall' + }, + EvaluateNew: { + url: 'https://262.ecma-international.org/9.0/#sec-evaluatenew' + }, + EventSet: { + url: 'https://262.ecma-international.org/9.0/#sec-event-set' + }, + floor: { + url: 'https://262.ecma-international.org/9.0/#eqn-floor' + }, + ForBodyEvaluation: { + url: 'https://262.ecma-international.org/9.0/#sec-forbodyevaluation' + }, + 'ForIn/OfBodyEvaluation': { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset' + }, + 'ForIn/OfHeadEvaluation': { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind' + }, + FromPropertyDescriptor: { + url: 'https://262.ecma-international.org/9.0/#sec-frompropertydescriptor' + }, + FulfillPromise: { + url: 'https://262.ecma-international.org/9.0/#sec-fulfillpromise' + }, + FunctionAllocate: { + url: 'https://262.ecma-international.org/9.0/#sec-functionallocate' + }, + FunctionCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-functioncreate' + }, + FunctionDeclarationInstantiation: { + url: 'https://262.ecma-international.org/9.0/#sec-functiondeclarationinstantiation' + }, + FunctionInitialize: { + url: 'https://262.ecma-international.org/9.0/#sec-functioninitialize' + }, + GeneratorFunctionCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-generatorfunctioncreate' + }, + GeneratorResume: { + url: 'https://262.ecma-international.org/9.0/#sec-generatorresume' + }, + GeneratorResumeAbrupt: { + url: 'https://262.ecma-international.org/9.0/#sec-generatorresumeabrupt' + }, + GeneratorStart: { + url: 'https://262.ecma-international.org/9.0/#sec-generatorstart' + }, + GeneratorValidate: { + url: 'https://262.ecma-international.org/9.0/#sec-generatorvalidate' + }, + GeneratorYield: { + url: 'https://262.ecma-international.org/9.0/#sec-generatoryield' + }, + Get: { + url: 'https://262.ecma-international.org/9.0/#sec-get-o-p' + }, + GetActiveScriptOrModule: { + url: 'https://262.ecma-international.org/9.0/#sec-getactivescriptormodule' + }, + GetBase: { + url: 'https://262.ecma-international.org/9.0/#sec-getbase' + }, + GetFunctionRealm: { + url: 'https://262.ecma-international.org/9.0/#sec-getfunctionrealm' + }, + GetGeneratorKind: { + url: 'https://262.ecma-international.org/9.0/#sec-getgeneratorkind' + }, + GetGlobalObject: { + url: 'https://262.ecma-international.org/9.0/#sec-getglobalobject' + }, + GetIdentifierReference: { + url: 'https://262.ecma-international.org/9.0/#sec-getidentifierreference' + }, + GetIterator: { + url: 'https://262.ecma-international.org/9.0/#sec-getiterator' + }, + GetMethod: { + url: 'https://262.ecma-international.org/9.0/#sec-getmethod' + }, + GetModifySetValueInBuffer: { + url: 'https://262.ecma-international.org/9.0/#sec-getmodifysetvalueinbuffer' + }, + GetModuleNamespace: { + url: 'https://262.ecma-international.org/9.0/#sec-getmodulenamespace' + }, + GetNewTarget: { + url: 'https://262.ecma-international.org/9.0/#sec-getnewtarget' + }, + GetOwnPropertyKeys: { + url: 'https://262.ecma-international.org/9.0/#sec-getownpropertykeys' + }, + GetPrototypeFromConstructor: { + url: 'https://262.ecma-international.org/9.0/#sec-getprototypefromconstructor' + }, + GetReferencedName: { + url: 'https://262.ecma-international.org/9.0/#sec-getreferencedname' + }, + GetSubstitution: { + url: 'https://262.ecma-international.org/9.0/#sec-getsubstitution' + }, + GetSuperConstructor: { + url: 'https://262.ecma-international.org/9.0/#sec-getsuperconstructor' + }, + GetTemplateObject: { + url: 'https://262.ecma-international.org/9.0/#sec-gettemplateobject' + }, + GetThisEnvironment: { + url: 'https://262.ecma-international.org/9.0/#sec-getthisenvironment' + }, + GetThisValue: { + url: 'https://262.ecma-international.org/9.0/#sec-getthisvalue' + }, + GetV: { + url: 'https://262.ecma-international.org/9.0/#sec-getv' + }, + GetValue: { + url: 'https://262.ecma-international.org/9.0/#sec-getvalue' + }, + GetValueFromBuffer: { + url: 'https://262.ecma-international.org/9.0/#sec-getvaluefrombuffer' + }, + GetViewValue: { + url: 'https://262.ecma-international.org/9.0/#sec-getviewvalue' + }, + GetWaiterList: { + url: 'https://262.ecma-international.org/9.0/#sec-getwaiterlist' + }, + GlobalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/9.0/#sec-globaldeclarationinstantiation' + }, + 'happens-before': { + url: 'https://262.ecma-international.org/9.0/#sec-happens-before' + }, + HasOwnProperty: { + url: 'https://262.ecma-international.org/9.0/#sec-hasownproperty' + }, + HasPrimitiveBase: { + url: 'https://262.ecma-international.org/9.0/#sec-hasprimitivebase' + }, + HasProperty: { + url: 'https://262.ecma-international.org/9.0/#sec-hasproperty' + }, + 'host-synchronizes-with': { + url: 'https://262.ecma-international.org/9.0/#sec-host-synchronizes-with' + }, + HostEventSet: { + url: 'https://262.ecma-international.org/9.0/#sec-hosteventset' + }, + HourFromTime: { + url: 'https://262.ecma-international.org/9.0/#eqn-HourFromTime' + }, + IfAbruptRejectPromise: { + url: 'https://262.ecma-international.org/9.0/#sec-ifabruptrejectpromise' + }, + ImportedLocalNames: { + url: 'https://262.ecma-international.org/9.0/#sec-importedlocalnames' + }, + InitializeBoundName: { + url: 'https://262.ecma-international.org/9.0/#sec-initializeboundname' + }, + InitializeHostDefinedRealm: { + url: 'https://262.ecma-international.org/9.0/#sec-initializehostdefinedrealm' + }, + InitializeReferencedBinding: { + url: 'https://262.ecma-international.org/9.0/#sec-initializereferencedbinding' + }, + InLeapYear: { + url: 'https://262.ecma-international.org/9.0/#eqn-InLeapYear' + }, + InnerModuleEvaluation: { + url: 'https://262.ecma-international.org/9.0/#sec-innermoduleevaluation' + }, + InnerModuleInstantiation: { + url: 'https://262.ecma-international.org/9.0/#sec-innermoduleinstantiation' + }, + InstanceofOperator: { + url: 'https://262.ecma-international.org/9.0/#sec-instanceofoperator' + }, + IntegerIndexedElementGet: { + url: 'https://262.ecma-international.org/9.0/#sec-integerindexedelementget' + }, + IntegerIndexedElementSet: { + url: 'https://262.ecma-international.org/9.0/#sec-integerindexedelementset' + }, + IntegerIndexedObjectCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-integerindexedobjectcreate' + }, + InternalizeJSONProperty: { + url: 'https://262.ecma-international.org/9.0/#sec-internalizejsonproperty' + }, + Invoke: { + url: 'https://262.ecma-international.org/9.0/#sec-invoke' + }, + IsAccessorDescriptor: { + url: 'https://262.ecma-international.org/9.0/#sec-isaccessordescriptor' + }, + IsAnonymousFunctionDefinition: { + url: 'https://262.ecma-international.org/9.0/#sec-isanonymousfunctiondefinition' + }, + IsArray: { + url: 'https://262.ecma-international.org/9.0/#sec-isarray' + }, + IsCallable: { + url: 'https://262.ecma-international.org/9.0/#sec-iscallable' + }, + IsCompatiblePropertyDescriptor: { + url: 'https://262.ecma-international.org/9.0/#sec-iscompatiblepropertydescriptor' + }, + IsConcatSpreadable: { + url: 'https://262.ecma-international.org/9.0/#sec-isconcatspreadable' + }, + IsConstructor: { + url: 'https://262.ecma-international.org/9.0/#sec-isconstructor' + }, + IsDataDescriptor: { + url: 'https://262.ecma-international.org/9.0/#sec-isdatadescriptor' + }, + IsDetachedBuffer: { + url: 'https://262.ecma-international.org/9.0/#sec-isdetachedbuffer' + }, + IsExtensible: { + url: 'https://262.ecma-international.org/9.0/#sec-isextensible-o' + }, + IsGenericDescriptor: { + url: 'https://262.ecma-international.org/9.0/#sec-isgenericdescriptor' + }, + IsInTailPosition: { + url: 'https://262.ecma-international.org/9.0/#sec-isintailposition' + }, + IsInteger: { + url: 'https://262.ecma-international.org/9.0/#sec-isinteger' + }, + IsLabelledFunction: { + url: 'https://262.ecma-international.org/9.0/#sec-islabelledfunction' + }, + IsPromise: { + url: 'https://262.ecma-international.org/9.0/#sec-ispromise' + }, + IsPropertyKey: { + url: 'https://262.ecma-international.org/9.0/#sec-ispropertykey' + }, + IsPropertyReference: { + url: 'https://262.ecma-international.org/9.0/#sec-ispropertyreference' + }, + IsRegExp: { + url: 'https://262.ecma-international.org/9.0/#sec-isregexp' + }, + IsSharedArrayBuffer: { + url: 'https://262.ecma-international.org/9.0/#sec-issharedarraybuffer' + }, + IsStrictReference: { + url: 'https://262.ecma-international.org/9.0/#sec-isstrictreference' + }, + IsStringPrefix: { + url: 'https://262.ecma-international.org/9.0/#sec-isstringprefix' + }, + IsSuperReference: { + url: 'https://262.ecma-international.org/9.0/#sec-issuperreference' + }, + IsUnresolvableReference: { + url: 'https://262.ecma-international.org/9.0/#sec-isunresolvablereference' + }, + IsWordChar: { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-iswordchar-abstract-operation' + }, + IterableToList: { + url: 'https://262.ecma-international.org/9.0/#sec-iterabletolist' + }, + IteratorClose: { + url: 'https://262.ecma-international.org/9.0/#sec-iteratorclose' + }, + IteratorComplete: { + url: 'https://262.ecma-international.org/9.0/#sec-iteratorcomplete' + }, + IteratorNext: { + url: 'https://262.ecma-international.org/9.0/#sec-iteratornext' + }, + IteratorStep: { + url: 'https://262.ecma-international.org/9.0/#sec-iteratorstep' + }, + IteratorValue: { + url: 'https://262.ecma-international.org/9.0/#sec-iteratorvalue' + }, + LeaveCriticalSection: { + url: 'https://262.ecma-international.org/9.0/#sec-leavecriticalsection' + }, + LocalTime: { + url: 'https://262.ecma-international.org/9.0/#sec-localtime' + }, + LoopContinues: { + url: 'https://262.ecma-international.org/9.0/#sec-loopcontinues' + }, + MakeArgGetter: { + url: 'https://262.ecma-international.org/9.0/#sec-makearggetter' + }, + MakeArgSetter: { + url: 'https://262.ecma-international.org/9.0/#sec-makeargsetter' + }, + MakeClassConstructor: { + url: 'https://262.ecma-international.org/9.0/#sec-makeclassconstructor' + }, + MakeConstructor: { + url: 'https://262.ecma-international.org/9.0/#sec-makeconstructor' + }, + MakeDate: { + url: 'https://262.ecma-international.org/9.0/#sec-makedate' + }, + MakeDay: { + url: 'https://262.ecma-international.org/9.0/#sec-makeday' + }, + MakeMethod: { + url: 'https://262.ecma-international.org/9.0/#sec-makemethod' + }, + MakeSuperPropertyReference: { + url: 'https://262.ecma-international.org/9.0/#sec-makesuperpropertyreference' + }, + MakeTime: { + url: 'https://262.ecma-international.org/9.0/#sec-maketime' + }, + max: { + url: 'https://262.ecma-international.org/9.0/#eqn-max' + }, + 'memory-order': { + url: 'https://262.ecma-international.org/9.0/#sec-memory-order' + }, + min: { + url: 'https://262.ecma-international.org/9.0/#eqn-min' + }, + MinFromTime: { + url: 'https://262.ecma-international.org/9.0/#eqn-MinFromTime' + }, + ModuleDeclarationEnvironmentSetup: { + url: 'https://262.ecma-international.org/9.0/#sec-moduledeclarationenvironmentsetup' + }, + ModuleExecution: { + url: 'https://262.ecma-international.org/9.0/#sec-moduleexecution' + }, + ModuleNamespaceCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-modulenamespacecreate' + }, + modulo: { + url: 'https://262.ecma-international.org/9.0/#eqn-modulo' + }, + MonthFromTime: { + url: 'https://262.ecma-international.org/9.0/#eqn-MonthFromTime' + }, + msFromTime: { + url: 'https://262.ecma-international.org/9.0/#eqn-msFromTime' + }, + NewDeclarativeEnvironment: { + url: 'https://262.ecma-international.org/9.0/#sec-newdeclarativeenvironment' + }, + NewFunctionEnvironment: { + url: 'https://262.ecma-international.org/9.0/#sec-newfunctionenvironment' + }, + NewGlobalEnvironment: { + url: 'https://262.ecma-international.org/9.0/#sec-newglobalenvironment' + }, + NewModuleEnvironment: { + url: 'https://262.ecma-international.org/9.0/#sec-newmoduleenvironment' + }, + NewObjectEnvironment: { + url: 'https://262.ecma-international.org/9.0/#sec-newobjectenvironment' + }, + NewPromiseCapability: { + url: 'https://262.ecma-international.org/9.0/#sec-newpromisecapability' + }, + NormalCompletion: { + url: 'https://262.ecma-international.org/9.0/#sec-normalcompletion' + }, + NumberToRawBytes: { + url: 'https://262.ecma-international.org/9.0/#sec-numbertorawbytes' + }, + NumberToString: { + url: 'https://262.ecma-international.org/9.0/#sec-tostring-applied-to-the-number-type' + }, + ObjectCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-objectcreate' + }, + ObjectDefineProperties: { + url: 'https://262.ecma-international.org/9.0/#sec-objectdefineproperties' + }, + OrdinaryCallBindThis: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinarycallbindthis' + }, + OrdinaryCallEvaluateBody: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinarycallevaluatebody' + }, + OrdinaryCreateFromConstructor: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinarycreatefromconstructor' + }, + OrdinaryDefineOwnProperty: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinarydefineownproperty' + }, + OrdinaryDelete: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinarydelete' + }, + OrdinaryGet: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinaryget' + }, + OrdinaryGetOwnProperty: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinarygetownproperty' + }, + OrdinaryGetPrototypeOf: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinarygetprototypeof' + }, + OrdinaryHasInstance: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinaryhasinstance' + }, + OrdinaryHasProperty: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinaryhasproperty' + }, + OrdinaryIsExtensible: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinaryisextensible' + }, + OrdinaryOwnPropertyKeys: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinaryownpropertykeys' + }, + OrdinaryPreventExtensions: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinarypreventextensions' + }, + OrdinarySet: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinaryset' + }, + OrdinarySetPrototypeOf: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinarysetprototypeof' + }, + OrdinarySetWithOwnDescriptor: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinarysetwithowndescriptor' + }, + OrdinaryToPrimitive: { + url: 'https://262.ecma-international.org/9.0/#sec-ordinarytoprimitive' + }, + ParseModule: { + url: 'https://262.ecma-international.org/9.0/#sec-parsemodule' + }, + ParseScript: { + url: 'https://262.ecma-international.org/9.0/#sec-parse-script' + }, + PerformEval: { + url: 'https://262.ecma-international.org/9.0/#sec-performeval' + }, + PerformPromiseAll: { + url: 'https://262.ecma-international.org/9.0/#sec-performpromiseall' + }, + PerformPromiseRace: { + url: 'https://262.ecma-international.org/9.0/#sec-performpromiserace' + }, + PerformPromiseThen: { + url: 'https://262.ecma-international.org/9.0/#sec-performpromisethen' + }, + PrepareForOrdinaryCall: { + url: 'https://262.ecma-international.org/9.0/#sec-prepareforordinarycall' + }, + PrepareForTailCall: { + url: 'https://262.ecma-international.org/9.0/#sec-preparefortailcall' + }, + PromiseReactionJob: { + url: 'https://262.ecma-international.org/9.0/#sec-promisereactionjob' + }, + PromiseResolve: { + url: 'https://262.ecma-international.org/9.0/#sec-promise-resolve' + }, + PromiseResolveThenableJob: { + url: 'https://262.ecma-international.org/9.0/#sec-promiseresolvethenablejob' + }, + ProxyCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-proxycreate' + }, + PutValue: { + url: 'https://262.ecma-international.org/9.0/#sec-putvalue' + }, + QuoteJSONString: { + url: 'https://262.ecma-international.org/9.0/#sec-quotejsonstring' + }, + RawBytesToNumber: { + url: 'https://262.ecma-international.org/9.0/#sec-rawbytestonumber' + }, + 'reads-bytes-from': { + url: 'https://262.ecma-international.org/9.0/#sec-reads-bytes-from' + }, + 'reads-from': { + url: 'https://262.ecma-international.org/9.0/#sec-reads-from' + }, + RegExpAlloc: { + url: 'https://262.ecma-international.org/9.0/#sec-regexpalloc' + }, + RegExpBuiltinExec: { + url: 'https://262.ecma-international.org/9.0/#sec-regexpbuiltinexec' + }, + RegExpCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-regexpcreate' + }, + RegExpExec: { + url: 'https://262.ecma-international.org/9.0/#sec-regexpexec' + }, + RegExpInitialize: { + url: 'https://262.ecma-international.org/9.0/#sec-regexpinitialize' + }, + RejectPromise: { + url: 'https://262.ecma-international.org/9.0/#sec-rejectpromise' + }, + RemoveWaiter: { + url: 'https://262.ecma-international.org/9.0/#sec-removewaiter' + }, + RemoveWaiters: { + url: 'https://262.ecma-international.org/9.0/#sec-removewaiters' + }, + RepeatMatcher: { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-repeatmatcher-abstract-operation' + }, + RequireObjectCoercible: { + url: 'https://262.ecma-international.org/9.0/#sec-requireobjectcoercible' + }, + ResolveBinding: { + url: 'https://262.ecma-international.org/9.0/#sec-resolvebinding' + }, + ResolveThisBinding: { + url: 'https://262.ecma-international.org/9.0/#sec-resolvethisbinding' + }, + ReturnIfAbrupt: { + url: 'https://262.ecma-international.org/9.0/#sec-returnifabrupt' + }, + RunJobs: { + url: 'https://262.ecma-international.org/9.0/#sec-runjobs' + }, + SameValue: { + url: 'https://262.ecma-international.org/9.0/#sec-samevalue' + }, + SameValueNonNumber: { + url: 'https://262.ecma-international.org/9.0/#sec-samevaluenonnumber' + }, + SameValueZero: { + url: 'https://262.ecma-international.org/9.0/#sec-samevaluezero' + }, + ScriptEvaluation: { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-scriptevaluation' + }, + ScriptEvaluationJob: { + url: 'https://262.ecma-international.org/9.0/#sec-scriptevaluationjob' + }, + SecFromTime: { + url: 'https://262.ecma-international.org/9.0/#eqn-SecFromTime' + }, + SerializeJSONArray: { + url: 'https://262.ecma-international.org/9.0/#sec-serializejsonarray' + }, + SerializeJSONObject: { + url: 'https://262.ecma-international.org/9.0/#sec-serializejsonobject' + }, + SerializeJSONProperty: { + url: 'https://262.ecma-international.org/9.0/#sec-serializejsonproperty' + }, + Set: { + url: 'https://262.ecma-international.org/9.0/#sec-set-o-p-v-throw' + }, + SetDefaultGlobalBindings: { + url: 'https://262.ecma-international.org/9.0/#sec-setdefaultglobalbindings' + }, + SetFunctionLength: { + url: 'https://262.ecma-international.org/9.0/#sec-setfunctionlength' + }, + SetFunctionName: { + url: 'https://262.ecma-international.org/9.0/#sec-setfunctionname' + }, + SetImmutablePrototype: { + url: 'https://262.ecma-international.org/9.0/#sec-set-immutable-prototype' + }, + SetIntegrityLevel: { + url: 'https://262.ecma-international.org/9.0/#sec-setintegritylevel' + }, + SetRealmGlobalObject: { + url: 'https://262.ecma-international.org/9.0/#sec-setrealmglobalobject' + }, + SetValueInBuffer: { + url: 'https://262.ecma-international.org/9.0/#sec-setvalueinbuffer' + }, + SetViewValue: { + url: 'https://262.ecma-international.org/9.0/#sec-setviewvalue' + }, + SharedDataBlockEventSet: { + url: 'https://262.ecma-international.org/9.0/#sec-sharedatablockeventset' + }, + SortCompare: { + url: 'https://262.ecma-international.org/9.0/#sec-sortcompare' + }, + SpeciesConstructor: { + url: 'https://262.ecma-international.org/9.0/#sec-speciesconstructor' + }, + SplitMatch: { + url: 'https://262.ecma-international.org/9.0/#sec-splitmatch' + }, + 'Strict Equality Comparison': { + url: 'https://262.ecma-international.org/9.0/#sec-strict-equality-comparison' + }, + StringCreate: { + url: 'https://262.ecma-international.org/9.0/#sec-stringcreate' + }, + StringGetOwnProperty: { + url: 'https://262.ecma-international.org/9.0/#sec-stringgetownproperty' + }, + Suspend: { + url: 'https://262.ecma-international.org/9.0/#sec-suspend' + }, + SymbolDescriptiveString: { + url: 'https://262.ecma-international.org/9.0/#sec-symboldescriptivestring' + }, + 'synchronizes-with': { + url: 'https://262.ecma-international.org/9.0/#sec-synchronizes-with' + }, + TestIntegrityLevel: { + url: 'https://262.ecma-international.org/9.0/#sec-testintegritylevel' + }, + thisBooleanValue: { + url: 'https://262.ecma-international.org/9.0/#sec-thisbooleanvalue' + }, + thisNumberValue: { + url: 'https://262.ecma-international.org/9.0/#sec-thisnumbervalue' + }, + thisStringValue: { + url: 'https://262.ecma-international.org/9.0/#sec-thisstringvalue' + }, + thisSymbolValue: { + url: 'https://262.ecma-international.org/9.0/#sec-thissymbolvalue' + }, + thisTimeValue: { + url: 'https://262.ecma-international.org/9.0/#sec-thistimevalue' + }, + ThrowCompletion: { + url: 'https://262.ecma-international.org/9.0/#sec-throwcompletion' + }, + TimeClip: { + url: 'https://262.ecma-international.org/9.0/#sec-timeclip' + }, + TimeFromYear: { + url: 'https://262.ecma-international.org/9.0/#eqn-TimeFromYear' + }, + TimeString: { + url: 'https://262.ecma-international.org/9.0/#sec-timestring' + }, + TimeWithinDay: { + url: 'https://262.ecma-international.org/9.0/#eqn-TimeWithinDay' + }, + TimeZoneString: { + url: 'https://262.ecma-international.org/9.0/#sec-timezoneestring' + }, + ToBoolean: { + url: 'https://262.ecma-international.org/9.0/#sec-toboolean' + }, + ToDateString: { + url: 'https://262.ecma-international.org/9.0/#sec-todatestring' + }, + ToIndex: { + url: 'https://262.ecma-international.org/9.0/#sec-toindex' + }, + ToInt16: { + url: 'https://262.ecma-international.org/9.0/#sec-toint16' + }, + ToInt32: { + url: 'https://262.ecma-international.org/9.0/#sec-toint32' + }, + ToInt8: { + url: 'https://262.ecma-international.org/9.0/#sec-toint8' + }, + ToInteger: { + url: 'https://262.ecma-international.org/9.0/#sec-tointeger' + }, + ToLength: { + url: 'https://262.ecma-international.org/9.0/#sec-tolength' + }, + ToNumber: { + url: 'https://262.ecma-international.org/9.0/#sec-tonumber' + }, + ToObject: { + url: 'https://262.ecma-international.org/9.0/#sec-toobject' + }, + TopLevelModuleEvaluationJob: { + url: 'https://262.ecma-international.org/9.0/#sec-toplevelmoduleevaluationjob' + }, + ToPrimitive: { + url: 'https://262.ecma-international.org/9.0/#sec-toprimitive' + }, + ToPropertyDescriptor: { + url: 'https://262.ecma-international.org/9.0/#sec-topropertydescriptor' + }, + ToPropertyKey: { + url: 'https://262.ecma-international.org/9.0/#sec-topropertykey' + }, + ToString: { + url: 'https://262.ecma-international.org/9.0/#sec-tostring' + }, + ToUint16: { + url: 'https://262.ecma-international.org/9.0/#sec-touint16' + }, + ToUint32: { + url: 'https://262.ecma-international.org/9.0/#sec-touint32' + }, + ToUint8: { + url: 'https://262.ecma-international.org/9.0/#sec-touint8' + }, + ToUint8Clamp: { + url: 'https://262.ecma-international.org/9.0/#sec-touint8clamp' + }, + TriggerPromiseReactions: { + url: 'https://262.ecma-international.org/9.0/#sec-triggerpromisereactions' + }, + Type: { + url: 'https://262.ecma-international.org/9.0/#sec-ecmascript-data-types-and-values' + }, + TypedArrayCreate: { + url: 'https://262.ecma-international.org/9.0/#typedarray-create' + }, + TypedArraySpeciesCreate: { + url: 'https://262.ecma-international.org/9.0/#typedarray-species-create' + }, + UnicodeEscape: { + url: 'https://262.ecma-international.org/9.0/#sec-unicodeescape' + }, + UnicodeMatchProperty: { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-unicodematchproperty-p' + }, + UnicodeMatchPropertyValue: { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v' + }, + UpdateEmpty: { + url: 'https://262.ecma-international.org/9.0/#sec-updateempty' + }, + UTC: { + url: 'https://262.ecma-international.org/9.0/#sec-utc-t' + }, + UTF16Decode: { + url: 'https://262.ecma-international.org/9.0/#sec-utf16decode' + }, + UTF16Encoding: { + url: 'https://262.ecma-international.org/9.0/#sec-utf16encoding' + }, + ValidateAndApplyPropertyDescriptor: { + url: 'https://262.ecma-international.org/9.0/#sec-validateandapplypropertydescriptor' + }, + ValidateAtomicAccess: { + url: 'https://262.ecma-international.org/9.0/#sec-validateatomicaccess' + }, + ValidateSharedIntegerTypedArray: { + url: 'https://262.ecma-international.org/9.0/#sec-validatesharedintegertypedarray' + }, + ValidateTypedArray: { + url: 'https://262.ecma-international.org/9.0/#sec-validatetypedarray' + }, + ValueOfReadEvent: { + url: 'https://262.ecma-international.org/9.0/#sec-valueofreadevent' + }, + WakeWaiter: { + url: 'https://262.ecma-international.org/9.0/#sec-wakewaiter' + }, + WeekDay: { + url: 'https://262.ecma-international.org/9.0/#sec-week-day' + }, + WordCharacters: { + url: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-wordcharacters-abstract-operation' + }, + YearFromTime: { + url: 'https://262.ecma-international.org/9.0/#eqn-YearFromTime' + } +}; diff --git a/node_modules/es-abstract/operations/2019.js b/node_modules/es-abstract/operations/2019.js new file mode 100644 index 0000000000000000000000000000000000000000..d19150c8dc45cdde052f3a3a6a9ad3017bc5f570 --- /dev/null +++ b/node_modules/es-abstract/operations/2019.js @@ -0,0 +1,1048 @@ +'use strict'; + +module.exports = { + abs: { + url: 'https://262.ecma-international.org/10.0/#eqn-abs' + }, + 'Abstract Equality Comparison': { + url: 'https://262.ecma-international.org/10.0/#sec-abstract-equality-comparison' + }, + 'Abstract Relational Comparison': { + url: 'https://262.ecma-international.org/10.0/#sec-abstract-relational-comparison' + }, + AddEntriesFromIterable: { + url: 'https://262.ecma-international.org/10.0/#sec-add-entries-from-iterable' + }, + AddRestrictedFunctionProperties: { + url: 'https://262.ecma-international.org/10.0/#sec-addrestrictedfunctionproperties' + }, + AddWaiter: { + url: 'https://262.ecma-international.org/10.0/#sec-addwaiter' + }, + AdvanceStringIndex: { + url: 'https://262.ecma-international.org/10.0/#sec-advancestringindex' + }, + 'agent-order': { + url: 'https://262.ecma-international.org/10.0/#sec-agent-order' + }, + AgentCanSuspend: { + url: 'https://262.ecma-international.org/10.0/#sec-agentcansuspend' + }, + AgentSignifier: { + url: 'https://262.ecma-international.org/10.0/#sec-agentsignifier' + }, + AllocateArrayBuffer: { + url: 'https://262.ecma-international.org/10.0/#sec-allocatearraybuffer' + }, + AllocateSharedArrayBuffer: { + url: 'https://262.ecma-international.org/10.0/#sec-allocatesharedarraybuffer' + }, + AllocateTypedArray: { + url: 'https://262.ecma-international.org/10.0/#sec-allocatetypedarray' + }, + AllocateTypedArrayBuffer: { + url: 'https://262.ecma-international.org/10.0/#sec-allocatetypedarraybuffer' + }, + ArrayCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-arraycreate' + }, + ArraySetLength: { + url: 'https://262.ecma-international.org/10.0/#sec-arraysetlength' + }, + ArraySpeciesCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-arrayspeciescreate' + }, + AsyncFromSyncIteratorContinuation: { + url: 'https://262.ecma-international.org/10.0/#sec-asyncfromsynciteratorcontinuation' + }, + AsyncFunctionCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-async-functions-abstract-operations-async-function-create' + }, + AsyncFunctionStart: { + url: 'https://262.ecma-international.org/10.0/#sec-async-functions-abstract-operations-async-function-start' + }, + AsyncGeneratorEnqueue: { + url: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratorenqueue' + }, + AsyncGeneratorFunctionCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratorfunctioncreate' + }, + AsyncGeneratorReject: { + url: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratorreject' + }, + AsyncGeneratorResolve: { + url: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratorresolve' + }, + AsyncGeneratorResumeNext: { + url: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratorresumenext' + }, + AsyncGeneratorStart: { + url: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratorstart' + }, + AsyncGeneratorYield: { + url: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratoryield' + }, + AsyncIteratorClose: { + url: 'https://262.ecma-international.org/10.0/#sec-asynciteratorclose' + }, + AtomicLoad: { + url: 'https://262.ecma-international.org/10.0/#sec-atomicload' + }, + AtomicReadModifyWrite: { + url: 'https://262.ecma-international.org/10.0/#sec-atomicreadmodifywrite' + }, + Await: { + url: 'https://262.ecma-international.org/10.0/#await' + }, + BackreferenceMatcher: { + url: 'https://262.ecma-international.org/10.0/#sec-backreference-matcher' + }, + BlockDeclarationInstantiation: { + url: 'https://262.ecma-international.org/10.0/#sec-blockdeclarationinstantiation' + }, + BoundFunctionCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-boundfunctioncreate' + }, + Call: { + url: 'https://262.ecma-international.org/10.0/#sec-call' + }, + Canonicalize: { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-canonicalize-ch' + }, + CanonicalNumericIndexString: { + url: 'https://262.ecma-international.org/10.0/#sec-canonicalnumericindexstring' + }, + CaseClauseIsSelected: { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-caseclauseisselected' + }, + CharacterRange: { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-characterrange-abstract-operation' + }, + CharacterRangeOrUnion: { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation' + }, + CharacterSetMatcher: { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation' + }, + CloneArrayBuffer: { + url: 'https://262.ecma-international.org/10.0/#sec-clonearraybuffer' + }, + CompletePropertyDescriptor: { + url: 'https://262.ecma-international.org/10.0/#sec-completepropertydescriptor' + }, + Completion: { + url: 'https://262.ecma-international.org/10.0/#sec-completion-record-specification-type' + }, + CompletionRecord: { + url: 'https://262.ecma-international.org/10.0/#sec-completion-record-specification-type' + }, + ComposeWriteEventBytes: { + url: 'https://262.ecma-international.org/10.0/#sec-composewriteeventbytes' + }, + Construct: { + url: 'https://262.ecma-international.org/10.0/#sec-construct' + }, + CopyDataBlockBytes: { + url: 'https://262.ecma-international.org/10.0/#sec-copydatablockbytes' + }, + CopyDataProperties: { + url: 'https://262.ecma-international.org/10.0/#sec-copydataproperties' + }, + CreateArrayFromList: { + url: 'https://262.ecma-international.org/10.0/#sec-createarrayfromlist' + }, + CreateArrayIterator: { + url: 'https://262.ecma-international.org/10.0/#sec-createarrayiterator' + }, + CreateAsyncFromSyncIterator: { + url: 'https://262.ecma-international.org/10.0/#sec-createasyncfromsynciterator' + }, + CreateBuiltinFunction: { + url: 'https://262.ecma-international.org/10.0/#sec-createbuiltinfunction' + }, + CreateByteDataBlock: { + url: 'https://262.ecma-international.org/10.0/#sec-createbytedatablock' + }, + CreateDataProperty: { + url: 'https://262.ecma-international.org/10.0/#sec-createdataproperty' + }, + CreateDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/10.0/#sec-createdatapropertyorthrow' + }, + CreateDynamicFunction: { + url: 'https://262.ecma-international.org/10.0/#sec-createdynamicfunction' + }, + CreateHTML: { + url: 'https://262.ecma-international.org/10.0/#sec-createhtml' + }, + CreateIntrinsics: { + url: 'https://262.ecma-international.org/10.0/#sec-createintrinsics' + }, + CreateIterResultObject: { + url: 'https://262.ecma-international.org/10.0/#sec-createiterresultobject' + }, + CreateListFromArrayLike: { + url: 'https://262.ecma-international.org/10.0/#sec-createlistfromarraylike' + }, + CreateListIteratorRecord: { + url: 'https://262.ecma-international.org/10.0/#sec-createlistiteratorRecord' + }, + CreateMapIterator: { + url: 'https://262.ecma-international.org/10.0/#sec-createmapiterator' + }, + CreateMappedArgumentsObject: { + url: 'https://262.ecma-international.org/10.0/#sec-createmappedargumentsobject' + }, + CreateMethodProperty: { + url: 'https://262.ecma-international.org/10.0/#sec-createmethodproperty' + }, + CreatePerIterationEnvironment: { + url: 'https://262.ecma-international.org/10.0/#sec-createperiterationenvironment' + }, + CreateRealm: { + url: 'https://262.ecma-international.org/10.0/#sec-createrealm' + }, + CreateResolvingFunctions: { + url: 'https://262.ecma-international.org/10.0/#sec-createresolvingfunctions' + }, + CreateSetIterator: { + url: 'https://262.ecma-international.org/10.0/#sec-createsetiterator' + }, + CreateSharedByteDataBlock: { + url: 'https://262.ecma-international.org/10.0/#sec-createsharedbytedatablock' + }, + CreateStringIterator: { + url: 'https://262.ecma-international.org/10.0/#sec-createstringiterator' + }, + CreateUnmappedArgumentsObject: { + url: 'https://262.ecma-international.org/10.0/#sec-createunmappedargumentsobject' + }, + DateFromTime: { + url: 'https://262.ecma-international.org/10.0/#sec-date-number' + }, + DateString: { + url: 'https://262.ecma-international.org/10.0/#sec-datestring' + }, + Day: { + url: 'https://262.ecma-international.org/10.0/#eqn-Day' + }, + DayFromYear: { + url: 'https://262.ecma-international.org/10.0/#eqn-DaysFromYear' + }, + DaysInYear: { + url: 'https://262.ecma-international.org/10.0/#eqn-DaysInYear' + }, + DayWithinYear: { + url: 'https://262.ecma-international.org/10.0/#eqn-DayWithinYear' + }, + Decode: { + url: 'https://262.ecma-international.org/10.0/#sec-decode' + }, + DefinePropertyOrThrow: { + url: 'https://262.ecma-international.org/10.0/#sec-definepropertyorthrow' + }, + DeletePropertyOrThrow: { + url: 'https://262.ecma-international.org/10.0/#sec-deletepropertyorthrow' + }, + DetachArrayBuffer: { + url: 'https://262.ecma-international.org/10.0/#sec-detacharraybuffer' + }, + Encode: { + url: 'https://262.ecma-international.org/10.0/#sec-encode' + }, + EnqueueJob: { + url: 'https://262.ecma-international.org/10.0/#sec-enqueuejob' + }, + EnterCriticalSection: { + url: 'https://262.ecma-international.org/10.0/#sec-entercriticalsection' + }, + EnumerableOwnPropertyNames: { + url: 'https://262.ecma-international.org/10.0/#sec-enumerableownpropertynames' + }, + EnumerateObjectProperties: { + url: 'https://262.ecma-international.org/10.0/#sec-enumerate-object-properties' + }, + EscapeRegExpPattern: { + url: 'https://262.ecma-international.org/10.0/#sec-escaperegexppattern' + }, + EvalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/10.0/#sec-evaldeclarationinstantiation' + }, + EvaluateCall: { + url: 'https://262.ecma-international.org/10.0/#sec-evaluatecall' + }, + EvaluateNew: { + url: 'https://262.ecma-international.org/10.0/#sec-evaluatenew' + }, + EventSet: { + url: 'https://262.ecma-international.org/10.0/#sec-event-set' + }, + ExecuteModule: { + url: 'https://262.ecma-international.org/10.0/#sec-source-text-module-record-execute-module' + }, + FlattenIntoArray: { + url: 'https://262.ecma-international.org/10.0/#sec-flattenintoarray' + }, + floor: { + url: 'https://262.ecma-international.org/10.0/#eqn-floor' + }, + ForBodyEvaluation: { + url: 'https://262.ecma-international.org/10.0/#sec-forbodyevaluation' + }, + 'ForIn/OfBodyEvaluation': { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset' + }, + 'ForIn/OfHeadEvaluation': { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind' + }, + FromPropertyDescriptor: { + url: 'https://262.ecma-international.org/10.0/#sec-frompropertydescriptor' + }, + FulfillPromise: { + url: 'https://262.ecma-international.org/10.0/#sec-fulfillpromise' + }, + FunctionAllocate: { + url: 'https://262.ecma-international.org/10.0/#sec-functionallocate' + }, + FunctionCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-functioncreate' + }, + FunctionDeclarationInstantiation: { + url: 'https://262.ecma-international.org/10.0/#sec-functiondeclarationinstantiation' + }, + FunctionInitialize: { + url: 'https://262.ecma-international.org/10.0/#sec-functioninitialize' + }, + GeneratorFunctionCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-generatorfunctioncreate' + }, + GeneratorResume: { + url: 'https://262.ecma-international.org/10.0/#sec-generatorresume' + }, + GeneratorResumeAbrupt: { + url: 'https://262.ecma-international.org/10.0/#sec-generatorresumeabrupt' + }, + GeneratorStart: { + url: 'https://262.ecma-international.org/10.0/#sec-generatorstart' + }, + GeneratorValidate: { + url: 'https://262.ecma-international.org/10.0/#sec-generatorvalidate' + }, + GeneratorYield: { + url: 'https://262.ecma-international.org/10.0/#sec-generatoryield' + }, + Get: { + url: 'https://262.ecma-international.org/10.0/#sec-get-o-p' + }, + GetActiveScriptOrModule: { + url: 'https://262.ecma-international.org/10.0/#sec-getactivescriptormodule' + }, + GetBase: { + url: 'https://262.ecma-international.org/10.0/#sec-getbase' + }, + GetFunctionRealm: { + url: 'https://262.ecma-international.org/10.0/#sec-getfunctionrealm' + }, + GetGeneratorKind: { + url: 'https://262.ecma-international.org/10.0/#sec-getgeneratorkind' + }, + GetGlobalObject: { + url: 'https://262.ecma-international.org/10.0/#sec-getglobalobject' + }, + GetIdentifierReference: { + url: 'https://262.ecma-international.org/10.0/#sec-getidentifierreference' + }, + GetIterator: { + url: 'https://262.ecma-international.org/10.0/#sec-getiterator' + }, + GetMethod: { + url: 'https://262.ecma-international.org/10.0/#sec-getmethod' + }, + GetModifySetValueInBuffer: { + url: 'https://262.ecma-international.org/10.0/#sec-getmodifysetvalueinbuffer' + }, + GetModuleNamespace: { + url: 'https://262.ecma-international.org/10.0/#sec-getmodulenamespace' + }, + GetNewTarget: { + url: 'https://262.ecma-international.org/10.0/#sec-getnewtarget' + }, + GetOwnPropertyKeys: { + url: 'https://262.ecma-international.org/10.0/#sec-getownpropertykeys' + }, + GetPrototypeFromConstructor: { + url: 'https://262.ecma-international.org/10.0/#sec-getprototypefromconstructor' + }, + GetReferencedName: { + url: 'https://262.ecma-international.org/10.0/#sec-getreferencedname' + }, + GetSubstitution: { + url: 'https://262.ecma-international.org/10.0/#sec-getsubstitution' + }, + GetSuperConstructor: { + url: 'https://262.ecma-international.org/10.0/#sec-getsuperconstructor' + }, + GetTemplateObject: { + url: 'https://262.ecma-international.org/10.0/#sec-gettemplateobject' + }, + GetThisEnvironment: { + url: 'https://262.ecma-international.org/10.0/#sec-getthisenvironment' + }, + GetThisValue: { + url: 'https://262.ecma-international.org/10.0/#sec-getthisvalue' + }, + GetV: { + url: 'https://262.ecma-international.org/10.0/#sec-getv' + }, + GetValue: { + url: 'https://262.ecma-international.org/10.0/#sec-getvalue' + }, + GetValueFromBuffer: { + url: 'https://262.ecma-international.org/10.0/#sec-getvaluefrombuffer' + }, + GetViewValue: { + url: 'https://262.ecma-international.org/10.0/#sec-getviewvalue' + }, + GetWaiterList: { + url: 'https://262.ecma-international.org/10.0/#sec-getwaiterlist' + }, + GlobalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/10.0/#sec-globaldeclarationinstantiation' + }, + 'happens-before': { + url: 'https://262.ecma-international.org/10.0/#sec-happens-before' + }, + HasOwnProperty: { + url: 'https://262.ecma-international.org/10.0/#sec-hasownproperty' + }, + HasPrimitiveBase: { + url: 'https://262.ecma-international.org/10.0/#sec-hasprimitivebase' + }, + HasProperty: { + url: 'https://262.ecma-international.org/10.0/#sec-hasproperty' + }, + 'host-synchronizes-with': { + url: 'https://262.ecma-international.org/10.0/#sec-host-synchronizes-with' + }, + HostEventSet: { + url: 'https://262.ecma-international.org/10.0/#sec-hosteventset' + }, + HourFromTime: { + url: 'https://262.ecma-international.org/10.0/#eqn-HourFromTime' + }, + IfAbruptRejectPromise: { + url: 'https://262.ecma-international.org/10.0/#sec-ifabruptrejectpromise' + }, + ImportedLocalNames: { + url: 'https://262.ecma-international.org/10.0/#sec-importedlocalnames' + }, + InitializeBoundName: { + url: 'https://262.ecma-international.org/10.0/#sec-initializeboundname' + }, + InitializeEnvironment: { + url: 'https://262.ecma-international.org/10.0/#sec-source-text-module-record-initialize-environment' + }, + InitializeHostDefinedRealm: { + url: 'https://262.ecma-international.org/10.0/#sec-initializehostdefinedrealm' + }, + InitializeReferencedBinding: { + url: 'https://262.ecma-international.org/10.0/#sec-initializereferencedbinding' + }, + InLeapYear: { + url: 'https://262.ecma-international.org/10.0/#eqn-InLeapYear' + }, + InnerModuleEvaluation: { + url: 'https://262.ecma-international.org/10.0/#sec-innermoduleevaluation' + }, + InnerModuleInstantiation: { + url: 'https://262.ecma-international.org/10.0/#sec-innermoduleinstantiation' + }, + InstanceofOperator: { + url: 'https://262.ecma-international.org/10.0/#sec-instanceofoperator' + }, + IntegerIndexedElementGet: { + url: 'https://262.ecma-international.org/10.0/#sec-integerindexedelementget' + }, + IntegerIndexedElementSet: { + url: 'https://262.ecma-international.org/10.0/#sec-integerindexedelementset' + }, + IntegerIndexedObjectCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-integerindexedobjectcreate' + }, + InternalizeJSONProperty: { + url: 'https://262.ecma-international.org/10.0/#sec-internalizejsonproperty' + }, + Invoke: { + url: 'https://262.ecma-international.org/10.0/#sec-invoke' + }, + IsAccessorDescriptor: { + url: 'https://262.ecma-international.org/10.0/#sec-isaccessordescriptor' + }, + IsAnonymousFunctionDefinition: { + url: 'https://262.ecma-international.org/10.0/#sec-isanonymousfunctiondefinition' + }, + IsArray: { + url: 'https://262.ecma-international.org/10.0/#sec-isarray' + }, + IsCallable: { + url: 'https://262.ecma-international.org/10.0/#sec-iscallable' + }, + IsCompatiblePropertyDescriptor: { + url: 'https://262.ecma-international.org/10.0/#sec-iscompatiblepropertydescriptor' + }, + IsConcatSpreadable: { + url: 'https://262.ecma-international.org/10.0/#sec-isconcatspreadable' + }, + IsConstructor: { + url: 'https://262.ecma-international.org/10.0/#sec-isconstructor' + }, + IsDataDescriptor: { + url: 'https://262.ecma-international.org/10.0/#sec-isdatadescriptor' + }, + IsDetachedBuffer: { + url: 'https://262.ecma-international.org/10.0/#sec-isdetachedbuffer' + }, + IsExtensible: { + url: 'https://262.ecma-international.org/10.0/#sec-isextensible-o' + }, + IsGenericDescriptor: { + url: 'https://262.ecma-international.org/10.0/#sec-isgenericdescriptor' + }, + IsInTailPosition: { + url: 'https://262.ecma-international.org/10.0/#sec-isintailposition' + }, + IsInteger: { + url: 'https://262.ecma-international.org/10.0/#sec-isinteger' + }, + IsLabelledFunction: { + url: 'https://262.ecma-international.org/10.0/#sec-islabelledfunction' + }, + IsPromise: { + url: 'https://262.ecma-international.org/10.0/#sec-ispromise' + }, + IsPropertyKey: { + url: 'https://262.ecma-international.org/10.0/#sec-ispropertykey' + }, + IsPropertyReference: { + url: 'https://262.ecma-international.org/10.0/#sec-ispropertyreference' + }, + IsRegExp: { + url: 'https://262.ecma-international.org/10.0/#sec-isregexp' + }, + IsSharedArrayBuffer: { + url: 'https://262.ecma-international.org/10.0/#sec-issharedarraybuffer' + }, + IsStrictReference: { + url: 'https://262.ecma-international.org/10.0/#sec-isstrictreference' + }, + IsStringPrefix: { + url: 'https://262.ecma-international.org/10.0/#sec-isstringprefix' + }, + IsSuperReference: { + url: 'https://262.ecma-international.org/10.0/#sec-issuperreference' + }, + IsUnresolvableReference: { + url: 'https://262.ecma-international.org/10.0/#sec-isunresolvablereference' + }, + IsWordChar: { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-iswordchar-abstract-operation' + }, + IterableToList: { + url: 'https://262.ecma-international.org/10.0/#sec-iterabletolist' + }, + IteratorClose: { + url: 'https://262.ecma-international.org/10.0/#sec-iteratorclose' + }, + IteratorComplete: { + url: 'https://262.ecma-international.org/10.0/#sec-iteratorcomplete' + }, + IteratorNext: { + url: 'https://262.ecma-international.org/10.0/#sec-iteratornext' + }, + IteratorStep: { + url: 'https://262.ecma-international.org/10.0/#sec-iteratorstep' + }, + IteratorValue: { + url: 'https://262.ecma-international.org/10.0/#sec-iteratorvalue' + }, + LeaveCriticalSection: { + url: 'https://262.ecma-international.org/10.0/#sec-leavecriticalsection' + }, + LocalTime: { + url: 'https://262.ecma-international.org/10.0/#sec-localtime' + }, + LoopContinues: { + url: 'https://262.ecma-international.org/10.0/#sec-loopcontinues' + }, + MakeArgGetter: { + url: 'https://262.ecma-international.org/10.0/#sec-makearggetter' + }, + MakeArgSetter: { + url: 'https://262.ecma-international.org/10.0/#sec-makeargsetter' + }, + MakeClassConstructor: { + url: 'https://262.ecma-international.org/10.0/#sec-makeclassconstructor' + }, + MakeConstructor: { + url: 'https://262.ecma-international.org/10.0/#sec-makeconstructor' + }, + MakeDate: { + url: 'https://262.ecma-international.org/10.0/#sec-makedate' + }, + MakeDay: { + url: 'https://262.ecma-international.org/10.0/#sec-makeday' + }, + MakeMethod: { + url: 'https://262.ecma-international.org/10.0/#sec-makemethod' + }, + MakeSuperPropertyReference: { + url: 'https://262.ecma-international.org/10.0/#sec-makesuperpropertyreference' + }, + MakeTime: { + url: 'https://262.ecma-international.org/10.0/#sec-maketime' + }, + max: { + url: 'https://262.ecma-international.org/10.0/#eqn-max' + }, + 'memory-order': { + url: 'https://262.ecma-international.org/10.0/#sec-memory-order' + }, + min: { + url: 'https://262.ecma-international.org/10.0/#eqn-min' + }, + MinFromTime: { + url: 'https://262.ecma-international.org/10.0/#eqn-MinFromTime' + }, + ModuleNamespaceCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-modulenamespacecreate' + }, + modulo: { + url: 'https://262.ecma-international.org/10.0/#eqn-modulo' + }, + MonthFromTime: { + url: 'https://262.ecma-international.org/10.0/#eqn-MonthFromTime' + }, + msFromTime: { + url: 'https://262.ecma-international.org/10.0/#eqn-msFromTime' + }, + NewDeclarativeEnvironment: { + url: 'https://262.ecma-international.org/10.0/#sec-newdeclarativeenvironment' + }, + NewFunctionEnvironment: { + url: 'https://262.ecma-international.org/10.0/#sec-newfunctionenvironment' + }, + NewGlobalEnvironment: { + url: 'https://262.ecma-international.org/10.0/#sec-newglobalenvironment' + }, + NewModuleEnvironment: { + url: 'https://262.ecma-international.org/10.0/#sec-newmoduleenvironment' + }, + NewObjectEnvironment: { + url: 'https://262.ecma-international.org/10.0/#sec-newobjectenvironment' + }, + NewPromiseCapability: { + url: 'https://262.ecma-international.org/10.0/#sec-newpromisecapability' + }, + NormalCompletion: { + url: 'https://262.ecma-international.org/10.0/#sec-normalcompletion' + }, + NotifyWaiter: { + url: 'https://262.ecma-international.org/10.0/#sec-notifywaiter' + }, + NumberToRawBytes: { + url: 'https://262.ecma-international.org/10.0/#sec-numbertorawbytes' + }, + NumberToString: { + url: 'https://262.ecma-international.org/10.0/#sec-tostring-applied-to-the-number-type' + }, + ObjectCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-objectcreate' + }, + ObjectDefineProperties: { + url: 'https://262.ecma-international.org/10.0/#sec-objectdefineproperties' + }, + OrdinaryCallBindThis: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinarycallbindthis' + }, + OrdinaryCallEvaluateBody: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinarycallevaluatebody' + }, + OrdinaryCreateFromConstructor: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinarycreatefromconstructor' + }, + OrdinaryDefineOwnProperty: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinarydefineownproperty' + }, + OrdinaryDelete: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinarydelete' + }, + OrdinaryGet: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinaryget' + }, + OrdinaryGetOwnProperty: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinarygetownproperty' + }, + OrdinaryGetPrototypeOf: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinarygetprototypeof' + }, + OrdinaryHasInstance: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinaryhasinstance' + }, + OrdinaryHasProperty: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinaryhasproperty' + }, + OrdinaryIsExtensible: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinaryisextensible' + }, + OrdinaryOwnPropertyKeys: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinaryownpropertykeys' + }, + OrdinaryPreventExtensions: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinarypreventextensions' + }, + OrdinarySet: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinaryset' + }, + OrdinarySetPrototypeOf: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinarysetprototypeof' + }, + OrdinarySetWithOwnDescriptor: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinarysetwithowndescriptor' + }, + OrdinaryToPrimitive: { + url: 'https://262.ecma-international.org/10.0/#sec-ordinarytoprimitive' + }, + ParseModule: { + url: 'https://262.ecma-international.org/10.0/#sec-parsemodule' + }, + ParseScript: { + url: 'https://262.ecma-international.org/10.0/#sec-parse-script' + }, + PerformEval: { + url: 'https://262.ecma-international.org/10.0/#sec-performeval' + }, + PerformPromiseAll: { + url: 'https://262.ecma-international.org/10.0/#sec-performpromiseall' + }, + PerformPromiseRace: { + url: 'https://262.ecma-international.org/10.0/#sec-performpromiserace' + }, + PerformPromiseThen: { + url: 'https://262.ecma-international.org/10.0/#sec-performpromisethen' + }, + PrepareForOrdinaryCall: { + url: 'https://262.ecma-international.org/10.0/#sec-prepareforordinarycall' + }, + PrepareForTailCall: { + url: 'https://262.ecma-international.org/10.0/#sec-preparefortailcall' + }, + PromiseReactionJob: { + url: 'https://262.ecma-international.org/10.0/#sec-promisereactionjob' + }, + PromiseResolve: { + url: 'https://262.ecma-international.org/10.0/#sec-promise-resolve' + }, + PromiseResolveThenableJob: { + url: 'https://262.ecma-international.org/10.0/#sec-promiseresolvethenablejob' + }, + ProxyCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-proxycreate' + }, + PutValue: { + url: 'https://262.ecma-international.org/10.0/#sec-putvalue' + }, + QuoteJSONString: { + url: 'https://262.ecma-international.org/10.0/#sec-quotejsonstring' + }, + RawBytesToNumber: { + url: 'https://262.ecma-international.org/10.0/#sec-rawbytestonumber' + }, + 'reads-bytes-from': { + url: 'https://262.ecma-international.org/10.0/#sec-reads-bytes-from' + }, + 'reads-from': { + url: 'https://262.ecma-international.org/10.0/#sec-reads-from' + }, + RegExpAlloc: { + url: 'https://262.ecma-international.org/10.0/#sec-regexpalloc' + }, + RegExpBuiltinExec: { + url: 'https://262.ecma-international.org/10.0/#sec-regexpbuiltinexec' + }, + RegExpCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-regexpcreate' + }, + RegExpExec: { + url: 'https://262.ecma-international.org/10.0/#sec-regexpexec' + }, + RegExpInitialize: { + url: 'https://262.ecma-international.org/10.0/#sec-regexpinitialize' + }, + RejectPromise: { + url: 'https://262.ecma-international.org/10.0/#sec-rejectpromise' + }, + RemoveWaiter: { + url: 'https://262.ecma-international.org/10.0/#sec-removewaiter' + }, + RemoveWaiters: { + url: 'https://262.ecma-international.org/10.0/#sec-removewaiters' + }, + RepeatMatcher: { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-repeatmatcher-abstract-operation' + }, + RequireObjectCoercible: { + url: 'https://262.ecma-international.org/10.0/#sec-requireobjectcoercible' + }, + ResolveBinding: { + url: 'https://262.ecma-international.org/10.0/#sec-resolvebinding' + }, + ResolveThisBinding: { + url: 'https://262.ecma-international.org/10.0/#sec-resolvethisbinding' + }, + ReturnIfAbrupt: { + url: 'https://262.ecma-international.org/10.0/#sec-returnifabrupt' + }, + RunJobs: { + url: 'https://262.ecma-international.org/10.0/#sec-runjobs' + }, + SameValue: { + url: 'https://262.ecma-international.org/10.0/#sec-samevalue' + }, + SameValueNonNumber: { + url: 'https://262.ecma-international.org/10.0/#sec-samevaluenonnumber' + }, + SameValueZero: { + url: 'https://262.ecma-international.org/10.0/#sec-samevaluezero' + }, + ScriptEvaluation: { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-scriptevaluation' + }, + ScriptEvaluationJob: { + url: 'https://262.ecma-international.org/10.0/#sec-scriptevaluationjob' + }, + SecFromTime: { + url: 'https://262.ecma-international.org/10.0/#eqn-SecFromTime' + }, + SerializeJSONArray: { + url: 'https://262.ecma-international.org/10.0/#sec-serializejsonarray' + }, + SerializeJSONObject: { + url: 'https://262.ecma-international.org/10.0/#sec-serializejsonobject' + }, + SerializeJSONProperty: { + url: 'https://262.ecma-international.org/10.0/#sec-serializejsonproperty' + }, + Set: { + url: 'https://262.ecma-international.org/10.0/#sec-set-o-p-v-throw' + }, + SetDefaultGlobalBindings: { + url: 'https://262.ecma-international.org/10.0/#sec-setdefaultglobalbindings' + }, + SetFunctionLength: { + url: 'https://262.ecma-international.org/10.0/#sec-setfunctionlength' + }, + SetFunctionName: { + url: 'https://262.ecma-international.org/10.0/#sec-setfunctionname' + }, + SetImmutablePrototype: { + url: 'https://262.ecma-international.org/10.0/#sec-set-immutable-prototype' + }, + SetIntegrityLevel: { + url: 'https://262.ecma-international.org/10.0/#sec-setintegritylevel' + }, + SetRealmGlobalObject: { + url: 'https://262.ecma-international.org/10.0/#sec-setrealmglobalobject' + }, + SetValueInBuffer: { + url: 'https://262.ecma-international.org/10.0/#sec-setvalueinbuffer' + }, + SetViewValue: { + url: 'https://262.ecma-international.org/10.0/#sec-setviewvalue' + }, + SharedDataBlockEventSet: { + url: 'https://262.ecma-international.org/10.0/#sec-sharedatablockeventset' + }, + SortCompare: { + url: 'https://262.ecma-international.org/10.0/#sec-sortcompare' + }, + SpeciesConstructor: { + url: 'https://262.ecma-international.org/10.0/#sec-speciesconstructor' + }, + SplitMatch: { + url: 'https://262.ecma-international.org/10.0/#sec-splitmatch' + }, + 'Strict Equality Comparison': { + url: 'https://262.ecma-international.org/10.0/#sec-strict-equality-comparison' + }, + StringCreate: { + url: 'https://262.ecma-international.org/10.0/#sec-stringcreate' + }, + StringGetOwnProperty: { + url: 'https://262.ecma-international.org/10.0/#sec-stringgetownproperty' + }, + Suspend: { + url: 'https://262.ecma-international.org/10.0/#sec-suspend' + }, + SymbolDescriptiveString: { + url: 'https://262.ecma-international.org/10.0/#sec-symboldescriptivestring' + }, + SynchronizeEventSet: { + url: 'https://262.ecma-international.org/10.0/#sec-synchronizeeventset' + }, + 'synchronizes-with': { + url: 'https://262.ecma-international.org/10.0/#sec-synchronizes-with' + }, + TestIntegrityLevel: { + url: 'https://262.ecma-international.org/10.0/#sec-testintegritylevel' + }, + thisBooleanValue: { + url: 'https://262.ecma-international.org/10.0/#sec-thisbooleanvalue' + }, + thisNumberValue: { + url: 'https://262.ecma-international.org/10.0/#sec-thisnumbervalue' + }, + thisStringValue: { + url: 'https://262.ecma-international.org/10.0/#sec-thisstringvalue' + }, + thisSymbolValue: { + url: 'https://262.ecma-international.org/10.0/#sec-thissymbolvalue' + }, + thisTimeValue: { + url: 'https://262.ecma-international.org/10.0/#sec-thistimevalue' + }, + ThrowCompletion: { + url: 'https://262.ecma-international.org/10.0/#sec-throwcompletion' + }, + TimeClip: { + url: 'https://262.ecma-international.org/10.0/#sec-timeclip' + }, + TimeFromYear: { + url: 'https://262.ecma-international.org/10.0/#eqn-TimeFromYear' + }, + TimeString: { + url: 'https://262.ecma-international.org/10.0/#sec-timestring' + }, + TimeWithinDay: { + url: 'https://262.ecma-international.org/10.0/#eqn-TimeWithinDay' + }, + TimeZoneString: { + url: 'https://262.ecma-international.org/10.0/#sec-timezoneestring' + }, + ToBoolean: { + url: 'https://262.ecma-international.org/10.0/#sec-toboolean' + }, + ToDateString: { + url: 'https://262.ecma-international.org/10.0/#sec-todatestring' + }, + ToIndex: { + url: 'https://262.ecma-international.org/10.0/#sec-toindex' + }, + ToInt16: { + url: 'https://262.ecma-international.org/10.0/#sec-toint16' + }, + ToInt32: { + url: 'https://262.ecma-international.org/10.0/#sec-toint32' + }, + ToInt8: { + url: 'https://262.ecma-international.org/10.0/#sec-toint8' + }, + ToInteger: { + url: 'https://262.ecma-international.org/10.0/#sec-tointeger' + }, + ToLength: { + url: 'https://262.ecma-international.org/10.0/#sec-tolength' + }, + ToNumber: { + url: 'https://262.ecma-international.org/10.0/#sec-tonumber' + }, + ToObject: { + url: 'https://262.ecma-international.org/10.0/#sec-toobject' + }, + TopLevelModuleEvaluationJob: { + url: 'https://262.ecma-international.org/10.0/#sec-toplevelmoduleevaluationjob' + }, + ToPrimitive: { + url: 'https://262.ecma-international.org/10.0/#sec-toprimitive' + }, + ToPropertyDescriptor: { + url: 'https://262.ecma-international.org/10.0/#sec-topropertydescriptor' + }, + ToPropertyKey: { + url: 'https://262.ecma-international.org/10.0/#sec-topropertykey' + }, + ToString: { + url: 'https://262.ecma-international.org/10.0/#sec-tostring' + }, + ToUint16: { + url: 'https://262.ecma-international.org/10.0/#sec-touint16' + }, + ToUint32: { + url: 'https://262.ecma-international.org/10.0/#sec-touint32' + }, + ToUint8: { + url: 'https://262.ecma-international.org/10.0/#sec-touint8' + }, + ToUint8Clamp: { + url: 'https://262.ecma-international.org/10.0/#sec-touint8clamp' + }, + TriggerPromiseReactions: { + url: 'https://262.ecma-international.org/10.0/#sec-triggerpromisereactions' + }, + TrimString: { + url: 'https://262.ecma-international.org/10.0/#sec-trimstring' + }, + Type: { + url: 'https://262.ecma-international.org/10.0/#sec-ecmascript-data-types-and-values' + }, + TypedArrayCreate: { + url: 'https://262.ecma-international.org/10.0/#typedarray-create' + }, + TypedArraySpeciesCreate: { + url: 'https://262.ecma-international.org/10.0/#typedarray-species-create' + }, + UnicodeEscape: { + url: 'https://262.ecma-international.org/10.0/#sec-unicodeescape' + }, + UnicodeMatchProperty: { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-unicodematchproperty-p' + }, + UnicodeMatchPropertyValue: { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v' + }, + UpdateEmpty: { + url: 'https://262.ecma-international.org/10.0/#sec-updateempty' + }, + UTC: { + url: 'https://262.ecma-international.org/10.0/#sec-utc-t' + }, + UTF16Decode: { + url: 'https://262.ecma-international.org/10.0/#sec-utf16decode' + }, + UTF16Encoding: { + url: 'https://262.ecma-international.org/10.0/#sec-utf16encoding' + }, + ValidateAndApplyPropertyDescriptor: { + url: 'https://262.ecma-international.org/10.0/#sec-validateandapplypropertydescriptor' + }, + ValidateAtomicAccess: { + url: 'https://262.ecma-international.org/10.0/#sec-validateatomicaccess' + }, + ValidateSharedIntegerTypedArray: { + url: 'https://262.ecma-international.org/10.0/#sec-validatesharedintegertypedarray' + }, + ValidateTypedArray: { + url: 'https://262.ecma-international.org/10.0/#sec-validatetypedarray' + }, + ValueOfReadEvent: { + url: 'https://262.ecma-international.org/10.0/#sec-valueofreadevent' + }, + WeekDay: { + url: 'https://262.ecma-international.org/10.0/#sec-week-day' + }, + WordCharacters: { + url: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-wordcharacters-abstract-operation' + }, + YearFromTime: { + url: 'https://262.ecma-international.org/10.0/#eqn-YearFromTime' + } +}; diff --git a/node_modules/es-abstract/operations/2020.js b/node_modules/es-abstract/operations/2020.js new file mode 100644 index 0000000000000000000000000000000000000000..1e448539f245faf0fcfa7ea5e7d5b657b02ae438 --- /dev/null +++ b/node_modules/es-abstract/operations/2020.js @@ -0,0 +1,1228 @@ +'use strict'; + +module.exports = { + abs: { + url: 'https://262.ecma-international.org/11.0/#eqn-abs' + }, + 'Abstract Equality Comparison': { + url: 'https://262.ecma-international.org/11.0/#sec-abstract-equality-comparison' + }, + 'Abstract Relational Comparison': { + url: 'https://262.ecma-international.org/11.0/#sec-abstract-relational-comparison' + }, + AddEntriesFromIterable: { + url: 'https://262.ecma-international.org/11.0/#sec-add-entries-from-iterable' + }, + AddRestrictedFunctionProperties: { + url: 'https://262.ecma-international.org/11.0/#sec-addrestrictedfunctionproperties' + }, + AddWaiter: { + url: 'https://262.ecma-international.org/11.0/#sec-addwaiter' + }, + AdvanceStringIndex: { + url: 'https://262.ecma-international.org/11.0/#sec-advancestringindex' + }, + 'agent-order': { + url: 'https://262.ecma-international.org/11.0/#sec-agent-order' + }, + AgentCanSuspend: { + url: 'https://262.ecma-international.org/11.0/#sec-agentcansuspend' + }, + AgentSignifier: { + url: 'https://262.ecma-international.org/11.0/#sec-agentsignifier' + }, + AllocateArrayBuffer: { + url: 'https://262.ecma-international.org/11.0/#sec-allocatearraybuffer' + }, + AllocateSharedArrayBuffer: { + url: 'https://262.ecma-international.org/11.0/#sec-allocatesharedarraybuffer' + }, + AllocateTypedArray: { + url: 'https://262.ecma-international.org/11.0/#sec-allocatetypedarray' + }, + AllocateTypedArrayBuffer: { + url: 'https://262.ecma-international.org/11.0/#sec-allocatetypedarraybuffer' + }, + ArrayCreate: { + url: 'https://262.ecma-international.org/11.0/#sec-arraycreate' + }, + ArraySetLength: { + url: 'https://262.ecma-international.org/11.0/#sec-arraysetlength' + }, + ArraySpeciesCreate: { + url: 'https://262.ecma-international.org/11.0/#sec-arrayspeciescreate' + }, + AsyncFromSyncIteratorContinuation: { + url: 'https://262.ecma-international.org/11.0/#sec-asyncfromsynciteratorcontinuation' + }, + AsyncFunctionStart: { + url: 'https://262.ecma-international.org/11.0/#sec-async-functions-abstract-operations-async-function-start' + }, + AsyncGeneratorEnqueue: { + url: 'https://262.ecma-international.org/11.0/#sec-asyncgeneratorenqueue' + }, + AsyncGeneratorReject: { + url: 'https://262.ecma-international.org/11.0/#sec-asyncgeneratorreject' + }, + AsyncGeneratorResolve: { + url: 'https://262.ecma-international.org/11.0/#sec-asyncgeneratorresolve' + }, + AsyncGeneratorResumeNext: { + url: 'https://262.ecma-international.org/11.0/#sec-asyncgeneratorresumenext' + }, + AsyncGeneratorStart: { + url: 'https://262.ecma-international.org/11.0/#sec-asyncgeneratorstart' + }, + AsyncGeneratorYield: { + url: 'https://262.ecma-international.org/11.0/#sec-asyncgeneratoryield' + }, + AsyncIteratorClose: { + url: 'https://262.ecma-international.org/11.0/#sec-asynciteratorclose' + }, + AtomicLoad: { + url: 'https://262.ecma-international.org/11.0/#sec-atomicload' + }, + AtomicReadModifyWrite: { + url: 'https://262.ecma-international.org/11.0/#sec-atomicreadmodifywrite' + }, + Await: { + url: 'https://262.ecma-international.org/11.0/#await' + }, + BackreferenceMatcher: { + url: 'https://262.ecma-international.org/11.0/#sec-backreference-matcher' + }, + 'BigInt::add': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-add' + }, + 'BigInt::bitwiseAND': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseAND' + }, + 'BigInt::bitwiseNOT': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseNOT' + }, + 'BigInt::bitwiseOR': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseOR' + }, + 'BigInt::bitwiseXOR': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseXOR' + }, + 'BigInt::divide': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-divide' + }, + 'BigInt::equal': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-equal' + }, + 'BigInt::exponentiate': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-exponentiate' + }, + 'BigInt::leftShift': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-leftShift' + }, + 'BigInt::lessThan': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-lessThan' + }, + 'BigInt::multiply': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-multiply' + }, + 'BigInt::remainder': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-remainder' + }, + 'BigInt::sameValue': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-sameValue' + }, + 'BigInt::sameValueZero': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-sameValueZero' + }, + 'BigInt::signedRightShift': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-signedRightShift' + }, + 'BigInt::subtract': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-subtract' + }, + 'BigInt::toString': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-tostring' + }, + 'BigInt::unaryMinus': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-unaryMinus' + }, + 'BigInt::unsignedRightShift': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-unsignedRightShift' + }, + BigIntBitwiseOp: { + url: 'https://262.ecma-international.org/11.0/#sec-bigintbitwiseop' + }, + BinaryAnd: { + url: 'https://262.ecma-international.org/11.0/#sec-binaryand' + }, + BinaryOr: { + url: 'https://262.ecma-international.org/11.0/#sec-binaryor' + }, + BinaryXor: { + url: 'https://262.ecma-international.org/11.0/#sec-binaryxor' + }, + BlockDeclarationInstantiation: { + url: 'https://262.ecma-international.org/11.0/#sec-blockdeclarationinstantiation' + }, + BoundFunctionCreate: { + url: 'https://262.ecma-international.org/11.0/#sec-boundfunctioncreate' + }, + Call: { + url: 'https://262.ecma-international.org/11.0/#sec-call' + }, + Canonicalize: { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-canonicalize-ch' + }, + CanonicalNumericIndexString: { + url: 'https://262.ecma-international.org/11.0/#sec-canonicalnumericindexstring' + }, + CaseClauseIsSelected: { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-caseclauseisselected' + }, + CharacterRange: { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-characterrange-abstract-operation' + }, + CharacterRangeOrUnion: { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation' + }, + CharacterSetMatcher: { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation' + }, + CloneArrayBuffer: { + url: 'https://262.ecma-international.org/11.0/#sec-clonearraybuffer' + }, + CodePointAt: { + url: 'https://262.ecma-international.org/11.0/#sec-codepointat' + }, + CompletePropertyDescriptor: { + url: 'https://262.ecma-international.org/11.0/#sec-completepropertydescriptor' + }, + Completion: { + url: 'https://262.ecma-international.org/11.0/#sec-completion-record-specification-type' + }, + CompletionRecord: { + url: 'https://262.ecma-international.org/11.0/#sec-completion-record-specification-type' + }, + ComposeWriteEventBytes: { + url: 'https://262.ecma-international.org/11.0/#sec-composewriteeventbytes' + }, + Construct: { + url: 'https://262.ecma-international.org/11.0/#sec-construct' + }, + CopyDataBlockBytes: { + url: 'https://262.ecma-international.org/11.0/#sec-copydatablockbytes' + }, + CopyDataProperties: { + url: 'https://262.ecma-international.org/11.0/#sec-copydataproperties' + }, + CreateArrayFromList: { + url: 'https://262.ecma-international.org/11.0/#sec-createarrayfromlist' + }, + CreateArrayIterator: { + url: 'https://262.ecma-international.org/11.0/#sec-createarrayiterator' + }, + CreateAsyncFromSyncIterator: { + url: 'https://262.ecma-international.org/11.0/#sec-createasyncfromsynciterator' + }, + CreateBuiltinFunction: { + url: 'https://262.ecma-international.org/11.0/#sec-createbuiltinfunction' + }, + CreateByteDataBlock: { + url: 'https://262.ecma-international.org/11.0/#sec-createbytedatablock' + }, + CreateDataProperty: { + url: 'https://262.ecma-international.org/11.0/#sec-createdataproperty' + }, + CreateDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/11.0/#sec-createdatapropertyorthrow' + }, + CreateDynamicFunction: { + url: 'https://262.ecma-international.org/11.0/#sec-createdynamicfunction' + }, + CreateForInIterator: { + url: 'https://262.ecma-international.org/11.0/#sec-createforiniterator' + }, + CreateHTML: { + url: 'https://262.ecma-international.org/11.0/#sec-createhtml' + }, + CreateIntrinsics: { + url: 'https://262.ecma-international.org/11.0/#sec-createintrinsics' + }, + CreateIterResultObject: { + url: 'https://262.ecma-international.org/11.0/#sec-createiterresultobject' + }, + CreateListFromArrayLike: { + url: 'https://262.ecma-international.org/11.0/#sec-createlistfromarraylike' + }, + CreateListIteratorRecord: { + url: 'https://262.ecma-international.org/11.0/#sec-createlistiteratorRecord' + }, + CreateMapIterator: { + url: 'https://262.ecma-international.org/11.0/#sec-createmapiterator' + }, + CreateMappedArgumentsObject: { + url: 'https://262.ecma-international.org/11.0/#sec-createmappedargumentsobject' + }, + CreateMethodProperty: { + url: 'https://262.ecma-international.org/11.0/#sec-createmethodproperty' + }, + CreatePerIterationEnvironment: { + url: 'https://262.ecma-international.org/11.0/#sec-createperiterationenvironment' + }, + CreateRealm: { + url: 'https://262.ecma-international.org/11.0/#sec-createrealm' + }, + CreateRegExpStringIterator: { + url: 'https://262.ecma-international.org/11.0/#sec-createregexpstringiterator' + }, + CreateResolvingFunctions: { + url: 'https://262.ecma-international.org/11.0/#sec-createresolvingfunctions' + }, + CreateSetIterator: { + url: 'https://262.ecma-international.org/11.0/#sec-createsetiterator' + }, + CreateSharedByteDataBlock: { + url: 'https://262.ecma-international.org/11.0/#sec-createsharedbytedatablock' + }, + CreateStringIterator: { + url: 'https://262.ecma-international.org/11.0/#sec-createstringiterator' + }, + CreateUnmappedArgumentsObject: { + url: 'https://262.ecma-international.org/11.0/#sec-createunmappedargumentsobject' + }, + DateFromTime: { + url: 'https://262.ecma-international.org/11.0/#sec-date-number' + }, + DateString: { + url: 'https://262.ecma-international.org/11.0/#sec-datestring' + }, + Day: { + url: 'https://262.ecma-international.org/11.0/#eqn-Day' + }, + DayFromYear: { + url: 'https://262.ecma-international.org/11.0/#eqn-DaysFromYear' + }, + DaysInYear: { + url: 'https://262.ecma-international.org/11.0/#eqn-DaysInYear' + }, + DayWithinYear: { + url: 'https://262.ecma-international.org/11.0/#eqn-DayWithinYear' + }, + Decode: { + url: 'https://262.ecma-international.org/11.0/#sec-decode' + }, + DefinePropertyOrThrow: { + url: 'https://262.ecma-international.org/11.0/#sec-definepropertyorthrow' + }, + DeletePropertyOrThrow: { + url: 'https://262.ecma-international.org/11.0/#sec-deletepropertyorthrow' + }, + DetachArrayBuffer: { + url: 'https://262.ecma-international.org/11.0/#sec-detacharraybuffer' + }, + Encode: { + url: 'https://262.ecma-international.org/11.0/#sec-encode' + }, + EnterCriticalSection: { + url: 'https://262.ecma-international.org/11.0/#sec-entercriticalsection' + }, + EnumerableOwnPropertyNames: { + url: 'https://262.ecma-international.org/11.0/#sec-enumerableownpropertynames' + }, + EnumerateObjectProperties: { + url: 'https://262.ecma-international.org/11.0/#sec-enumerate-object-properties' + }, + EscapeRegExpPattern: { + url: 'https://262.ecma-international.org/11.0/#sec-escaperegexppattern' + }, + EvalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/11.0/#sec-evaldeclarationinstantiation' + }, + EvaluateCall: { + url: 'https://262.ecma-international.org/11.0/#sec-evaluatecall' + }, + EvaluateNew: { + url: 'https://262.ecma-international.org/11.0/#sec-evaluatenew' + }, + EvaluatePropertyAccessWithExpressionKey: { + url: 'https://262.ecma-international.org/11.0/#sec-evaluate-property-access-with-expression-key' + }, + EvaluatePropertyAccessWithIdentifierKey: { + url: 'https://262.ecma-international.org/11.0/#sec-evaluate-property-access-with-identifier-key' + }, + EventSet: { + url: 'https://262.ecma-international.org/11.0/#sec-event-set' + }, + ExecuteModule: { + url: 'https://262.ecma-international.org/11.0/#sec-source-text-module-record-execute-module' + }, + FinishDynamicImport: { + url: 'https://262.ecma-international.org/11.0/#sec-finishdynamicimport' + }, + FlattenIntoArray: { + url: 'https://262.ecma-international.org/11.0/#sec-flattenintoarray' + }, + floor: { + url: 'https://262.ecma-international.org/11.0/#eqn-floor' + }, + ForBodyEvaluation: { + url: 'https://262.ecma-international.org/11.0/#sec-forbodyevaluation' + }, + 'ForIn/OfBodyEvaluation': { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset' + }, + 'ForIn/OfHeadEvaluation': { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-forinofheadevaluation' + }, + FromPropertyDescriptor: { + url: 'https://262.ecma-international.org/11.0/#sec-frompropertydescriptor' + }, + FulfillPromise: { + url: 'https://262.ecma-international.org/11.0/#sec-fulfillpromise' + }, + FunctionDeclarationInstantiation: { + url: 'https://262.ecma-international.org/11.0/#sec-functiondeclarationinstantiation' + }, + GeneratorResume: { + url: 'https://262.ecma-international.org/11.0/#sec-generatorresume' + }, + GeneratorResumeAbrupt: { + url: 'https://262.ecma-international.org/11.0/#sec-generatorresumeabrupt' + }, + GeneratorStart: { + url: 'https://262.ecma-international.org/11.0/#sec-generatorstart' + }, + GeneratorValidate: { + url: 'https://262.ecma-international.org/11.0/#sec-generatorvalidate' + }, + GeneratorYield: { + url: 'https://262.ecma-international.org/11.0/#sec-generatoryield' + }, + Get: { + url: 'https://262.ecma-international.org/11.0/#sec-get-o-p' + }, + GetActiveScriptOrModule: { + url: 'https://262.ecma-international.org/11.0/#sec-getactivescriptormodule' + }, + GetBase: { + url: 'https://262.ecma-international.org/11.0/#sec-getbase' + }, + GetFunctionRealm: { + url: 'https://262.ecma-international.org/11.0/#sec-getfunctionrealm' + }, + GetGeneratorKind: { + url: 'https://262.ecma-international.org/11.0/#sec-getgeneratorkind' + }, + GetGlobalObject: { + url: 'https://262.ecma-international.org/11.0/#sec-getglobalobject' + }, + GetIdentifierReference: { + url: 'https://262.ecma-international.org/11.0/#sec-getidentifierreference' + }, + GetIterator: { + url: 'https://262.ecma-international.org/11.0/#sec-getiterator' + }, + GetMethod: { + url: 'https://262.ecma-international.org/11.0/#sec-getmethod' + }, + GetModifySetValueInBuffer: { + url: 'https://262.ecma-international.org/11.0/#sec-getmodifysetvalueinbuffer' + }, + GetModuleNamespace: { + url: 'https://262.ecma-international.org/11.0/#sec-getmodulenamespace' + }, + GetNewTarget: { + url: 'https://262.ecma-international.org/11.0/#sec-getnewtarget' + }, + GetOwnPropertyKeys: { + url: 'https://262.ecma-international.org/11.0/#sec-getownpropertykeys' + }, + GetPrototypeFromConstructor: { + url: 'https://262.ecma-international.org/11.0/#sec-getprototypefromconstructor' + }, + GetReferencedName: { + url: 'https://262.ecma-international.org/11.0/#sec-getreferencedname' + }, + GetSubstitution: { + url: 'https://262.ecma-international.org/11.0/#sec-getsubstitution' + }, + GetSuperConstructor: { + url: 'https://262.ecma-international.org/11.0/#sec-getsuperconstructor' + }, + GetTemplateObject: { + url: 'https://262.ecma-international.org/11.0/#sec-gettemplateobject' + }, + GetThisEnvironment: { + url: 'https://262.ecma-international.org/11.0/#sec-getthisenvironment' + }, + GetThisValue: { + url: 'https://262.ecma-international.org/11.0/#sec-getthisvalue' + }, + GetV: { + url: 'https://262.ecma-international.org/11.0/#sec-getv' + }, + GetValue: { + url: 'https://262.ecma-international.org/11.0/#sec-getvalue' + }, + GetValueFromBuffer: { + url: 'https://262.ecma-international.org/11.0/#sec-getvaluefrombuffer' + }, + GetViewValue: { + url: 'https://262.ecma-international.org/11.0/#sec-getviewvalue' + }, + GetWaiterList: { + url: 'https://262.ecma-international.org/11.0/#sec-getwaiterlist' + }, + GlobalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/11.0/#sec-globaldeclarationinstantiation' + }, + 'happens-before': { + url: 'https://262.ecma-international.org/11.0/#sec-happens-before' + }, + HasOwnProperty: { + url: 'https://262.ecma-international.org/11.0/#sec-hasownproperty' + }, + HasPrimitiveBase: { + url: 'https://262.ecma-international.org/11.0/#sec-hasprimitivebase' + }, + HasProperty: { + url: 'https://262.ecma-international.org/11.0/#sec-hasproperty' + }, + 'host-synchronizes-with': { + url: 'https://262.ecma-international.org/11.0/#sec-host-synchronizes-with' + }, + HostEventSet: { + url: 'https://262.ecma-international.org/11.0/#sec-hosteventset' + }, + HourFromTime: { + url: 'https://262.ecma-international.org/11.0/#eqn-HourFromTime' + }, + IfAbruptRejectPromise: { + url: 'https://262.ecma-international.org/11.0/#sec-ifabruptrejectpromise' + }, + ImportedLocalNames: { + url: 'https://262.ecma-international.org/11.0/#sec-importedlocalnames' + }, + InitializeBoundName: { + url: 'https://262.ecma-international.org/11.0/#sec-initializeboundname' + }, + InitializeEnvironment: { + url: 'https://262.ecma-international.org/11.0/#sec-source-text-module-record-initialize-environment' + }, + InitializeHostDefinedRealm: { + url: 'https://262.ecma-international.org/11.0/#sec-initializehostdefinedrealm' + }, + InitializeReferencedBinding: { + url: 'https://262.ecma-international.org/11.0/#sec-initializereferencedbinding' + }, + InLeapYear: { + url: 'https://262.ecma-international.org/11.0/#eqn-InLeapYear' + }, + InnerModuleEvaluation: { + url: 'https://262.ecma-international.org/11.0/#sec-innermoduleevaluation' + }, + InnerModuleLinking: { + url: 'https://262.ecma-international.org/11.0/#sec-InnerModuleLinking' + }, + InstanceofOperator: { + url: 'https://262.ecma-international.org/11.0/#sec-instanceofoperator' + }, + IntegerIndexedElementGet: { + url: 'https://262.ecma-international.org/11.0/#sec-integerindexedelementget' + }, + IntegerIndexedElementSet: { + url: 'https://262.ecma-international.org/11.0/#sec-integerindexedelementset' + }, + IntegerIndexedObjectCreate: { + url: 'https://262.ecma-international.org/11.0/#sec-integerindexedobjectcreate' + }, + InternalizeJSONProperty: { + url: 'https://262.ecma-international.org/11.0/#sec-internalizejsonproperty' + }, + Invoke: { + url: 'https://262.ecma-international.org/11.0/#sec-invoke' + }, + IsAccessorDescriptor: { + url: 'https://262.ecma-international.org/11.0/#sec-isaccessordescriptor' + }, + IsAnonymousFunctionDefinition: { + url: 'https://262.ecma-international.org/11.0/#sec-isanonymousfunctiondefinition' + }, + IsArray: { + url: 'https://262.ecma-international.org/11.0/#sec-isarray' + }, + IsBigIntElementType: { + url: 'https://262.ecma-international.org/11.0/#sec-isbigintelementtype' + }, + IsCallable: { + url: 'https://262.ecma-international.org/11.0/#sec-iscallable' + }, + IsCompatiblePropertyDescriptor: { + url: 'https://262.ecma-international.org/11.0/#sec-iscompatiblepropertydescriptor' + }, + IsConcatSpreadable: { + url: 'https://262.ecma-international.org/11.0/#sec-isconcatspreadable' + }, + IsConstructor: { + url: 'https://262.ecma-international.org/11.0/#sec-isconstructor' + }, + IsDataDescriptor: { + url: 'https://262.ecma-international.org/11.0/#sec-isdatadescriptor' + }, + IsDetachedBuffer: { + url: 'https://262.ecma-international.org/11.0/#sec-isdetachedbuffer' + }, + IsExtensible: { + url: 'https://262.ecma-international.org/11.0/#sec-isextensible-o' + }, + IsGenericDescriptor: { + url: 'https://262.ecma-international.org/11.0/#sec-isgenericdescriptor' + }, + IsInTailPosition: { + url: 'https://262.ecma-international.org/11.0/#sec-isintailposition' + }, + IsInteger: { + url: 'https://262.ecma-international.org/11.0/#sec-isinteger' + }, + IsLabelledFunction: { + url: 'https://262.ecma-international.org/11.0/#sec-islabelledfunction' + }, + IsNonNegativeInteger: { + url: 'https://262.ecma-international.org/11.0/#sec-isnonnegativeinteger' + }, + IsNoTearConfiguration: { + url: 'https://262.ecma-international.org/11.0/#sec-isnotearconfiguration' + }, + IsPromise: { + url: 'https://262.ecma-international.org/11.0/#sec-ispromise' + }, + IsPropertyKey: { + url: 'https://262.ecma-international.org/11.0/#sec-ispropertykey' + }, + IsPropertyReference: { + url: 'https://262.ecma-international.org/11.0/#sec-ispropertyreference' + }, + IsRegExp: { + url: 'https://262.ecma-international.org/11.0/#sec-isregexp' + }, + IsSharedArrayBuffer: { + url: 'https://262.ecma-international.org/11.0/#sec-issharedarraybuffer' + }, + IsStrictReference: { + url: 'https://262.ecma-international.org/11.0/#sec-isstrictreference' + }, + IsStringPrefix: { + url: 'https://262.ecma-international.org/11.0/#sec-isstringprefix' + }, + IsSuperReference: { + url: 'https://262.ecma-international.org/11.0/#sec-issuperreference' + }, + IsUnclampedIntegerElementType: { + url: 'https://262.ecma-international.org/11.0/#sec-isunclampedintegerelementtype' + }, + IsUnresolvableReference: { + url: 'https://262.ecma-international.org/11.0/#sec-isunresolvablereference' + }, + IsUnsignedElementType: { + url: 'https://262.ecma-international.org/11.0/#sec-isunsignedelementtype' + }, + IsValidIntegerIndex: { + url: 'https://262.ecma-international.org/11.0/#sec-isvalidintegerindex' + }, + IsValidRegularExpressionLiteral: { + url: 'https://262.ecma-international.org/11.0/#sec-isvalidregularexpressionliteral' + }, + IsWordChar: { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-iswordchar-abstract-operation' + }, + IterableToList: { + url: 'https://262.ecma-international.org/11.0/#sec-iterabletolist' + }, + IteratorClose: { + url: 'https://262.ecma-international.org/11.0/#sec-iteratorclose' + }, + IteratorComplete: { + url: 'https://262.ecma-international.org/11.0/#sec-iteratorcomplete' + }, + IteratorNext: { + url: 'https://262.ecma-international.org/11.0/#sec-iteratornext' + }, + IteratorStep: { + url: 'https://262.ecma-international.org/11.0/#sec-iteratorstep' + }, + IteratorValue: { + url: 'https://262.ecma-international.org/11.0/#sec-iteratorvalue' + }, + LeaveCriticalSection: { + url: 'https://262.ecma-international.org/11.0/#sec-leavecriticalsection' + }, + LengthOfArrayLike: { + url: 'https://262.ecma-international.org/11.0/#sec-lengthofarraylike' + }, + LocalTime: { + url: 'https://262.ecma-international.org/11.0/#sec-localtime' + }, + LocalTZA: { + url: 'https://262.ecma-international.org/11.0/#sec-local-time-zone-adjustment' + }, + LoopContinues: { + url: 'https://262.ecma-international.org/11.0/#sec-loopcontinues' + }, + MakeArgGetter: { + url: 'https://262.ecma-international.org/11.0/#sec-makearggetter' + }, + MakeArgSetter: { + url: 'https://262.ecma-international.org/11.0/#sec-makeargsetter' + }, + MakeBasicObject: { + url: 'https://262.ecma-international.org/11.0/#sec-makebasicobject' + }, + MakeClassConstructor: { + url: 'https://262.ecma-international.org/11.0/#sec-makeclassconstructor' + }, + MakeConstructor: { + url: 'https://262.ecma-international.org/11.0/#sec-makeconstructor' + }, + MakeDate: { + url: 'https://262.ecma-international.org/11.0/#sec-makedate' + }, + MakeDay: { + url: 'https://262.ecma-international.org/11.0/#sec-makeday' + }, + MakeMethod: { + url: 'https://262.ecma-international.org/11.0/#sec-makemethod' + }, + MakeSuperPropertyReference: { + url: 'https://262.ecma-international.org/11.0/#sec-makesuperpropertyreference' + }, + MakeTime: { + url: 'https://262.ecma-international.org/11.0/#sec-maketime' + }, + max: { + url: 'https://262.ecma-international.org/11.0/#eqn-max' + }, + 'memory-order': { + url: 'https://262.ecma-international.org/11.0/#sec-memory-order' + }, + min: { + url: 'https://262.ecma-international.org/11.0/#eqn-min' + }, + MinFromTime: { + url: 'https://262.ecma-international.org/11.0/#eqn-MinFromTime' + }, + ModuleNamespaceCreate: { + url: 'https://262.ecma-international.org/11.0/#sec-modulenamespacecreate' + }, + modulo: { + url: 'https://262.ecma-international.org/11.0/#eqn-modulo' + }, + MonthFromTime: { + url: 'https://262.ecma-international.org/11.0/#eqn-MonthFromTime' + }, + msFromTime: { + url: 'https://262.ecma-international.org/11.0/#eqn-msFromTime' + }, + NewDeclarativeEnvironment: { + url: 'https://262.ecma-international.org/11.0/#sec-newdeclarativeenvironment' + }, + NewFunctionEnvironment: { + url: 'https://262.ecma-international.org/11.0/#sec-newfunctionenvironment' + }, + NewGlobalEnvironment: { + url: 'https://262.ecma-international.org/11.0/#sec-newglobalenvironment' + }, + NewModuleEnvironment: { + url: 'https://262.ecma-international.org/11.0/#sec-newmoduleenvironment' + }, + NewObjectEnvironment: { + url: 'https://262.ecma-international.org/11.0/#sec-newobjectenvironment' + }, + NewPromiseCapability: { + url: 'https://262.ecma-international.org/11.0/#sec-newpromisecapability' + }, + NewPromiseReactionJob: { + url: 'https://262.ecma-international.org/11.0/#sec-newpromisereactionjob' + }, + NewPromiseResolveThenableJob: { + url: 'https://262.ecma-international.org/11.0/#sec-newpromiseresolvethenablejob' + }, + NormalCompletion: { + url: 'https://262.ecma-international.org/11.0/#sec-normalcompletion' + }, + NotifyWaiter: { + url: 'https://262.ecma-international.org/11.0/#sec-notifywaiter' + }, + 'Number::add': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-add' + }, + 'Number::bitwiseAND': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseAND' + }, + 'Number::bitwiseNOT': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseNOT' + }, + 'Number::bitwiseOR': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseOR' + }, + 'Number::bitwiseXOR': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseXOR' + }, + 'Number::divide': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-divide' + }, + 'Number::equal': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-equal' + }, + 'Number::exponentiate': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-exponentiate' + }, + 'Number::leftShift': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-leftShift' + }, + 'Number::lessThan': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-lessThan' + }, + 'Number::multiply': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-multiply' + }, + 'Number::remainder': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-remainder' + }, + 'Number::sameValue': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-sameValue' + }, + 'Number::sameValueZero': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-sameValueZero' + }, + 'Number::signedRightShift': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-signedRightShift' + }, + 'Number::subtract': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-subtract' + }, + 'Number::toString': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-tostring' + }, + 'Number::unaryMinus': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-unaryMinus' + }, + 'Number::unsignedRightShift': { + url: 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-unsignedRightShift' + }, + NumberBitwiseOp: { + url: 'https://262.ecma-international.org/11.0/#sec-numberbitwiseop' + }, + NumberToBigInt: { + url: 'https://262.ecma-international.org/11.0/#sec-numbertobigint' + }, + NumericToRawBytes: { + url: 'https://262.ecma-international.org/11.0/#sec-numerictorawbytes' + }, + ObjectDefineProperties: { + url: 'https://262.ecma-international.org/11.0/#sec-objectdefineproperties' + }, + OrdinaryCallBindThis: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinarycallbindthis' + }, + OrdinaryCallEvaluateBody: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinarycallevaluatebody' + }, + OrdinaryCreateFromConstructor: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinarycreatefromconstructor' + }, + OrdinaryDefineOwnProperty: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinarydefineownproperty' + }, + OrdinaryDelete: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinarydelete' + }, + OrdinaryFunctionCreate: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinaryfunctioncreate' + }, + OrdinaryGet: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinaryget' + }, + OrdinaryGetOwnProperty: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinarygetownproperty' + }, + OrdinaryGetPrototypeOf: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinarygetprototypeof' + }, + OrdinaryHasInstance: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinaryhasinstance' + }, + OrdinaryHasProperty: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinaryhasproperty' + }, + OrdinaryIsExtensible: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinaryisextensible' + }, + OrdinaryObjectCreate: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinaryobjectcreate' + }, + OrdinaryOwnPropertyKeys: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinaryownpropertykeys' + }, + OrdinaryPreventExtensions: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinarypreventextensions' + }, + OrdinarySet: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinaryset' + }, + OrdinarySetPrototypeOf: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinarysetprototypeof' + }, + OrdinarySetWithOwnDescriptor: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinarysetwithowndescriptor' + }, + OrdinaryToPrimitive: { + url: 'https://262.ecma-international.org/11.0/#sec-ordinarytoprimitive' + }, + ParseModule: { + url: 'https://262.ecma-international.org/11.0/#sec-parsemodule' + }, + ParseScript: { + url: 'https://262.ecma-international.org/11.0/#sec-parse-script' + }, + PerformEval: { + url: 'https://262.ecma-international.org/11.0/#sec-performeval' + }, + PerformPromiseAll: { + url: 'https://262.ecma-international.org/11.0/#sec-performpromiseall' + }, + PerformPromiseAllSettled: { + url: 'https://262.ecma-international.org/11.0/#sec-performpromiseallsettled' + }, + PerformPromiseRace: { + url: 'https://262.ecma-international.org/11.0/#sec-performpromiserace' + }, + PerformPromiseThen: { + url: 'https://262.ecma-international.org/11.0/#sec-performpromisethen' + }, + PrepareForOrdinaryCall: { + url: 'https://262.ecma-international.org/11.0/#sec-prepareforordinarycall' + }, + PrepareForTailCall: { + url: 'https://262.ecma-international.org/11.0/#sec-preparefortailcall' + }, + PromiseResolve: { + url: 'https://262.ecma-international.org/11.0/#sec-promise-resolve' + }, + ProxyCreate: { + url: 'https://262.ecma-international.org/11.0/#sec-proxycreate' + }, + PutValue: { + url: 'https://262.ecma-international.org/11.0/#sec-putvalue' + }, + QuoteJSONString: { + url: 'https://262.ecma-international.org/11.0/#sec-quotejsonstring' + }, + RawBytesToNumeric: { + url: 'https://262.ecma-international.org/11.0/#sec-rawbytestonumeric' + }, + 'reads-bytes-from': { + url: 'https://262.ecma-international.org/11.0/#sec-reads-bytes-from' + }, + 'reads-from': { + url: 'https://262.ecma-international.org/11.0/#sec-reads-from' + }, + RegExpAlloc: { + url: 'https://262.ecma-international.org/11.0/#sec-regexpalloc' + }, + RegExpBuiltinExec: { + url: 'https://262.ecma-international.org/11.0/#sec-regexpbuiltinexec' + }, + RegExpCreate: { + url: 'https://262.ecma-international.org/11.0/#sec-regexpcreate' + }, + RegExpExec: { + url: 'https://262.ecma-international.org/11.0/#sec-regexpexec' + }, + RegExpInitialize: { + url: 'https://262.ecma-international.org/11.0/#sec-regexpinitialize' + }, + RejectPromise: { + url: 'https://262.ecma-international.org/11.0/#sec-rejectpromise' + }, + RemoveWaiter: { + url: 'https://262.ecma-international.org/11.0/#sec-removewaiter' + }, + RemoveWaiters: { + url: 'https://262.ecma-international.org/11.0/#sec-removewaiters' + }, + RepeatMatcher: { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-repeatmatcher-abstract-operation' + }, + RequireInternalSlot: { + url: 'https://262.ecma-international.org/11.0/#sec-requireinternalslot' + }, + RequireObjectCoercible: { + url: 'https://262.ecma-international.org/11.0/#sec-requireobjectcoercible' + }, + ResolveBinding: { + url: 'https://262.ecma-international.org/11.0/#sec-resolvebinding' + }, + ResolveThisBinding: { + url: 'https://262.ecma-international.org/11.0/#sec-resolvethisbinding' + }, + ReturnIfAbrupt: { + url: 'https://262.ecma-international.org/11.0/#sec-returnifabrupt' + }, + SameValue: { + url: 'https://262.ecma-international.org/11.0/#sec-samevalue' + }, + SameValueNonNumeric: { + url: 'https://262.ecma-international.org/11.0/#sec-samevaluenonnumeric' + }, + SameValueZero: { + url: 'https://262.ecma-international.org/11.0/#sec-samevaluezero' + }, + ScriptEvaluation: { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-scriptevaluation' + }, + SecFromTime: { + url: 'https://262.ecma-international.org/11.0/#eqn-SecFromTime' + }, + SerializeJSONArray: { + url: 'https://262.ecma-international.org/11.0/#sec-serializejsonarray' + }, + SerializeJSONObject: { + url: 'https://262.ecma-international.org/11.0/#sec-serializejsonobject' + }, + SerializeJSONProperty: { + url: 'https://262.ecma-international.org/11.0/#sec-serializejsonproperty' + }, + Set: { + url: 'https://262.ecma-international.org/11.0/#sec-set-o-p-v-throw' + }, + SetDefaultGlobalBindings: { + url: 'https://262.ecma-international.org/11.0/#sec-setdefaultglobalbindings' + }, + SetFunctionLength: { + url: 'https://262.ecma-international.org/11.0/#sec-setfunctionlength' + }, + SetFunctionName: { + url: 'https://262.ecma-international.org/11.0/#sec-setfunctionname' + }, + SetImmutablePrototype: { + url: 'https://262.ecma-international.org/11.0/#sec-set-immutable-prototype' + }, + SetIntegrityLevel: { + url: 'https://262.ecma-international.org/11.0/#sec-setintegritylevel' + }, + SetRealmGlobalObject: { + url: 'https://262.ecma-international.org/11.0/#sec-setrealmglobalobject' + }, + SetValueInBuffer: { + url: 'https://262.ecma-international.org/11.0/#sec-setvalueinbuffer' + }, + SetViewValue: { + url: 'https://262.ecma-international.org/11.0/#sec-setviewvalue' + }, + SharedDataBlockEventSet: { + url: 'https://262.ecma-international.org/11.0/#sec-sharedatablockeventset' + }, + SortCompare: { + url: 'https://262.ecma-international.org/11.0/#sec-sortcompare' + }, + SpeciesConstructor: { + url: 'https://262.ecma-international.org/11.0/#sec-speciesconstructor' + }, + SplitMatch: { + url: 'https://262.ecma-international.org/11.0/#sec-splitmatch' + }, + 'Strict Equality Comparison': { + url: 'https://262.ecma-international.org/11.0/#sec-strict-equality-comparison' + }, + StringCreate: { + url: 'https://262.ecma-international.org/11.0/#sec-stringcreate' + }, + StringGetOwnProperty: { + url: 'https://262.ecma-international.org/11.0/#sec-stringgetownproperty' + }, + StringPad: { + url: 'https://262.ecma-international.org/11.0/#sec-stringpad' + }, + StringToBigInt: { + url: 'https://262.ecma-international.org/11.0/#sec-stringtobigint' + }, + Suspend: { + url: 'https://262.ecma-international.org/11.0/#sec-suspend' + }, + SymbolDescriptiveString: { + url: 'https://262.ecma-international.org/11.0/#sec-symboldescriptivestring' + }, + 'synchronizes-with': { + url: 'https://262.ecma-international.org/11.0/#sec-synchronizes-with' + }, + TestIntegrityLevel: { + url: 'https://262.ecma-international.org/11.0/#sec-testintegritylevel' + }, + thisBigIntValue: { + url: 'https://262.ecma-international.org/11.0/#sec-thisbigintvalue' + }, + thisBooleanValue: { + url: 'https://262.ecma-international.org/11.0/#sec-thisbooleanvalue' + }, + thisNumberValue: { + url: 'https://262.ecma-international.org/11.0/#sec-thisnumbervalue' + }, + thisStringValue: { + url: 'https://262.ecma-international.org/11.0/#sec-thisstringvalue' + }, + thisSymbolValue: { + url: 'https://262.ecma-international.org/11.0/#sec-thissymbolvalue' + }, + thisTimeValue: { + url: 'https://262.ecma-international.org/11.0/#sec-thistimevalue' + }, + ThrowCompletion: { + url: 'https://262.ecma-international.org/11.0/#sec-throwcompletion' + }, + TimeClip: { + url: 'https://262.ecma-international.org/11.0/#sec-timeclip' + }, + TimeFromYear: { + url: 'https://262.ecma-international.org/11.0/#eqn-TimeFromYear' + }, + TimeString: { + url: 'https://262.ecma-international.org/11.0/#sec-timestring' + }, + TimeWithinDay: { + url: 'https://262.ecma-international.org/11.0/#eqn-TimeWithinDay' + }, + TimeZoneString: { + url: 'https://262.ecma-international.org/11.0/#sec-timezoneestring' + }, + ToBigInt: { + url: 'https://262.ecma-international.org/11.0/#sec-tobigint' + }, + ToBigInt64: { + url: 'https://262.ecma-international.org/11.0/#sec-tobigint64' + }, + ToBigUint64: { + url: 'https://262.ecma-international.org/11.0/#sec-tobiguint64' + }, + ToBoolean: { + url: 'https://262.ecma-international.org/11.0/#sec-toboolean' + }, + ToDateString: { + url: 'https://262.ecma-international.org/11.0/#sec-todatestring' + }, + ToIndex: { + url: 'https://262.ecma-international.org/11.0/#sec-toindex' + }, + ToInt16: { + url: 'https://262.ecma-international.org/11.0/#sec-toint16' + }, + ToInt32: { + url: 'https://262.ecma-international.org/11.0/#sec-toint32' + }, + ToInt8: { + url: 'https://262.ecma-international.org/11.0/#sec-toint8' + }, + ToInteger: { + url: 'https://262.ecma-international.org/11.0/#sec-tointeger' + }, + ToLength: { + url: 'https://262.ecma-international.org/11.0/#sec-tolength' + }, + ToNumber: { + url: 'https://262.ecma-international.org/11.0/#sec-tonumber' + }, + ToNumeric: { + url: 'https://262.ecma-international.org/11.0/#sec-tonumeric' + }, + ToObject: { + url: 'https://262.ecma-international.org/11.0/#sec-toobject' + }, + ToPrimitive: { + url: 'https://262.ecma-international.org/11.0/#sec-toprimitive' + }, + ToPropertyDescriptor: { + url: 'https://262.ecma-international.org/11.0/#sec-topropertydescriptor' + }, + ToPropertyKey: { + url: 'https://262.ecma-international.org/11.0/#sec-topropertykey' + }, + ToString: { + url: 'https://262.ecma-international.org/11.0/#sec-tostring' + }, + ToUint16: { + url: 'https://262.ecma-international.org/11.0/#sec-touint16' + }, + ToUint32: { + url: 'https://262.ecma-international.org/11.0/#sec-touint32' + }, + ToUint8: { + url: 'https://262.ecma-international.org/11.0/#sec-touint8' + }, + ToUint8Clamp: { + url: 'https://262.ecma-international.org/11.0/#sec-touint8clamp' + }, + TriggerPromiseReactions: { + url: 'https://262.ecma-international.org/11.0/#sec-triggerpromisereactions' + }, + TrimString: { + url: 'https://262.ecma-international.org/11.0/#sec-trimstring' + }, + Type: { + url: 'https://262.ecma-international.org/11.0/#sec-ecmascript-data-types-and-values' + }, + TypedArrayCreate: { + url: 'https://262.ecma-international.org/11.0/#typedarray-create' + }, + TypedArraySpeciesCreate: { + url: 'https://262.ecma-international.org/11.0/#typedarray-species-create' + }, + UnicodeEscape: { + url: 'https://262.ecma-international.org/11.0/#sec-unicodeescape' + }, + UnicodeMatchProperty: { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-unicodematchproperty-p' + }, + UnicodeMatchPropertyValue: { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v' + }, + UpdateEmpty: { + url: 'https://262.ecma-international.org/11.0/#sec-updateempty' + }, + UTC: { + url: 'https://262.ecma-international.org/11.0/#sec-utc-t' + }, + UTF16DecodeString: { + url: 'https://262.ecma-international.org/11.0/#sec-utf16decodestring' + }, + UTF16DecodeSurrogatePair: { + url: 'https://262.ecma-international.org/11.0/#sec-utf16decodesurrogatepair' + }, + UTF16Encode: { + url: 'https://262.ecma-international.org/11.0/#sec-utf16encode' + }, + UTF16Encoding: { + url: 'https://262.ecma-international.org/11.0/#sec-utf16encoding' + }, + ValidateAndApplyPropertyDescriptor: { + url: 'https://262.ecma-international.org/11.0/#sec-validateandapplypropertydescriptor' + }, + ValidateAtomicAccess: { + url: 'https://262.ecma-international.org/11.0/#sec-validateatomicaccess' + }, + ValidateSharedIntegerTypedArray: { + url: 'https://262.ecma-international.org/11.0/#sec-validatesharedintegertypedarray' + }, + ValidateTypedArray: { + url: 'https://262.ecma-international.org/11.0/#sec-validatetypedarray' + }, + ValueOfReadEvent: { + url: 'https://262.ecma-international.org/11.0/#sec-valueofreadevent' + }, + WeekDay: { + url: 'https://262.ecma-international.org/11.0/#sec-week-day' + }, + WordCharacters: { + url: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-wordcharacters-abstract-operation' + }, + YearFromTime: { + url: 'https://262.ecma-international.org/11.0/#eqn-YearFromTime' + } +}; diff --git a/node_modules/es-abstract/operations/2021.js b/node_modules/es-abstract/operations/2021.js new file mode 100644 index 0000000000000000000000000000000000000000..7d4ff210a596d7364a063af5b392f7f28bda94f2 --- /dev/null +++ b/node_modules/es-abstract/operations/2021.js @@ -0,0 +1,1282 @@ +'use strict'; + +module.exports = { + abs: { + url: 'https://262.ecma-international.org/12.0/#eqn-abs' + }, + 'Abstract Equality Comparison': { + url: 'https://262.ecma-international.org/12.0/#sec-abstract-equality-comparison' + }, + 'Abstract Relational Comparison': { + url: 'https://262.ecma-international.org/12.0/#sec-abstract-relational-comparison' + }, + AddEntriesFromIterable: { + url: 'https://262.ecma-international.org/12.0/#sec-add-entries-from-iterable' + }, + AddRestrictedFunctionProperties: { + url: 'https://262.ecma-international.org/12.0/#sec-addrestrictedfunctionproperties' + }, + AddToKeptObjects: { + url: 'https://262.ecma-international.org/12.0/#sec-addtokeptobjects' + }, + AddWaiter: { + url: 'https://262.ecma-international.org/12.0/#sec-addwaiter' + }, + AdvanceStringIndex: { + url: 'https://262.ecma-international.org/12.0/#sec-advancestringindex' + }, + 'agent-order': { + url: 'https://262.ecma-international.org/12.0/#sec-agent-order' + }, + AgentCanSuspend: { + url: 'https://262.ecma-international.org/12.0/#sec-agentcansuspend' + }, + AgentSignifier: { + url: 'https://262.ecma-international.org/12.0/#sec-agentsignifier' + }, + AllocateArrayBuffer: { + url: 'https://262.ecma-international.org/12.0/#sec-allocatearraybuffer' + }, + AllocateSharedArrayBuffer: { + url: 'https://262.ecma-international.org/12.0/#sec-allocatesharedarraybuffer' + }, + AllocateTypedArray: { + url: 'https://262.ecma-international.org/12.0/#sec-allocatetypedarray' + }, + AllocateTypedArrayBuffer: { + url: 'https://262.ecma-international.org/12.0/#sec-allocatetypedarraybuffer' + }, + ApplyStringOrNumericBinaryOperator: { + url: 'https://262.ecma-international.org/12.0/#sec-applystringornumericbinaryoperator' + }, + ArrayCreate: { + url: 'https://262.ecma-international.org/12.0/#sec-arraycreate' + }, + ArraySetLength: { + url: 'https://262.ecma-international.org/12.0/#sec-arraysetlength' + }, + ArraySpeciesCreate: { + url: 'https://262.ecma-international.org/12.0/#sec-arrayspeciescreate' + }, + AsyncFromSyncIteratorContinuation: { + url: 'https://262.ecma-international.org/12.0/#sec-asyncfromsynciteratorcontinuation' + }, + AsyncFunctionStart: { + url: 'https://262.ecma-international.org/12.0/#sec-async-functions-abstract-operations-async-function-start' + }, + AsyncGeneratorEnqueue: { + url: 'https://262.ecma-international.org/12.0/#sec-asyncgeneratorenqueue' + }, + AsyncGeneratorReject: { + url: 'https://262.ecma-international.org/12.0/#sec-asyncgeneratorreject' + }, + AsyncGeneratorResolve: { + url: 'https://262.ecma-international.org/12.0/#sec-asyncgeneratorresolve' + }, + AsyncGeneratorResumeNext: { + url: 'https://262.ecma-international.org/12.0/#sec-asyncgeneratorresumenext' + }, + AsyncGeneratorStart: { + url: 'https://262.ecma-international.org/12.0/#sec-asyncgeneratorstart' + }, + AsyncGeneratorValidate: { + url: 'https://262.ecma-international.org/12.0/#sec-asyncgeneratorvalidate' + }, + AsyncGeneratorYield: { + url: 'https://262.ecma-international.org/12.0/#sec-asyncgeneratoryield' + }, + AsyncIteratorClose: { + url: 'https://262.ecma-international.org/12.0/#sec-asynciteratorclose' + }, + AtomicReadModifyWrite: { + url: 'https://262.ecma-international.org/12.0/#sec-atomicreadmodifywrite' + }, + Await: { + url: 'https://262.ecma-international.org/12.0/#await' + }, + BackreferenceMatcher: { + url: 'https://262.ecma-international.org/12.0/#sec-backreference-matcher' + }, + 'BigInt::add': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-add' + }, + 'BigInt::bitwiseAND': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-bitwiseAND' + }, + 'BigInt::bitwiseNOT': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-bitwiseNOT' + }, + 'BigInt::bitwiseOR': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-bitwiseOR' + }, + 'BigInt::bitwiseXOR': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-bitwiseXOR' + }, + 'BigInt::divide': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-divide' + }, + 'BigInt::equal': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-equal' + }, + 'BigInt::exponentiate': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-exponentiate' + }, + 'BigInt::leftShift': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-leftShift' + }, + 'BigInt::lessThan': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-lessThan' + }, + 'BigInt::multiply': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-multiply' + }, + 'BigInt::remainder': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-remainder' + }, + 'BigInt::sameValue': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-sameValue' + }, + 'BigInt::sameValueZero': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-sameValueZero' + }, + 'BigInt::signedRightShift': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-signedRightShift' + }, + 'BigInt::subtract': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-subtract' + }, + 'BigInt::toString': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-tostring' + }, + 'BigInt::unaryMinus': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-unaryMinus' + }, + 'BigInt::unsignedRightShift': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-bigint-unsignedRightShift' + }, + BigIntBitwiseOp: { + url: 'https://262.ecma-international.org/12.0/#sec-bigintbitwiseop' + }, + BinaryAnd: { + url: 'https://262.ecma-international.org/12.0/#sec-binaryand' + }, + BinaryOr: { + url: 'https://262.ecma-international.org/12.0/#sec-binaryor' + }, + BinaryXor: { + url: 'https://262.ecma-international.org/12.0/#sec-binaryxor' + }, + BlockDeclarationInstantiation: { + url: 'https://262.ecma-international.org/12.0/#sec-blockdeclarationinstantiation' + }, + BoundFunctionCreate: { + url: 'https://262.ecma-international.org/12.0/#sec-boundfunctioncreate' + }, + ByteListBitwiseOp: { + url: 'https://262.ecma-international.org/12.0/#sec-bytelistbitwiseop' + }, + ByteListEqual: { + url: 'https://262.ecma-international.org/12.0/#sec-bytelistequal' + }, + Call: { + url: 'https://262.ecma-international.org/12.0/#sec-call' + }, + Canonicalize: { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-canonicalize-ch' + }, + CanonicalNumericIndexString: { + url: 'https://262.ecma-international.org/12.0/#sec-canonicalnumericindexstring' + }, + CaseClauseIsSelected: { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-caseclauseisselected' + }, + CharacterRange: { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-characterrange-abstract-operation' + }, + CharacterRangeOrUnion: { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation' + }, + CharacterSetMatcher: { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation' + }, + clamp: { + url: 'https://262.ecma-international.org/12.0/#clamping' + }, + CleanupFinalizationRegistry: { + url: 'https://262.ecma-international.org/12.0/#sec-cleanup-finalization-registry' + }, + ClearKeptObjects: { + url: 'https://262.ecma-international.org/12.0/#sec-clear-kept-objects' + }, + CloneArrayBuffer: { + url: 'https://262.ecma-international.org/12.0/#sec-clonearraybuffer' + }, + CodePointAt: { + url: 'https://262.ecma-international.org/12.0/#sec-codepointat' + }, + CodePointsToString: { + url: 'https://262.ecma-international.org/12.0/#sec-codepointstostring' + }, + CompletePropertyDescriptor: { + url: 'https://262.ecma-international.org/12.0/#sec-completepropertydescriptor' + }, + Completion: { + url: 'https://262.ecma-international.org/12.0/#sec-completion-record-specification-type' + }, + CompletionRecord: { + url: 'https://262.ecma-international.org/12.0/#sec-completion-record-specification-type' + }, + ComposeWriteEventBytes: { + url: 'https://262.ecma-international.org/12.0/#sec-composewriteeventbytes' + }, + Construct: { + url: 'https://262.ecma-international.org/12.0/#sec-construct' + }, + CopyDataBlockBytes: { + url: 'https://262.ecma-international.org/12.0/#sec-copydatablockbytes' + }, + CopyDataProperties: { + url: 'https://262.ecma-international.org/12.0/#sec-copydataproperties' + }, + CreateArrayFromList: { + url: 'https://262.ecma-international.org/12.0/#sec-createarrayfromlist' + }, + CreateArrayIterator: { + url: 'https://262.ecma-international.org/12.0/#sec-createarrayiterator' + }, + CreateAsyncFromSyncIterator: { + url: 'https://262.ecma-international.org/12.0/#sec-createasyncfromsynciterator' + }, + CreateAsyncIteratorFromClosure: { + url: 'https://262.ecma-international.org/12.0/#sec-createasynciteratorfromclosure' + }, + CreateBuiltinFunction: { + url: 'https://262.ecma-international.org/12.0/#sec-createbuiltinfunction' + }, + CreateByteDataBlock: { + url: 'https://262.ecma-international.org/12.0/#sec-createbytedatablock' + }, + CreateDataProperty: { + url: 'https://262.ecma-international.org/12.0/#sec-createdataproperty' + }, + CreateDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/12.0/#sec-createdatapropertyorthrow' + }, + CreateDynamicFunction: { + url: 'https://262.ecma-international.org/12.0/#sec-createdynamicfunction' + }, + CreateForInIterator: { + url: 'https://262.ecma-international.org/12.0/#sec-createforiniterator' + }, + CreateHTML: { + url: 'https://262.ecma-international.org/12.0/#sec-createhtml' + }, + CreateIntrinsics: { + url: 'https://262.ecma-international.org/12.0/#sec-createintrinsics' + }, + CreateIteratorFromClosure: { + url: 'https://262.ecma-international.org/12.0/#sec-createiteratorfromclosure' + }, + CreateIterResultObject: { + url: 'https://262.ecma-international.org/12.0/#sec-createiterresultobject' + }, + CreateListFromArrayLike: { + url: 'https://262.ecma-international.org/12.0/#sec-createlistfromarraylike' + }, + CreateListIteratorRecord: { + url: 'https://262.ecma-international.org/12.0/#sec-createlistiteratorRecord' + }, + CreateMapIterator: { + url: 'https://262.ecma-international.org/12.0/#sec-createmapiterator' + }, + CreateMappedArgumentsObject: { + url: 'https://262.ecma-international.org/12.0/#sec-createmappedargumentsobject' + }, + CreateMethodProperty: { + url: 'https://262.ecma-international.org/12.0/#sec-createmethodproperty' + }, + CreatePerIterationEnvironment: { + url: 'https://262.ecma-international.org/12.0/#sec-createperiterationenvironment' + }, + CreateRealm: { + url: 'https://262.ecma-international.org/12.0/#sec-createrealm' + }, + CreateRegExpStringIterator: { + url: 'https://262.ecma-international.org/12.0/#sec-createregexpstringiterator' + }, + CreateResolvingFunctions: { + url: 'https://262.ecma-international.org/12.0/#sec-createresolvingfunctions' + }, + CreateSetIterator: { + url: 'https://262.ecma-international.org/12.0/#sec-createsetiterator' + }, + CreateSharedByteDataBlock: { + url: 'https://262.ecma-international.org/12.0/#sec-createsharedbytedatablock' + }, + CreateUnmappedArgumentsObject: { + url: 'https://262.ecma-international.org/12.0/#sec-createunmappedargumentsobject' + }, + DateFromTime: { + url: 'https://262.ecma-international.org/12.0/#sec-date-number' + }, + DateString: { + url: 'https://262.ecma-international.org/12.0/#sec-datestring' + }, + Day: { + url: 'https://262.ecma-international.org/12.0/#eqn-Day' + }, + DayFromYear: { + url: 'https://262.ecma-international.org/12.0/#eqn-DaysFromYear' + }, + DaysInYear: { + url: 'https://262.ecma-international.org/12.0/#eqn-DaysInYear' + }, + DayWithinYear: { + url: 'https://262.ecma-international.org/12.0/#eqn-DayWithinYear' + }, + Decode: { + url: 'https://262.ecma-international.org/12.0/#sec-decode' + }, + DefinePropertyOrThrow: { + url: 'https://262.ecma-international.org/12.0/#sec-definepropertyorthrow' + }, + DeletePropertyOrThrow: { + url: 'https://262.ecma-international.org/12.0/#sec-deletepropertyorthrow' + }, + DetachArrayBuffer: { + url: 'https://262.ecma-international.org/12.0/#sec-detacharraybuffer' + }, + Encode: { + url: 'https://262.ecma-international.org/12.0/#sec-encode' + }, + EnterCriticalSection: { + url: 'https://262.ecma-international.org/12.0/#sec-entercriticalsection' + }, + EnumerableOwnPropertyNames: { + url: 'https://262.ecma-international.org/12.0/#sec-enumerableownpropertynames' + }, + EnumerateObjectProperties: { + url: 'https://262.ecma-international.org/12.0/#sec-enumerate-object-properties' + }, + EscapeRegExpPattern: { + url: 'https://262.ecma-international.org/12.0/#sec-escaperegexppattern' + }, + EvalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/12.0/#sec-evaldeclarationinstantiation' + }, + EvaluateCall: { + url: 'https://262.ecma-international.org/12.0/#sec-evaluatecall' + }, + EvaluateNew: { + url: 'https://262.ecma-international.org/12.0/#sec-evaluatenew' + }, + EvaluatePropertyAccessWithExpressionKey: { + url: 'https://262.ecma-international.org/12.0/#sec-evaluate-property-access-with-expression-key' + }, + EvaluatePropertyAccessWithIdentifierKey: { + url: 'https://262.ecma-international.org/12.0/#sec-evaluate-property-access-with-identifier-key' + }, + EvaluateStringOrNumericBinaryExpression: { + url: 'https://262.ecma-international.org/12.0/#sec-evaluatestringornumericbinaryexpression' + }, + EventSet: { + url: 'https://262.ecma-international.org/12.0/#sec-event-set' + }, + ExecuteModule: { + url: 'https://262.ecma-international.org/12.0/#sec-source-text-module-record-execute-module' + }, + FinishDynamicImport: { + url: 'https://262.ecma-international.org/12.0/#sec-finishdynamicimport' + }, + FlattenIntoArray: { + url: 'https://262.ecma-international.org/12.0/#sec-flattenintoarray' + }, + floor: { + url: 'https://262.ecma-international.org/12.0/#eqn-floor' + }, + ForBodyEvaluation: { + url: 'https://262.ecma-international.org/12.0/#sec-forbodyevaluation' + }, + 'ForIn/OfBodyEvaluation': { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset' + }, + 'ForIn/OfHeadEvaluation': { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-forinofheadevaluation' + }, + FromPropertyDescriptor: { + url: 'https://262.ecma-international.org/12.0/#sec-frompropertydescriptor' + }, + FulfillPromise: { + url: 'https://262.ecma-international.org/12.0/#sec-fulfillpromise' + }, + FunctionDeclarationInstantiation: { + url: 'https://262.ecma-international.org/12.0/#sec-functiondeclarationinstantiation' + }, + GeneratorResume: { + url: 'https://262.ecma-international.org/12.0/#sec-generatorresume' + }, + GeneratorResumeAbrupt: { + url: 'https://262.ecma-international.org/12.0/#sec-generatorresumeabrupt' + }, + GeneratorStart: { + url: 'https://262.ecma-international.org/12.0/#sec-generatorstart' + }, + GeneratorValidate: { + url: 'https://262.ecma-international.org/12.0/#sec-generatorvalidate' + }, + GeneratorYield: { + url: 'https://262.ecma-international.org/12.0/#sec-generatoryield' + }, + Get: { + url: 'https://262.ecma-international.org/12.0/#sec-get-o-p' + }, + GetActiveScriptOrModule: { + url: 'https://262.ecma-international.org/12.0/#sec-getactivescriptormodule' + }, + GetFunctionRealm: { + url: 'https://262.ecma-international.org/12.0/#sec-getfunctionrealm' + }, + GetGeneratorKind: { + url: 'https://262.ecma-international.org/12.0/#sec-getgeneratorkind' + }, + GetGlobalObject: { + url: 'https://262.ecma-international.org/12.0/#sec-getglobalobject' + }, + GetIdentifierReference: { + url: 'https://262.ecma-international.org/12.0/#sec-getidentifierreference' + }, + GetIterator: { + url: 'https://262.ecma-international.org/12.0/#sec-getiterator' + }, + GetMethod: { + url: 'https://262.ecma-international.org/12.0/#sec-getmethod' + }, + GetModifySetValueInBuffer: { + url: 'https://262.ecma-international.org/12.0/#sec-getmodifysetvalueinbuffer' + }, + GetModuleNamespace: { + url: 'https://262.ecma-international.org/12.0/#sec-getmodulenamespace' + }, + GetNewTarget: { + url: 'https://262.ecma-international.org/12.0/#sec-getnewtarget' + }, + GetOwnPropertyKeys: { + url: 'https://262.ecma-international.org/12.0/#sec-getownpropertykeys' + }, + GetPromiseResolve: { + url: 'https://262.ecma-international.org/12.0/#sec-getpromiseresolve' + }, + GetPrototypeFromConstructor: { + url: 'https://262.ecma-international.org/12.0/#sec-getprototypefromconstructor' + }, + GetSubstitution: { + url: 'https://262.ecma-international.org/12.0/#sec-getsubstitution' + }, + GetSuperConstructor: { + url: 'https://262.ecma-international.org/12.0/#sec-getsuperconstructor' + }, + GetTemplateObject: { + url: 'https://262.ecma-international.org/12.0/#sec-gettemplateobject' + }, + GetThisEnvironment: { + url: 'https://262.ecma-international.org/12.0/#sec-getthisenvironment' + }, + GetThisValue: { + url: 'https://262.ecma-international.org/12.0/#sec-getthisvalue' + }, + GetV: { + url: 'https://262.ecma-international.org/12.0/#sec-getv' + }, + GetValue: { + url: 'https://262.ecma-international.org/12.0/#sec-getvalue' + }, + GetValueFromBuffer: { + url: 'https://262.ecma-international.org/12.0/#sec-getvaluefrombuffer' + }, + GetViewValue: { + url: 'https://262.ecma-international.org/12.0/#sec-getviewvalue' + }, + GetWaiterList: { + url: 'https://262.ecma-international.org/12.0/#sec-getwaiterlist' + }, + GlobalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/12.0/#sec-globaldeclarationinstantiation' + }, + 'happens-before': { + url: 'https://262.ecma-international.org/12.0/#sec-happens-before' + }, + HasOwnProperty: { + url: 'https://262.ecma-international.org/12.0/#sec-hasownproperty' + }, + HasProperty: { + url: 'https://262.ecma-international.org/12.0/#sec-hasproperty' + }, + 'host-synchronizes-with': { + url: 'https://262.ecma-international.org/12.0/#sec-host-synchronizes-with' + }, + HostEventSet: { + url: 'https://262.ecma-international.org/12.0/#sec-hosteventset' + }, + HourFromTime: { + url: 'https://262.ecma-international.org/12.0/#eqn-HourFromTime' + }, + IfAbruptRejectPromise: { + url: 'https://262.ecma-international.org/12.0/#sec-ifabruptrejectpromise' + }, + ImportedLocalNames: { + url: 'https://262.ecma-international.org/12.0/#sec-importedlocalnames' + }, + InitializeBoundName: { + url: 'https://262.ecma-international.org/12.0/#sec-initializeboundname' + }, + InitializeEnvironment: { + url: 'https://262.ecma-international.org/12.0/#sec-source-text-module-record-initialize-environment' + }, + InitializeHostDefinedRealm: { + url: 'https://262.ecma-international.org/12.0/#sec-initializehostdefinedrealm' + }, + InitializeReferencedBinding: { + url: 'https://262.ecma-international.org/12.0/#sec-initializereferencedbinding' + }, + InitializeTypedArrayFromArrayBuffer: { + url: 'https://262.ecma-international.org/12.0/#sec-initializetypedarrayfromarraybuffer' + }, + InitializeTypedArrayFromArrayLike: { + url: 'https://262.ecma-international.org/12.0/#sec-initializetypedarrayfromarraylike' + }, + InitializeTypedArrayFromList: { + url: 'https://262.ecma-international.org/12.0/#sec-initializetypedarrayfromlist' + }, + InitializeTypedArrayFromTypedArray: { + url: 'https://262.ecma-international.org/12.0/#sec-initializetypedarrayfromtypedarray' + }, + InLeapYear: { + url: 'https://262.ecma-international.org/12.0/#eqn-InLeapYear' + }, + InnerModuleEvaluation: { + url: 'https://262.ecma-international.org/12.0/#sec-innermoduleevaluation' + }, + InnerModuleLinking: { + url: 'https://262.ecma-international.org/12.0/#sec-InnerModuleLinking' + }, + InstanceofOperator: { + url: 'https://262.ecma-international.org/12.0/#sec-instanceofoperator' + }, + IntegerIndexedElementGet: { + url: 'https://262.ecma-international.org/12.0/#sec-integerindexedelementget' + }, + IntegerIndexedElementSet: { + url: 'https://262.ecma-international.org/12.0/#sec-integerindexedelementset' + }, + IntegerIndexedObjectCreate: { + url: 'https://262.ecma-international.org/12.0/#sec-integerindexedobjectcreate' + }, + InternalizeJSONProperty: { + url: 'https://262.ecma-international.org/12.0/#sec-internalizejsonproperty' + }, + Invoke: { + url: 'https://262.ecma-international.org/12.0/#sec-invoke' + }, + IsAccessorDescriptor: { + url: 'https://262.ecma-international.org/12.0/#sec-isaccessordescriptor' + }, + IsAnonymousFunctionDefinition: { + url: 'https://262.ecma-international.org/12.0/#sec-isanonymousfunctiondefinition' + }, + IsArray: { + url: 'https://262.ecma-international.org/12.0/#sec-isarray' + }, + IsBigIntElementType: { + url: 'https://262.ecma-international.org/12.0/#sec-isbigintelementtype' + }, + IsCallable: { + url: 'https://262.ecma-international.org/12.0/#sec-iscallable' + }, + IsCompatiblePropertyDescriptor: { + url: 'https://262.ecma-international.org/12.0/#sec-iscompatiblepropertydescriptor' + }, + IsConcatSpreadable: { + url: 'https://262.ecma-international.org/12.0/#sec-isconcatspreadable' + }, + IsConstructor: { + url: 'https://262.ecma-international.org/12.0/#sec-isconstructor' + }, + IsDataDescriptor: { + url: 'https://262.ecma-international.org/12.0/#sec-isdatadescriptor' + }, + IsDetachedBuffer: { + url: 'https://262.ecma-international.org/12.0/#sec-isdetachedbuffer' + }, + IsExtensible: { + url: 'https://262.ecma-international.org/12.0/#sec-isextensible-o' + }, + IsGenericDescriptor: { + url: 'https://262.ecma-international.org/12.0/#sec-isgenericdescriptor' + }, + IsInTailPosition: { + url: 'https://262.ecma-international.org/12.0/#sec-isintailposition' + }, + IsIntegralNumber: { + url: 'https://262.ecma-international.org/12.0/#sec-isintegralnumber' + }, + IsLabelledFunction: { + url: 'https://262.ecma-international.org/12.0/#sec-islabelledfunction' + }, + IsNoTearConfiguration: { + url: 'https://262.ecma-international.org/12.0/#sec-isnotearconfiguration' + }, + IsPromise: { + url: 'https://262.ecma-international.org/12.0/#sec-ispromise' + }, + IsPropertyKey: { + url: 'https://262.ecma-international.org/12.0/#sec-ispropertykey' + }, + IsPropertyReference: { + url: 'https://262.ecma-international.org/12.0/#sec-ispropertyreference' + }, + IsRegExp: { + url: 'https://262.ecma-international.org/12.0/#sec-isregexp' + }, + IsSharedArrayBuffer: { + url: 'https://262.ecma-international.org/12.0/#sec-issharedarraybuffer' + }, + IsStringPrefix: { + url: 'https://262.ecma-international.org/12.0/#sec-isstringprefix' + }, + IsSuperReference: { + url: 'https://262.ecma-international.org/12.0/#sec-issuperreference' + }, + IsUnclampedIntegerElementType: { + url: 'https://262.ecma-international.org/12.0/#sec-isunclampedintegerelementtype' + }, + IsUnresolvableReference: { + url: 'https://262.ecma-international.org/12.0/#sec-isunresolvablereference' + }, + IsUnsignedElementType: { + url: 'https://262.ecma-international.org/12.0/#sec-isunsignedelementtype' + }, + IsValidIntegerIndex: { + url: 'https://262.ecma-international.org/12.0/#sec-isvalidintegerindex' + }, + IsValidRegularExpressionLiteral: { + url: 'https://262.ecma-international.org/12.0/#sec-isvalidregularexpressionliteral' + }, + IsWordChar: { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-iswordchar-abstract-operation' + }, + IterableToList: { + url: 'https://262.ecma-international.org/12.0/#sec-iterabletolist' + }, + IteratorClose: { + url: 'https://262.ecma-international.org/12.0/#sec-iteratorclose' + }, + IteratorComplete: { + url: 'https://262.ecma-international.org/12.0/#sec-iteratorcomplete' + }, + IteratorNext: { + url: 'https://262.ecma-international.org/12.0/#sec-iteratornext' + }, + IteratorStep: { + url: 'https://262.ecma-international.org/12.0/#sec-iteratorstep' + }, + IteratorValue: { + url: 'https://262.ecma-international.org/12.0/#sec-iteratorvalue' + }, + LeaveCriticalSection: { + url: 'https://262.ecma-international.org/12.0/#sec-leavecriticalsection' + }, + LengthOfArrayLike: { + url: 'https://262.ecma-international.org/12.0/#sec-lengthofarraylike' + }, + LocalTime: { + url: 'https://262.ecma-international.org/12.0/#sec-localtime' + }, + LocalTZA: { + url: 'https://262.ecma-international.org/12.0/#sec-local-time-zone-adjustment' + }, + LoopContinues: { + url: 'https://262.ecma-international.org/12.0/#sec-loopcontinues' + }, + MakeArgGetter: { + url: 'https://262.ecma-international.org/12.0/#sec-makearggetter' + }, + MakeArgSetter: { + url: 'https://262.ecma-international.org/12.0/#sec-makeargsetter' + }, + MakeBasicObject: { + url: 'https://262.ecma-international.org/12.0/#sec-makebasicobject' + }, + MakeClassConstructor: { + url: 'https://262.ecma-international.org/12.0/#sec-makeclassconstructor' + }, + MakeConstructor: { + url: 'https://262.ecma-international.org/12.0/#sec-makeconstructor' + }, + MakeDate: { + url: 'https://262.ecma-international.org/12.0/#sec-makedate' + }, + MakeDay: { + url: 'https://262.ecma-international.org/12.0/#sec-makeday' + }, + MakeMethod: { + url: 'https://262.ecma-international.org/12.0/#sec-makemethod' + }, + MakeSuperPropertyReference: { + url: 'https://262.ecma-international.org/12.0/#sec-makesuperpropertyreference' + }, + MakeTime: { + url: 'https://262.ecma-international.org/12.0/#sec-maketime' + }, + max: { + url: 'https://262.ecma-international.org/12.0/#eqn-max' + }, + 'memory-order': { + url: 'https://262.ecma-international.org/12.0/#sec-memory-order' + }, + min: { + url: 'https://262.ecma-international.org/12.0/#eqn-min' + }, + MinFromTime: { + url: 'https://262.ecma-international.org/12.0/#eqn-MinFromTime' + }, + ModuleNamespaceCreate: { + url: 'https://262.ecma-international.org/12.0/#sec-modulenamespacecreate' + }, + modulo: { + url: 'https://262.ecma-international.org/12.0/#eqn-modulo' + }, + MonthFromTime: { + url: 'https://262.ecma-international.org/12.0/#eqn-MonthFromTime' + }, + msFromTime: { + url: 'https://262.ecma-international.org/12.0/#eqn-msFromTime' + }, + NewDeclarativeEnvironment: { + url: 'https://262.ecma-international.org/12.0/#sec-newdeclarativeenvironment' + }, + NewFunctionEnvironment: { + url: 'https://262.ecma-international.org/12.0/#sec-newfunctionenvironment' + }, + NewGlobalEnvironment: { + url: 'https://262.ecma-international.org/12.0/#sec-newglobalenvironment' + }, + NewModuleEnvironment: { + url: 'https://262.ecma-international.org/12.0/#sec-newmoduleenvironment' + }, + NewObjectEnvironment: { + url: 'https://262.ecma-international.org/12.0/#sec-newobjectenvironment' + }, + NewPromiseCapability: { + url: 'https://262.ecma-international.org/12.0/#sec-newpromisecapability' + }, + NewPromiseReactionJob: { + url: 'https://262.ecma-international.org/12.0/#sec-newpromisereactionjob' + }, + NewPromiseResolveThenableJob: { + url: 'https://262.ecma-international.org/12.0/#sec-newpromiseresolvethenablejob' + }, + NormalCompletion: { + url: 'https://262.ecma-international.org/12.0/#sec-normalcompletion' + }, + NotifyWaiter: { + url: 'https://262.ecma-international.org/12.0/#sec-notifywaiter' + }, + 'Number::add': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-add' + }, + 'Number::bitwiseAND': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-bitwiseAND' + }, + 'Number::bitwiseNOT': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-bitwiseNOT' + }, + 'Number::bitwiseOR': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-bitwiseOR' + }, + 'Number::bitwiseXOR': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-bitwiseXOR' + }, + 'Number::divide': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-divide' + }, + 'Number::equal': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-equal' + }, + 'Number::exponentiate': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-exponentiate' + }, + 'Number::leftShift': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-leftShift' + }, + 'Number::lessThan': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-lessThan' + }, + 'Number::multiply': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-multiply' + }, + 'Number::remainder': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-remainder' + }, + 'Number::sameValue': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-sameValue' + }, + 'Number::sameValueZero': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-sameValueZero' + }, + 'Number::signedRightShift': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-signedRightShift' + }, + 'Number::subtract': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-subtract' + }, + 'Number::toString': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-tostring' + }, + 'Number::unaryMinus': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-unaryMinus' + }, + 'Number::unsignedRightShift': { + url: 'https://262.ecma-international.org/12.0/#sec-numeric-types-number-unsignedRightShift' + }, + NumberBitwiseOp: { + url: 'https://262.ecma-international.org/12.0/#sec-numberbitwiseop' + }, + NumberToBigInt: { + url: 'https://262.ecma-international.org/12.0/#sec-numbertobigint' + }, + NumericToRawBytes: { + url: 'https://262.ecma-international.org/12.0/#sec-numerictorawbytes' + }, + ObjectDefineProperties: { + url: 'https://262.ecma-international.org/12.0/#sec-objectdefineproperties' + }, + OrdinaryCallBindThis: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinarycallbindthis' + }, + OrdinaryCallEvaluateBody: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinarycallevaluatebody' + }, + OrdinaryCreateFromConstructor: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinarycreatefromconstructor' + }, + OrdinaryDefineOwnProperty: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinarydefineownproperty' + }, + OrdinaryDelete: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinarydelete' + }, + OrdinaryFunctionCreate: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinaryfunctioncreate' + }, + OrdinaryGet: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinaryget' + }, + OrdinaryGetOwnProperty: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinarygetownproperty' + }, + OrdinaryGetPrototypeOf: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinarygetprototypeof' + }, + OrdinaryHasInstance: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinaryhasinstance' + }, + OrdinaryHasProperty: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinaryhasproperty' + }, + OrdinaryIsExtensible: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinaryisextensible' + }, + OrdinaryObjectCreate: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinaryobjectcreate' + }, + OrdinaryOwnPropertyKeys: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinaryownpropertykeys' + }, + OrdinaryPreventExtensions: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinarypreventextensions' + }, + OrdinarySet: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinaryset' + }, + OrdinarySetPrototypeOf: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinarysetprototypeof' + }, + OrdinarySetWithOwnDescriptor: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinarysetwithowndescriptor' + }, + OrdinaryToPrimitive: { + url: 'https://262.ecma-international.org/12.0/#sec-ordinarytoprimitive' + }, + ParseModule: { + url: 'https://262.ecma-international.org/12.0/#sec-parsemodule' + }, + ParsePattern: { + url: 'https://262.ecma-international.org/12.0/#sec-parsepattern' + }, + ParseScript: { + url: 'https://262.ecma-international.org/12.0/#sec-parse-script' + }, + ParseText: { + url: 'https://262.ecma-international.org/12.0/#sec-parsetext' + }, + PerformEval: { + url: 'https://262.ecma-international.org/12.0/#sec-performeval' + }, + PerformPromiseAll: { + url: 'https://262.ecma-international.org/12.0/#sec-performpromiseall' + }, + PerformPromiseAllSettled: { + url: 'https://262.ecma-international.org/12.0/#sec-performpromiseallsettled' + }, + PerformPromiseAny: { + url: 'https://262.ecma-international.org/12.0/#sec-performpromiseany' + }, + PerformPromiseRace: { + url: 'https://262.ecma-international.org/12.0/#sec-performpromiserace' + }, + PerformPromiseThen: { + url: 'https://262.ecma-international.org/12.0/#sec-performpromisethen' + }, + PrepareForOrdinaryCall: { + url: 'https://262.ecma-international.org/12.0/#sec-prepareforordinarycall' + }, + PrepareForTailCall: { + url: 'https://262.ecma-international.org/12.0/#sec-preparefortailcall' + }, + PromiseResolve: { + url: 'https://262.ecma-international.org/12.0/#sec-promise-resolve' + }, + ProxyCreate: { + url: 'https://262.ecma-international.org/12.0/#sec-proxycreate' + }, + PutValue: { + url: 'https://262.ecma-international.org/12.0/#sec-putvalue' + }, + QuoteJSONString: { + url: 'https://262.ecma-international.org/12.0/#sec-quotejsonstring' + }, + RawBytesToNumeric: { + url: 'https://262.ecma-international.org/12.0/#sec-rawbytestonumeric' + }, + 'reads-bytes-from': { + url: 'https://262.ecma-international.org/12.0/#sec-reads-bytes-from' + }, + 'reads-from': { + url: 'https://262.ecma-international.org/12.0/#sec-reads-from' + }, + RegExpAlloc: { + url: 'https://262.ecma-international.org/12.0/#sec-regexpalloc' + }, + RegExpBuiltinExec: { + url: 'https://262.ecma-international.org/12.0/#sec-regexpbuiltinexec' + }, + RegExpCreate: { + url: 'https://262.ecma-international.org/12.0/#sec-regexpcreate' + }, + RegExpExec: { + url: 'https://262.ecma-international.org/12.0/#sec-regexpexec' + }, + RegExpInitialize: { + url: 'https://262.ecma-international.org/12.0/#sec-regexpinitialize' + }, + RejectPromise: { + url: 'https://262.ecma-international.org/12.0/#sec-rejectpromise' + }, + RemoveWaiter: { + url: 'https://262.ecma-international.org/12.0/#sec-removewaiter' + }, + RemoveWaiters: { + url: 'https://262.ecma-international.org/12.0/#sec-removewaiters' + }, + RepeatMatcher: { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-repeatmatcher-abstract-operation' + }, + RequireInternalSlot: { + url: 'https://262.ecma-international.org/12.0/#sec-requireinternalslot' + }, + RequireObjectCoercible: { + url: 'https://262.ecma-international.org/12.0/#sec-requireobjectcoercible' + }, + ResolveBinding: { + url: 'https://262.ecma-international.org/12.0/#sec-resolvebinding' + }, + ResolveThisBinding: { + url: 'https://262.ecma-international.org/12.0/#sec-resolvethisbinding' + }, + ReturnIfAbrupt: { + url: 'https://262.ecma-international.org/12.0/#sec-returnifabrupt' + }, + SameValue: { + url: 'https://262.ecma-international.org/12.0/#sec-samevalue' + }, + SameValueNonNumeric: { + url: 'https://262.ecma-international.org/12.0/#sec-samevaluenonnumeric' + }, + SameValueZero: { + url: 'https://262.ecma-international.org/12.0/#sec-samevaluezero' + }, + ScriptEvaluation: { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-scriptevaluation' + }, + SecFromTime: { + url: 'https://262.ecma-international.org/12.0/#eqn-SecFromTime' + }, + SerializeJSONArray: { + url: 'https://262.ecma-international.org/12.0/#sec-serializejsonarray' + }, + SerializeJSONObject: { + url: 'https://262.ecma-international.org/12.0/#sec-serializejsonobject' + }, + SerializeJSONProperty: { + url: 'https://262.ecma-international.org/12.0/#sec-serializejsonproperty' + }, + Set: { + url: 'https://262.ecma-international.org/12.0/#sec-set-o-p-v-throw' + }, + SetDefaultGlobalBindings: { + url: 'https://262.ecma-international.org/12.0/#sec-setdefaultglobalbindings' + }, + SetFunctionLength: { + url: 'https://262.ecma-international.org/12.0/#sec-setfunctionlength' + }, + SetFunctionName: { + url: 'https://262.ecma-international.org/12.0/#sec-setfunctionname' + }, + SetImmutablePrototype: { + url: 'https://262.ecma-international.org/12.0/#sec-set-immutable-prototype' + }, + SetIntegrityLevel: { + url: 'https://262.ecma-international.org/12.0/#sec-setintegritylevel' + }, + SetRealmGlobalObject: { + url: 'https://262.ecma-international.org/12.0/#sec-setrealmglobalobject' + }, + SetTypedArrayFromArrayLike: { + url: 'https://262.ecma-international.org/12.0/#sec-settypedarrayfromarraylike' + }, + SetTypedArrayFromTypedArray: { + url: 'https://262.ecma-international.org/12.0/#sec-settypedarrayfromtypedarray' + }, + SetValueInBuffer: { + url: 'https://262.ecma-international.org/12.0/#sec-setvalueinbuffer' + }, + SetViewValue: { + url: 'https://262.ecma-international.org/12.0/#sec-setviewvalue' + }, + SharedDataBlockEventSet: { + url: 'https://262.ecma-international.org/12.0/#sec-sharedatablockeventset' + }, + SortCompare: { + url: 'https://262.ecma-international.org/12.0/#sec-sortcompare' + }, + SpeciesConstructor: { + url: 'https://262.ecma-international.org/12.0/#sec-speciesconstructor' + }, + SplitMatch: { + url: 'https://262.ecma-international.org/12.0/#sec-splitmatch' + }, + 'Strict Equality Comparison': { + url: 'https://262.ecma-international.org/12.0/#sec-strict-equality-comparison' + }, + StringCreate: { + url: 'https://262.ecma-international.org/12.0/#sec-stringcreate' + }, + StringGetOwnProperty: { + url: 'https://262.ecma-international.org/12.0/#sec-stringgetownproperty' + }, + StringIndexOf: { + url: 'https://262.ecma-international.org/12.0/#sec-stringindexof' + }, + StringPad: { + url: 'https://262.ecma-international.org/12.0/#sec-stringpad' + }, + StringToBigInt: { + url: 'https://262.ecma-international.org/12.0/#sec-stringtobigint' + }, + StringToCodePoints: { + url: 'https://262.ecma-international.org/12.0/#sec-stringtocodepoints' + }, + substring: { + url: 'https://262.ecma-international.org/12.0/#substring' + }, + SuspendAgent: { + url: 'https://262.ecma-international.org/12.0/#sec-suspendagent' + }, + SymbolDescriptiveString: { + url: 'https://262.ecma-international.org/12.0/#sec-symboldescriptivestring' + }, + 'synchronizes-with': { + url: 'https://262.ecma-international.org/12.0/#sec-synchronizes-with' + }, + TestIntegrityLevel: { + url: 'https://262.ecma-international.org/12.0/#sec-testintegritylevel' + }, + thisBigIntValue: { + url: 'https://262.ecma-international.org/12.0/#thisbigintvalue' + }, + thisBooleanValue: { + url: 'https://262.ecma-international.org/12.0/#thisbooleanvalue' + }, + thisNumberValue: { + url: 'https://262.ecma-international.org/12.0/#thisnumbervalue' + }, + thisStringValue: { + url: 'https://262.ecma-international.org/12.0/#thisstringvalue' + }, + thisSymbolValue: { + url: 'https://262.ecma-international.org/12.0/#thissymbolvalue' + }, + thisTimeValue: { + url: 'https://262.ecma-international.org/12.0/#thistimevalue' + }, + ThrowCompletion: { + url: 'https://262.ecma-international.org/12.0/#sec-throwcompletion' + }, + TimeClip: { + url: 'https://262.ecma-international.org/12.0/#sec-timeclip' + }, + TimeFromYear: { + url: 'https://262.ecma-international.org/12.0/#eqn-TimeFromYear' + }, + TimeString: { + url: 'https://262.ecma-international.org/12.0/#sec-timestring' + }, + TimeWithinDay: { + url: 'https://262.ecma-international.org/12.0/#eqn-TimeWithinDay' + }, + TimeZoneString: { + url: 'https://262.ecma-international.org/12.0/#sec-timezoneestring' + }, + ToBigInt: { + url: 'https://262.ecma-international.org/12.0/#sec-tobigint' + }, + ToBigInt64: { + url: 'https://262.ecma-international.org/12.0/#sec-tobigint64' + }, + ToBigUint64: { + url: 'https://262.ecma-international.org/12.0/#sec-tobiguint64' + }, + ToBoolean: { + url: 'https://262.ecma-international.org/12.0/#sec-toboolean' + }, + ToDateString: { + url: 'https://262.ecma-international.org/12.0/#sec-todatestring' + }, + ToIndex: { + url: 'https://262.ecma-international.org/12.0/#sec-toindex' + }, + ToInt16: { + url: 'https://262.ecma-international.org/12.0/#sec-toint16' + }, + ToInt32: { + url: 'https://262.ecma-international.org/12.0/#sec-toint32' + }, + ToInt8: { + url: 'https://262.ecma-international.org/12.0/#sec-toint8' + }, + ToIntegerOrInfinity: { + url: 'https://262.ecma-international.org/12.0/#sec-tointegerorinfinity' + }, + ToLength: { + url: 'https://262.ecma-international.org/12.0/#sec-tolength' + }, + ToNumber: { + url: 'https://262.ecma-international.org/12.0/#sec-tonumber' + }, + ToNumeric: { + url: 'https://262.ecma-international.org/12.0/#sec-tonumeric' + }, + ToObject: { + url: 'https://262.ecma-international.org/12.0/#sec-toobject' + }, + ToPrimitive: { + url: 'https://262.ecma-international.org/12.0/#sec-toprimitive' + }, + ToPropertyDescriptor: { + url: 'https://262.ecma-international.org/12.0/#sec-topropertydescriptor' + }, + ToPropertyKey: { + url: 'https://262.ecma-international.org/12.0/#sec-topropertykey' + }, + ToString: { + url: 'https://262.ecma-international.org/12.0/#sec-tostring' + }, + ToUint16: { + url: 'https://262.ecma-international.org/12.0/#sec-touint16' + }, + ToUint32: { + url: 'https://262.ecma-international.org/12.0/#sec-touint32' + }, + ToUint8: { + url: 'https://262.ecma-international.org/12.0/#sec-touint8' + }, + ToUint8Clamp: { + url: 'https://262.ecma-international.org/12.0/#sec-touint8clamp' + }, + TriggerPromiseReactions: { + url: 'https://262.ecma-international.org/12.0/#sec-triggerpromisereactions' + }, + TrimString: { + url: 'https://262.ecma-international.org/12.0/#sec-trimstring' + }, + Type: { + url: 'https://262.ecma-international.org/12.0/#sec-ecmascript-data-types-and-values' + }, + TypedArrayCreate: { + url: 'https://262.ecma-international.org/12.0/#typedarray-create' + }, + TypedArraySpeciesCreate: { + url: 'https://262.ecma-international.org/12.0/#typedarray-species-create' + }, + UnicodeEscape: { + url: 'https://262.ecma-international.org/12.0/#sec-unicodeescape' + }, + UnicodeMatchProperty: { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-unicodematchproperty-p' + }, + UnicodeMatchPropertyValue: { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v' + }, + UpdateEmpty: { + url: 'https://262.ecma-international.org/12.0/#sec-updateempty' + }, + UTC: { + url: 'https://262.ecma-international.org/12.0/#sec-utc-t' + }, + UTF16EncodeCodePoint: { + url: 'https://262.ecma-international.org/12.0/#sec-utf16encodecodepoint' + }, + UTF16SurrogatePairToCodePoint: { + url: 'https://262.ecma-international.org/12.0/#sec-utf16decodesurrogatepair' + }, + ValidateAndApplyPropertyDescriptor: { + url: 'https://262.ecma-international.org/12.0/#sec-validateandapplypropertydescriptor' + }, + ValidateAtomicAccess: { + url: 'https://262.ecma-international.org/12.0/#sec-validateatomicaccess' + }, + ValidateIntegerTypedArray: { + url: 'https://262.ecma-international.org/12.0/#sec-validateintegertypedarray' + }, + ValidateTypedArray: { + url: 'https://262.ecma-international.org/12.0/#sec-validatetypedarray' + }, + ValueOfReadEvent: { + url: 'https://262.ecma-international.org/12.0/#sec-valueofreadevent' + }, + WeakRefDeref: { + url: 'https://262.ecma-international.org/12.0/#sec-weakrefderef' + }, + WeekDay: { + url: 'https://262.ecma-international.org/12.0/#sec-week-day' + }, + WordCharacters: { + url: 'https://262.ecma-international.org/12.0/#sec-runtime-semantics-wordcharacters-abstract-operation' + }, + YearFromTime: { + url: 'https://262.ecma-international.org/12.0/#eqn-YearFromTime' + }, + Yield: { + url: 'https://262.ecma-international.org/12.0/#sec-yield' + } +}; diff --git a/node_modules/es-abstract/operations/2022.js b/node_modules/es-abstract/operations/2022.js new file mode 100644 index 0000000000000000000000000000000000000000..f678e68ead1a3123aad026c63857a0077b22af6d --- /dev/null +++ b/node_modules/es-abstract/operations/2022.js @@ -0,0 +1,1372 @@ +'use strict'; + +module.exports = { + abs: { + url: 'https://262.ecma-international.org/13.0/#eqn-abs' + }, + AddEntriesFromIterable: { + url: 'https://262.ecma-international.org/13.0/#sec-add-entries-from-iterable' + }, + AddRestrictedFunctionProperties: { + url: 'https://262.ecma-international.org/13.0/#sec-addrestrictedfunctionproperties' + }, + AddToKeptObjects: { + url: 'https://262.ecma-international.org/13.0/#sec-addtokeptobjects' + }, + AddWaiter: { + url: 'https://262.ecma-international.org/13.0/#sec-addwaiter' + }, + AdvanceStringIndex: { + url: 'https://262.ecma-international.org/13.0/#sec-advancestringindex' + }, + 'agent-order': { + url: 'https://262.ecma-international.org/13.0/#sec-agent-order' + }, + AgentCanSuspend: { + url: 'https://262.ecma-international.org/13.0/#sec-agentcansuspend' + }, + AgentSignifier: { + url: 'https://262.ecma-international.org/13.0/#sec-agentsignifier' + }, + AllocateArrayBuffer: { + url: 'https://262.ecma-international.org/13.0/#sec-allocatearraybuffer' + }, + AllocateSharedArrayBuffer: { + url: 'https://262.ecma-international.org/13.0/#sec-allocatesharedarraybuffer' + }, + AllocateTypedArray: { + url: 'https://262.ecma-international.org/13.0/#sec-allocatetypedarray' + }, + AllocateTypedArrayBuffer: { + url: 'https://262.ecma-international.org/13.0/#sec-allocatetypedarraybuffer' + }, + ApplyStringOrNumericBinaryOperator: { + url: 'https://262.ecma-international.org/13.0/#sec-applystringornumericbinaryoperator' + }, + ArrayCreate: { + url: 'https://262.ecma-international.org/13.0/#sec-arraycreate' + }, + ArraySetLength: { + url: 'https://262.ecma-international.org/13.0/#sec-arraysetlength' + }, + ArraySpeciesCreate: { + url: 'https://262.ecma-international.org/13.0/#sec-arrayspeciescreate' + }, + AsyncBlockStart: { + url: 'https://262.ecma-international.org/13.0/#sec-asyncblockstart' + }, + AsyncFromSyncIteratorContinuation: { + url: 'https://262.ecma-international.org/13.0/#sec-asyncfromsynciteratorcontinuation' + }, + AsyncFunctionStart: { + url: 'https://262.ecma-international.org/13.0/#sec-async-functions-abstract-operations-async-function-start' + }, + AsyncGeneratorAwaitReturn: { + url: 'https://262.ecma-international.org/13.0/#sec-asyncgeneratorawaitreturn' + }, + AsyncGeneratorCompleteStep: { + url: 'https://262.ecma-international.org/13.0/#sec-asyncgeneratorcompletestep' + }, + AsyncGeneratorDrainQueue: { + url: 'https://262.ecma-international.org/13.0/#sec-asyncgeneratordrainqueue' + }, + AsyncGeneratorEnqueue: { + url: 'https://262.ecma-international.org/13.0/#sec-asyncgeneratorenqueue' + }, + AsyncGeneratorResume: { + url: 'https://262.ecma-international.org/13.0/#sec-asyncgeneratorresume' + }, + AsyncGeneratorStart: { + url: 'https://262.ecma-international.org/13.0/#sec-asyncgeneratorstart' + }, + AsyncGeneratorUnwrapYieldResumption: { + url: 'https://262.ecma-international.org/13.0/#sec-asyncgeneratorunwrapyieldresumption' + }, + AsyncGeneratorValidate: { + url: 'https://262.ecma-international.org/13.0/#sec-asyncgeneratorvalidate' + }, + AsyncGeneratorYield: { + url: 'https://262.ecma-international.org/13.0/#sec-asyncgeneratoryield' + }, + AsyncIteratorClose: { + url: 'https://262.ecma-international.org/13.0/#sec-asynciteratorclose' + }, + AsyncModuleExecutionFulfilled: { + url: 'https://262.ecma-international.org/13.0/#sec-async-module-execution-fulfilled' + }, + AsyncModuleExecutionRejected: { + url: 'https://262.ecma-international.org/13.0/#sec-async-module-execution-rejected' + }, + AtomicReadModifyWrite: { + url: 'https://262.ecma-international.org/13.0/#sec-atomicreadmodifywrite' + }, + Await: { + url: 'https://262.ecma-international.org/13.0/#await' + }, + BackreferenceMatcher: { + url: 'https://262.ecma-international.org/13.0/#sec-backreference-matcher' + }, + 'BigInt::add': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-add' + }, + 'BigInt::bitwiseAND': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-bitwiseAND' + }, + 'BigInt::bitwiseNOT': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-bitwiseNOT' + }, + 'BigInt::bitwiseOR': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-bitwiseOR' + }, + 'BigInt::bitwiseXOR': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-bitwiseXOR' + }, + 'BigInt::divide': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-divide' + }, + 'BigInt::equal': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-equal' + }, + 'BigInt::exponentiate': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-exponentiate' + }, + 'BigInt::leftShift': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-leftShift' + }, + 'BigInt::lessThan': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-lessThan' + }, + 'BigInt::multiply': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-multiply' + }, + 'BigInt::remainder': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-remainder' + }, + 'BigInt::sameValue': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-sameValue' + }, + 'BigInt::sameValueZero': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-sameValueZero' + }, + 'BigInt::signedRightShift': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-signedRightShift' + }, + 'BigInt::subtract': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-subtract' + }, + 'BigInt::toString': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-tostring' + }, + 'BigInt::unaryMinus': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-unaryMinus' + }, + 'BigInt::unsignedRightShift': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-bigint-unsignedRightShift' + }, + BigIntBitwiseOp: { + url: 'https://262.ecma-international.org/13.0/#sec-bigintbitwiseop' + }, + BinaryAnd: { + url: 'https://262.ecma-international.org/13.0/#sec-binaryand' + }, + BinaryOr: { + url: 'https://262.ecma-international.org/13.0/#sec-binaryor' + }, + BinaryXor: { + url: 'https://262.ecma-international.org/13.0/#sec-binaryxor' + }, + BlockDeclarationInstantiation: { + url: 'https://262.ecma-international.org/13.0/#sec-blockdeclarationinstantiation' + }, + BoundFunctionCreate: { + url: 'https://262.ecma-international.org/13.0/#sec-boundfunctioncreate' + }, + ByteListBitwiseOp: { + url: 'https://262.ecma-international.org/13.0/#sec-bytelistbitwiseop' + }, + ByteListEqual: { + url: 'https://262.ecma-international.org/13.0/#sec-bytelistequal' + }, + Call: { + url: 'https://262.ecma-international.org/13.0/#sec-call' + }, + Canonicalize: { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-canonicalize-ch' + }, + CanonicalNumericIndexString: { + url: 'https://262.ecma-international.org/13.0/#sec-canonicalnumericindexstring' + }, + CaseClauseIsSelected: { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-caseclauseisselected' + }, + CharacterRange: { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-characterrange-abstract-operation' + }, + CharacterRangeOrUnion: { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation' + }, + CharacterSetMatcher: { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation' + }, + clamp: { + url: 'https://262.ecma-international.org/13.0/#clamping' + }, + CleanupFinalizationRegistry: { + url: 'https://262.ecma-international.org/13.0/#sec-cleanup-finalization-registry' + }, + ClearKeptObjects: { + url: 'https://262.ecma-international.org/13.0/#sec-clear-kept-objects' + }, + CloneArrayBuffer: { + url: 'https://262.ecma-international.org/13.0/#sec-clonearraybuffer' + }, + CodePointAt: { + url: 'https://262.ecma-international.org/13.0/#sec-codepointat' + }, + CodePointsToString: { + url: 'https://262.ecma-international.org/13.0/#sec-codepointstostring' + }, + CompletePropertyDescriptor: { + url: 'https://262.ecma-international.org/13.0/#sec-completepropertydescriptor' + }, + Completion: { + url: 'https://262.ecma-international.org/13.0/#sec-completion-ao' + }, + CompletionRecord: { + url: 'https://262.ecma-international.org/13.0/#sec-completion-record-specification-type' + }, + ComposeWriteEventBytes: { + url: 'https://262.ecma-international.org/13.0/#sec-composewriteeventbytes' + }, + Construct: { + url: 'https://262.ecma-international.org/13.0/#sec-construct' + }, + CopyDataBlockBytes: { + url: 'https://262.ecma-international.org/13.0/#sec-copydatablockbytes' + }, + CopyDataProperties: { + url: 'https://262.ecma-international.org/13.0/#sec-copydataproperties' + }, + CreateArrayFromList: { + url: 'https://262.ecma-international.org/13.0/#sec-createarrayfromlist' + }, + CreateArrayIterator: { + url: 'https://262.ecma-international.org/13.0/#sec-createarrayiterator' + }, + CreateAsyncFromSyncIterator: { + url: 'https://262.ecma-international.org/13.0/#sec-createasyncfromsynciterator' + }, + CreateAsyncIteratorFromClosure: { + url: 'https://262.ecma-international.org/13.0/#sec-createasynciteratorfromclosure' + }, + CreateBuiltinFunction: { + url: 'https://262.ecma-international.org/13.0/#sec-createbuiltinfunction' + }, + CreateByteDataBlock: { + url: 'https://262.ecma-international.org/13.0/#sec-createbytedatablock' + }, + CreateDataProperty: { + url: 'https://262.ecma-international.org/13.0/#sec-createdataproperty' + }, + CreateDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/13.0/#sec-createdatapropertyorthrow' + }, + CreateDynamicFunction: { + url: 'https://262.ecma-international.org/13.0/#sec-createdynamicfunction' + }, + CreateForInIterator: { + url: 'https://262.ecma-international.org/13.0/#sec-createforiniterator' + }, + CreateHTML: { + url: 'https://262.ecma-international.org/13.0/#sec-createhtml' + }, + CreateIntrinsics: { + url: 'https://262.ecma-international.org/13.0/#sec-createintrinsics' + }, + CreateIteratorFromClosure: { + url: 'https://262.ecma-international.org/13.0/#sec-createiteratorfromclosure' + }, + CreateIterResultObject: { + url: 'https://262.ecma-international.org/13.0/#sec-createiterresultobject' + }, + CreateListFromArrayLike: { + url: 'https://262.ecma-international.org/13.0/#sec-createlistfromarraylike' + }, + CreateListIteratorRecord: { + url: 'https://262.ecma-international.org/13.0/#sec-createlistiteratorRecord' + }, + CreateMapIterator: { + url: 'https://262.ecma-international.org/13.0/#sec-createmapiterator' + }, + CreateMappedArgumentsObject: { + url: 'https://262.ecma-international.org/13.0/#sec-createmappedargumentsobject' + }, + CreateMethodProperty: { + url: 'https://262.ecma-international.org/13.0/#sec-createmethodproperty' + }, + CreateNonEnumerableDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/13.0/#sec-createnonenumerabledatapropertyorthrow' + }, + CreatePerIterationEnvironment: { + url: 'https://262.ecma-international.org/13.0/#sec-createperiterationenvironment' + }, + CreateRealm: { + url: 'https://262.ecma-international.org/13.0/#sec-createrealm' + }, + CreateRegExpStringIterator: { + url: 'https://262.ecma-international.org/13.0/#sec-createregexpstringiterator' + }, + CreateResolvingFunctions: { + url: 'https://262.ecma-international.org/13.0/#sec-createresolvingfunctions' + }, + CreateSetIterator: { + url: 'https://262.ecma-international.org/13.0/#sec-createsetiterator' + }, + CreateSharedByteDataBlock: { + url: 'https://262.ecma-international.org/13.0/#sec-createsharedbytedatablock' + }, + CreateUnmappedArgumentsObject: { + url: 'https://262.ecma-international.org/13.0/#sec-createunmappedargumentsobject' + }, + DateFromTime: { + url: 'https://262.ecma-international.org/13.0/#sec-date-number' + }, + DateString: { + url: 'https://262.ecma-international.org/13.0/#sec-datestring' + }, + Day: { + url: 'https://262.ecma-international.org/13.0/#eqn-Day' + }, + DayFromYear: { + url: 'https://262.ecma-international.org/13.0/#eqn-DaysFromYear' + }, + DaysInYear: { + url: 'https://262.ecma-international.org/13.0/#eqn-DaysInYear' + }, + DayWithinYear: { + url: 'https://262.ecma-international.org/13.0/#eqn-DayWithinYear' + }, + Decode: { + url: 'https://262.ecma-international.org/13.0/#sec-decode' + }, + DefineField: { + url: 'https://262.ecma-international.org/13.0/#sec-definefield' + }, + DefineMethodProperty: { + url: 'https://262.ecma-international.org/13.0/#sec-definemethodproperty' + }, + DefinePropertyOrThrow: { + url: 'https://262.ecma-international.org/13.0/#sec-definepropertyorthrow' + }, + DeletePropertyOrThrow: { + url: 'https://262.ecma-international.org/13.0/#sec-deletepropertyorthrow' + }, + DetachArrayBuffer: { + url: 'https://262.ecma-international.org/13.0/#sec-detacharraybuffer' + }, + Encode: { + url: 'https://262.ecma-international.org/13.0/#sec-encode' + }, + EnterCriticalSection: { + url: 'https://262.ecma-international.org/13.0/#sec-entercriticalsection' + }, + EnumerableOwnPropertyNames: { + url: 'https://262.ecma-international.org/13.0/#sec-enumerableownpropertynames' + }, + EnumerateObjectProperties: { + url: 'https://262.ecma-international.org/13.0/#sec-enumerate-object-properties' + }, + EscapeRegExpPattern: { + url: 'https://262.ecma-international.org/13.0/#sec-escaperegexppattern' + }, + EvalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/13.0/#sec-evaldeclarationinstantiation' + }, + EvaluateCall: { + url: 'https://262.ecma-international.org/13.0/#sec-evaluatecall' + }, + EvaluateNew: { + url: 'https://262.ecma-international.org/13.0/#sec-evaluatenew' + }, + EvaluatePropertyAccessWithExpressionKey: { + url: 'https://262.ecma-international.org/13.0/#sec-evaluate-property-access-with-expression-key' + }, + EvaluatePropertyAccessWithIdentifierKey: { + url: 'https://262.ecma-international.org/13.0/#sec-evaluate-property-access-with-identifier-key' + }, + EvaluateStringOrNumericBinaryExpression: { + url: 'https://262.ecma-international.org/13.0/#sec-evaluatestringornumericbinaryexpression' + }, + EventSet: { + url: 'https://262.ecma-international.org/13.0/#sec-event-set' + }, + ExecuteAsyncModule: { + url: 'https://262.ecma-international.org/13.0/#sec-execute-async-module' + }, + FinishDynamicImport: { + url: 'https://262.ecma-international.org/13.0/#sec-finishdynamicimport' + }, + FlattenIntoArray: { + url: 'https://262.ecma-international.org/13.0/#sec-flattenintoarray' + }, + floor: { + url: 'https://262.ecma-international.org/13.0/#eqn-floor' + }, + ForBodyEvaluation: { + url: 'https://262.ecma-international.org/13.0/#sec-forbodyevaluation' + }, + 'ForIn/OfBodyEvaluation': { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset' + }, + 'ForIn/OfHeadEvaluation': { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-forinofheadevaluation' + }, + FromPropertyDescriptor: { + url: 'https://262.ecma-international.org/13.0/#sec-frompropertydescriptor' + }, + FulfillPromise: { + url: 'https://262.ecma-international.org/13.0/#sec-fulfillpromise' + }, + FunctionDeclarationInstantiation: { + url: 'https://262.ecma-international.org/13.0/#sec-functiondeclarationinstantiation' + }, + GatherAvailableAncestors: { + url: 'https://262.ecma-international.org/13.0/#sec-gather-available-ancestors' + }, + GeneratorResume: { + url: 'https://262.ecma-international.org/13.0/#sec-generatorresume' + }, + GeneratorResumeAbrupt: { + url: 'https://262.ecma-international.org/13.0/#sec-generatorresumeabrupt' + }, + GeneratorStart: { + url: 'https://262.ecma-international.org/13.0/#sec-generatorstart' + }, + GeneratorValidate: { + url: 'https://262.ecma-international.org/13.0/#sec-generatorvalidate' + }, + GeneratorYield: { + url: 'https://262.ecma-international.org/13.0/#sec-generatoryield' + }, + Get: { + url: 'https://262.ecma-international.org/13.0/#sec-get-o-p' + }, + GetActiveScriptOrModule: { + url: 'https://262.ecma-international.org/13.0/#sec-getactivescriptormodule' + }, + GetFunctionRealm: { + url: 'https://262.ecma-international.org/13.0/#sec-getfunctionrealm' + }, + GetGeneratorKind: { + url: 'https://262.ecma-international.org/13.0/#sec-getgeneratorkind' + }, + GetGlobalObject: { + url: 'https://262.ecma-international.org/13.0/#sec-getglobalobject' + }, + GetIdentifierReference: { + url: 'https://262.ecma-international.org/13.0/#sec-getidentifierreference' + }, + GetIterator: { + url: 'https://262.ecma-international.org/13.0/#sec-getiterator' + }, + GetMatchIndexPair: { + url: 'https://262.ecma-international.org/13.0/#sec-getmatchindexpair' + }, + GetMatchString: { + url: 'https://262.ecma-international.org/13.0/#sec-getmatchstring' + }, + GetMethod: { + url: 'https://262.ecma-international.org/13.0/#sec-getmethod' + }, + GetModifySetValueInBuffer: { + url: 'https://262.ecma-international.org/13.0/#sec-getmodifysetvalueinbuffer' + }, + GetModuleNamespace: { + url: 'https://262.ecma-international.org/13.0/#sec-getmodulenamespace' + }, + GetNewTarget: { + url: 'https://262.ecma-international.org/13.0/#sec-getnewtarget' + }, + GetOwnPropertyKeys: { + url: 'https://262.ecma-international.org/13.0/#sec-getownpropertykeys' + }, + GetPromiseResolve: { + url: 'https://262.ecma-international.org/13.0/#sec-getpromiseresolve' + }, + GetPrototypeFromConstructor: { + url: 'https://262.ecma-international.org/13.0/#sec-getprototypefromconstructor' + }, + GetStringIndex: { + url: 'https://262.ecma-international.org/13.0/#sec-getstringindex' + }, + GetSubstitution: { + url: 'https://262.ecma-international.org/13.0/#sec-getsubstitution' + }, + GetSuperConstructor: { + url: 'https://262.ecma-international.org/13.0/#sec-getsuperconstructor' + }, + GetTemplateObject: { + url: 'https://262.ecma-international.org/13.0/#sec-gettemplateobject' + }, + GetThisEnvironment: { + url: 'https://262.ecma-international.org/13.0/#sec-getthisenvironment' + }, + GetThisValue: { + url: 'https://262.ecma-international.org/13.0/#sec-getthisvalue' + }, + GetV: { + url: 'https://262.ecma-international.org/13.0/#sec-getv' + }, + GetValue: { + url: 'https://262.ecma-international.org/13.0/#sec-getvalue' + }, + GetValueFromBuffer: { + url: 'https://262.ecma-international.org/13.0/#sec-getvaluefrombuffer' + }, + GetViewValue: { + url: 'https://262.ecma-international.org/13.0/#sec-getviewvalue' + }, + GetWaiterList: { + url: 'https://262.ecma-international.org/13.0/#sec-getwaiterlist' + }, + GlobalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/13.0/#sec-globaldeclarationinstantiation' + }, + 'happens-before': { + url: 'https://262.ecma-international.org/13.0/#sec-happens-before' + }, + HasOwnProperty: { + url: 'https://262.ecma-international.org/13.0/#sec-hasownproperty' + }, + HasProperty: { + url: 'https://262.ecma-international.org/13.0/#sec-hasproperty' + }, + 'host-synchronizes-with': { + url: 'https://262.ecma-international.org/13.0/#sec-host-synchronizes-with' + }, + HostEventSet: { + url: 'https://262.ecma-international.org/13.0/#sec-hosteventset' + }, + HourFromTime: { + url: 'https://262.ecma-international.org/13.0/#eqn-HourFromTime' + }, + IfAbruptCloseIterator: { + url: 'https://262.ecma-international.org/13.0/#sec-ifabruptcloseiterator' + }, + IfAbruptRejectPromise: { + url: 'https://262.ecma-international.org/13.0/#sec-ifabruptrejectpromise' + }, + ImportedLocalNames: { + url: 'https://262.ecma-international.org/13.0/#sec-importedlocalnames' + }, + InitializeBoundName: { + url: 'https://262.ecma-international.org/13.0/#sec-initializeboundname' + }, + InitializeHostDefinedRealm: { + url: 'https://262.ecma-international.org/13.0/#sec-initializehostdefinedrealm' + }, + InitializeInstanceElements: { + url: 'https://262.ecma-international.org/13.0/#sec-initializeinstanceelements' + }, + InitializeReferencedBinding: { + url: 'https://262.ecma-international.org/13.0/#sec-initializereferencedbinding' + }, + InitializeTypedArrayFromArrayBuffer: { + url: 'https://262.ecma-international.org/13.0/#sec-initializetypedarrayfromarraybuffer' + }, + InitializeTypedArrayFromArrayLike: { + url: 'https://262.ecma-international.org/13.0/#sec-initializetypedarrayfromarraylike' + }, + InitializeTypedArrayFromList: { + url: 'https://262.ecma-international.org/13.0/#sec-initializetypedarrayfromlist' + }, + InitializeTypedArrayFromTypedArray: { + url: 'https://262.ecma-international.org/13.0/#sec-initializetypedarrayfromtypedarray' + }, + InLeapYear: { + url: 'https://262.ecma-international.org/13.0/#eqn-InLeapYear' + }, + InnerModuleEvaluation: { + url: 'https://262.ecma-international.org/13.0/#sec-innermoduleevaluation' + }, + InnerModuleLinking: { + url: 'https://262.ecma-international.org/13.0/#sec-InnerModuleLinking' + }, + InstallErrorCause: { + url: 'https://262.ecma-international.org/13.0/#sec-installerrorcause' + }, + InstanceofOperator: { + url: 'https://262.ecma-international.org/13.0/#sec-instanceofoperator' + }, + IntegerIndexedElementGet: { + url: 'https://262.ecma-international.org/13.0/#sec-integerindexedelementget' + }, + IntegerIndexedElementSet: { + url: 'https://262.ecma-international.org/13.0/#sec-integerindexedelementset' + }, + IntegerIndexedObjectCreate: { + url: 'https://262.ecma-international.org/13.0/#sec-integerindexedobjectcreate' + }, + InternalizeJSONProperty: { + url: 'https://262.ecma-international.org/13.0/#sec-internalizejsonproperty' + }, + Invoke: { + url: 'https://262.ecma-international.org/13.0/#sec-invoke' + }, + IsAccessorDescriptor: { + url: 'https://262.ecma-international.org/13.0/#sec-isaccessordescriptor' + }, + IsAnonymousFunctionDefinition: { + url: 'https://262.ecma-international.org/13.0/#sec-isanonymousfunctiondefinition' + }, + IsArray: { + url: 'https://262.ecma-international.org/13.0/#sec-isarray' + }, + IsBigIntElementType: { + url: 'https://262.ecma-international.org/13.0/#sec-isbigintelementtype' + }, + IsCallable: { + url: 'https://262.ecma-international.org/13.0/#sec-iscallable' + }, + IsCompatiblePropertyDescriptor: { + url: 'https://262.ecma-international.org/13.0/#sec-iscompatiblepropertydescriptor' + }, + IsConcatSpreadable: { + url: 'https://262.ecma-international.org/13.0/#sec-isconcatspreadable' + }, + IsConstructor: { + url: 'https://262.ecma-international.org/13.0/#sec-isconstructor' + }, + IsDataDescriptor: { + url: 'https://262.ecma-international.org/13.0/#sec-isdatadescriptor' + }, + IsDetachedBuffer: { + url: 'https://262.ecma-international.org/13.0/#sec-isdetachedbuffer' + }, + IsExtensible: { + url: 'https://262.ecma-international.org/13.0/#sec-isextensible-o' + }, + IsGenericDescriptor: { + url: 'https://262.ecma-international.org/13.0/#sec-isgenericdescriptor' + }, + IsInTailPosition: { + url: 'https://262.ecma-international.org/13.0/#sec-isintailposition' + }, + IsIntegralNumber: { + url: 'https://262.ecma-international.org/13.0/#sec-isintegralnumber' + }, + IsLabelledFunction: { + url: 'https://262.ecma-international.org/13.0/#sec-islabelledfunction' + }, + IsLessThan: { + url: 'https://262.ecma-international.org/13.0/#sec-islessthan' + }, + IsLooselyEqual: { + url: 'https://262.ecma-international.org/13.0/#sec-islooselyequal' + }, + IsNoTearConfiguration: { + url: 'https://262.ecma-international.org/13.0/#sec-isnotearconfiguration' + }, + IsPrivateReference: { + url: 'https://262.ecma-international.org/13.0/#sec-isprivatereference' + }, + IsPromise: { + url: 'https://262.ecma-international.org/13.0/#sec-ispromise' + }, + IsPropertyKey: { + url: 'https://262.ecma-international.org/13.0/#sec-ispropertykey' + }, + IsPropertyReference: { + url: 'https://262.ecma-international.org/13.0/#sec-ispropertyreference' + }, + IsRegExp: { + url: 'https://262.ecma-international.org/13.0/#sec-isregexp' + }, + IsSharedArrayBuffer: { + url: 'https://262.ecma-international.org/13.0/#sec-issharedarraybuffer' + }, + IsStrictlyEqual: { + url: 'https://262.ecma-international.org/13.0/#sec-isstrictlyequal' + }, + IsStringPrefix: { + url: 'https://262.ecma-international.org/13.0/#sec-isstringprefix' + }, + IsStringWellFormedUnicode: { + url: 'https://262.ecma-international.org/13.0/#sec-isstringwellformedunicode' + }, + IsSuperReference: { + url: 'https://262.ecma-international.org/13.0/#sec-issuperreference' + }, + IsUnclampedIntegerElementType: { + url: 'https://262.ecma-international.org/13.0/#sec-isunclampedintegerelementtype' + }, + IsUnresolvableReference: { + url: 'https://262.ecma-international.org/13.0/#sec-isunresolvablereference' + }, + IsUnsignedElementType: { + url: 'https://262.ecma-international.org/13.0/#sec-isunsignedelementtype' + }, + IsValidIntegerIndex: { + url: 'https://262.ecma-international.org/13.0/#sec-isvalidintegerindex' + }, + IsValidRegularExpressionLiteral: { + url: 'https://262.ecma-international.org/13.0/#sec-isvalidregularexpressionliteral' + }, + IsWordChar: { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-iswordchar-abstract-operation' + }, + IterableToList: { + url: 'https://262.ecma-international.org/13.0/#sec-iterabletolist' + }, + IteratorClose: { + url: 'https://262.ecma-international.org/13.0/#sec-iteratorclose' + }, + IteratorComplete: { + url: 'https://262.ecma-international.org/13.0/#sec-iteratorcomplete' + }, + IteratorNext: { + url: 'https://262.ecma-international.org/13.0/#sec-iteratornext' + }, + IteratorStep: { + url: 'https://262.ecma-international.org/13.0/#sec-iteratorstep' + }, + IteratorValue: { + url: 'https://262.ecma-international.org/13.0/#sec-iteratorvalue' + }, + LeaveCriticalSection: { + url: 'https://262.ecma-international.org/13.0/#sec-leavecriticalsection' + }, + LengthOfArrayLike: { + url: 'https://262.ecma-international.org/13.0/#sec-lengthofarraylike' + }, + LocalTime: { + url: 'https://262.ecma-international.org/13.0/#sec-localtime' + }, + LocalTZA: { + url: 'https://262.ecma-international.org/13.0/#sec-local-time-zone-adjustment' + }, + LoopContinues: { + url: 'https://262.ecma-international.org/13.0/#sec-loopcontinues' + }, + MakeArgGetter: { + url: 'https://262.ecma-international.org/13.0/#sec-makearggetter' + }, + MakeArgSetter: { + url: 'https://262.ecma-international.org/13.0/#sec-makeargsetter' + }, + MakeBasicObject: { + url: 'https://262.ecma-international.org/13.0/#sec-makebasicobject' + }, + MakeClassConstructor: { + url: 'https://262.ecma-international.org/13.0/#sec-makeclassconstructor' + }, + MakeConstructor: { + url: 'https://262.ecma-international.org/13.0/#sec-makeconstructor' + }, + MakeDate: { + url: 'https://262.ecma-international.org/13.0/#sec-makedate' + }, + MakeDay: { + url: 'https://262.ecma-international.org/13.0/#sec-makeday' + }, + MakeMatchIndicesIndexPairArray: { + url: 'https://262.ecma-international.org/13.0/#sec-makematchindicesindexpairarray' + }, + MakeMethod: { + url: 'https://262.ecma-international.org/13.0/#sec-makemethod' + }, + MakePrivateReference: { + url: 'https://262.ecma-international.org/13.0/#sec-makeprivatereference' + }, + MakeSuperPropertyReference: { + url: 'https://262.ecma-international.org/13.0/#sec-makesuperpropertyreference' + }, + MakeTime: { + url: 'https://262.ecma-international.org/13.0/#sec-maketime' + }, + max: { + url: 'https://262.ecma-international.org/13.0/#eqn-max' + }, + 'memory-order': { + url: 'https://262.ecma-international.org/13.0/#sec-memory-order' + }, + min: { + url: 'https://262.ecma-international.org/13.0/#eqn-min' + }, + MinFromTime: { + url: 'https://262.ecma-international.org/13.0/#eqn-MinFromTime' + }, + ModuleNamespaceCreate: { + url: 'https://262.ecma-international.org/13.0/#sec-modulenamespacecreate' + }, + modulo: { + url: 'https://262.ecma-international.org/13.0/#eqn-modulo' + }, + MonthFromTime: { + url: 'https://262.ecma-international.org/13.0/#eqn-MonthFromTime' + }, + msFromTime: { + url: 'https://262.ecma-international.org/13.0/#eqn-msFromTime' + }, + NewDeclarativeEnvironment: { + url: 'https://262.ecma-international.org/13.0/#sec-newdeclarativeenvironment' + }, + NewFunctionEnvironment: { + url: 'https://262.ecma-international.org/13.0/#sec-newfunctionenvironment' + }, + NewGlobalEnvironment: { + url: 'https://262.ecma-international.org/13.0/#sec-newglobalenvironment' + }, + NewModuleEnvironment: { + url: 'https://262.ecma-international.org/13.0/#sec-newmoduleenvironment' + }, + NewObjectEnvironment: { + url: 'https://262.ecma-international.org/13.0/#sec-newobjectenvironment' + }, + NewPrivateEnvironment: { + url: 'https://262.ecma-international.org/13.0/#sec-newprivateenvironment' + }, + NewPromiseCapability: { + url: 'https://262.ecma-international.org/13.0/#sec-newpromisecapability' + }, + NewPromiseReactionJob: { + url: 'https://262.ecma-international.org/13.0/#sec-newpromisereactionjob' + }, + NewPromiseResolveThenableJob: { + url: 'https://262.ecma-international.org/13.0/#sec-newpromiseresolvethenablejob' + }, + NormalCompletion: { + url: 'https://262.ecma-international.org/13.0/#sec-normalcompletion' + }, + NotifyWaiter: { + url: 'https://262.ecma-international.org/13.0/#sec-notifywaiter' + }, + 'Number::add': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-add' + }, + 'Number::bitwiseAND': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-bitwiseAND' + }, + 'Number::bitwiseNOT': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-bitwiseNOT' + }, + 'Number::bitwiseOR': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-bitwiseOR' + }, + 'Number::bitwiseXOR': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-bitwiseXOR' + }, + 'Number::divide': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-divide' + }, + 'Number::equal': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-equal' + }, + 'Number::exponentiate': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-exponentiate' + }, + 'Number::leftShift': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-leftShift' + }, + 'Number::lessThan': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-lessThan' + }, + 'Number::multiply': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-multiply' + }, + 'Number::remainder': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-remainder' + }, + 'Number::sameValue': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-sameValue' + }, + 'Number::sameValueZero': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-sameValueZero' + }, + 'Number::signedRightShift': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-signedRightShift' + }, + 'Number::subtract': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-subtract' + }, + 'Number::toString': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-tostring' + }, + 'Number::unaryMinus': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-unaryMinus' + }, + 'Number::unsignedRightShift': { + url: 'https://262.ecma-international.org/13.0/#sec-numeric-types-number-unsignedRightShift' + }, + NumberBitwiseOp: { + url: 'https://262.ecma-international.org/13.0/#sec-numberbitwiseop' + }, + NumberToBigInt: { + url: 'https://262.ecma-international.org/13.0/#sec-numbertobigint' + }, + NumericToRawBytes: { + url: 'https://262.ecma-international.org/13.0/#sec-numerictorawbytes' + }, + ObjectDefineProperties: { + url: 'https://262.ecma-international.org/13.0/#sec-objectdefineproperties' + }, + OrdinaryCallBindThis: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinarycallbindthis' + }, + OrdinaryCallEvaluateBody: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinarycallevaluatebody' + }, + OrdinaryCreateFromConstructor: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinarycreatefromconstructor' + }, + OrdinaryDefineOwnProperty: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinarydefineownproperty' + }, + OrdinaryDelete: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinarydelete' + }, + OrdinaryFunctionCreate: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinaryfunctioncreate' + }, + OrdinaryGet: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinaryget' + }, + OrdinaryGetOwnProperty: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinarygetownproperty' + }, + OrdinaryGetPrototypeOf: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinarygetprototypeof' + }, + OrdinaryHasInstance: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinaryhasinstance' + }, + OrdinaryHasProperty: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinaryhasproperty' + }, + OrdinaryIsExtensible: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinaryisextensible' + }, + OrdinaryObjectCreate: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinaryobjectcreate' + }, + OrdinaryOwnPropertyKeys: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinaryownpropertykeys' + }, + OrdinaryPreventExtensions: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinarypreventextensions' + }, + OrdinarySet: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinaryset' + }, + OrdinarySetPrototypeOf: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinarysetprototypeof' + }, + OrdinarySetWithOwnDescriptor: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinarysetwithowndescriptor' + }, + OrdinaryToPrimitive: { + url: 'https://262.ecma-international.org/13.0/#sec-ordinarytoprimitive' + }, + ParseModule: { + url: 'https://262.ecma-international.org/13.0/#sec-parsemodule' + }, + ParsePattern: { + url: 'https://262.ecma-international.org/13.0/#sec-parsepattern' + }, + ParseScript: { + url: 'https://262.ecma-international.org/13.0/#sec-parse-script' + }, + ParseText: { + url: 'https://262.ecma-international.org/13.0/#sec-parsetext' + }, + PerformEval: { + url: 'https://262.ecma-international.org/13.0/#sec-performeval' + }, + PerformPromiseAll: { + url: 'https://262.ecma-international.org/13.0/#sec-performpromiseall' + }, + PerformPromiseAllSettled: { + url: 'https://262.ecma-international.org/13.0/#sec-performpromiseallsettled' + }, + PerformPromiseAny: { + url: 'https://262.ecma-international.org/13.0/#sec-performpromiseany' + }, + PerformPromiseRace: { + url: 'https://262.ecma-international.org/13.0/#sec-performpromiserace' + }, + PerformPromiseThen: { + url: 'https://262.ecma-international.org/13.0/#sec-performpromisethen' + }, + PrepareForOrdinaryCall: { + url: 'https://262.ecma-international.org/13.0/#sec-prepareforordinarycall' + }, + PrepareForTailCall: { + url: 'https://262.ecma-international.org/13.0/#sec-preparefortailcall' + }, + PrivateElementFind: { + url: 'https://262.ecma-international.org/13.0/#sec-privateelementfind' + }, + PrivateFieldAdd: { + url: 'https://262.ecma-international.org/13.0/#sec-privatefieldadd' + }, + PrivateGet: { + url: 'https://262.ecma-international.org/13.0/#sec-privateget' + }, + PrivateMethodOrAccessorAdd: { + url: 'https://262.ecma-international.org/13.0/#sec-privatemethodoraccessoradd' + }, + PrivateSet: { + url: 'https://262.ecma-international.org/13.0/#sec-privateset' + }, + PromiseResolve: { + url: 'https://262.ecma-international.org/13.0/#sec-promise-resolve' + }, + ProxyCreate: { + url: 'https://262.ecma-international.org/13.0/#sec-proxycreate' + }, + PutValue: { + url: 'https://262.ecma-international.org/13.0/#sec-putvalue' + }, + QuoteJSONString: { + url: 'https://262.ecma-international.org/13.0/#sec-quotejsonstring' + }, + RawBytesToNumeric: { + url: 'https://262.ecma-international.org/13.0/#sec-rawbytestonumeric' + }, + 'reads-bytes-from': { + url: 'https://262.ecma-international.org/13.0/#sec-reads-bytes-from' + }, + 'reads-from': { + url: 'https://262.ecma-international.org/13.0/#sec-reads-from' + }, + RegExpAlloc: { + url: 'https://262.ecma-international.org/13.0/#sec-regexpalloc' + }, + RegExpBuiltinExec: { + url: 'https://262.ecma-international.org/13.0/#sec-regexpbuiltinexec' + }, + RegExpCreate: { + url: 'https://262.ecma-international.org/13.0/#sec-regexpcreate' + }, + RegExpExec: { + url: 'https://262.ecma-international.org/13.0/#sec-regexpexec' + }, + RegExpHasFlag: { + url: 'https://262.ecma-international.org/13.0/#sec-regexphasflag' + }, + RegExpInitialize: { + url: 'https://262.ecma-international.org/13.0/#sec-regexpinitialize' + }, + RejectPromise: { + url: 'https://262.ecma-international.org/13.0/#sec-rejectpromise' + }, + RemoveWaiter: { + url: 'https://262.ecma-international.org/13.0/#sec-removewaiter' + }, + RemoveWaiters: { + url: 'https://262.ecma-international.org/13.0/#sec-removewaiters' + }, + RepeatMatcher: { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-repeatmatcher-abstract-operation' + }, + RequireInternalSlot: { + url: 'https://262.ecma-international.org/13.0/#sec-requireinternalslot' + }, + RequireObjectCoercible: { + url: 'https://262.ecma-international.org/13.0/#sec-requireobjectcoercible' + }, + ResolveBinding: { + url: 'https://262.ecma-international.org/13.0/#sec-resolvebinding' + }, + ResolvePrivateIdentifier: { + url: 'https://262.ecma-international.org/13.0/#sec-resolve-private-identifier' + }, + ResolveThisBinding: { + url: 'https://262.ecma-international.org/13.0/#sec-resolvethisbinding' + }, + ReturnIfAbrupt: { + url: 'https://262.ecma-international.org/13.0/#sec-returnifabrupt' + }, + RoundMVResult: { + url: 'https://262.ecma-international.org/13.0/#sec-roundmvresult' + }, + SameValue: { + url: 'https://262.ecma-international.org/13.0/#sec-samevalue' + }, + SameValueNonNumeric: { + url: 'https://262.ecma-international.org/13.0/#sec-samevaluenonnumeric' + }, + SameValueZero: { + url: 'https://262.ecma-international.org/13.0/#sec-samevaluezero' + }, + ScriptEvaluation: { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-scriptevaluation' + }, + SecFromTime: { + url: 'https://262.ecma-international.org/13.0/#eqn-SecFromTime' + }, + SerializeJSONArray: { + url: 'https://262.ecma-international.org/13.0/#sec-serializejsonarray' + }, + SerializeJSONObject: { + url: 'https://262.ecma-international.org/13.0/#sec-serializejsonobject' + }, + SerializeJSONProperty: { + url: 'https://262.ecma-international.org/13.0/#sec-serializejsonproperty' + }, + Set: { + url: 'https://262.ecma-international.org/13.0/#sec-set-o-p-v-throw' + }, + SetDefaultGlobalBindings: { + url: 'https://262.ecma-international.org/13.0/#sec-setdefaultglobalbindings' + }, + SetFunctionLength: { + url: 'https://262.ecma-international.org/13.0/#sec-setfunctionlength' + }, + SetFunctionName: { + url: 'https://262.ecma-international.org/13.0/#sec-setfunctionname' + }, + SetImmutablePrototype: { + url: 'https://262.ecma-international.org/13.0/#sec-set-immutable-prototype' + }, + SetIntegrityLevel: { + url: 'https://262.ecma-international.org/13.0/#sec-setintegritylevel' + }, + SetRealmGlobalObject: { + url: 'https://262.ecma-international.org/13.0/#sec-setrealmglobalobject' + }, + SetTypedArrayFromArrayLike: { + url: 'https://262.ecma-international.org/13.0/#sec-settypedarrayfromarraylike' + }, + SetTypedArrayFromTypedArray: { + url: 'https://262.ecma-international.org/13.0/#sec-settypedarrayfromtypedarray' + }, + SetValueInBuffer: { + url: 'https://262.ecma-international.org/13.0/#sec-setvalueinbuffer' + }, + SetViewValue: { + url: 'https://262.ecma-international.org/13.0/#sec-setviewvalue' + }, + SharedDataBlockEventSet: { + url: 'https://262.ecma-international.org/13.0/#sec-sharedatablockeventset' + }, + SortIndexedProperties: { + url: 'https://262.ecma-international.org/13.0/#sec-sortindexedproperties' + }, + SpeciesConstructor: { + url: 'https://262.ecma-international.org/13.0/#sec-speciesconstructor' + }, + StringCreate: { + url: 'https://262.ecma-international.org/13.0/#sec-stringcreate' + }, + StringGetOwnProperty: { + url: 'https://262.ecma-international.org/13.0/#sec-stringgetownproperty' + }, + StringIndexOf: { + url: 'https://262.ecma-international.org/13.0/#sec-stringindexof' + }, + StringPad: { + url: 'https://262.ecma-international.org/13.0/#sec-stringpad' + }, + StringToBigInt: { + url: 'https://262.ecma-international.org/13.0/#sec-stringtobigint' + }, + StringToCodePoints: { + url: 'https://262.ecma-international.org/13.0/#sec-stringtocodepoints' + }, + StringToNumber: { + url: 'https://262.ecma-international.org/13.0/#sec-stringtonumber' + }, + substring: { + url: 'https://262.ecma-international.org/13.0/#substring' + }, + SuspendAgent: { + url: 'https://262.ecma-international.org/13.0/#sec-suspendagent' + }, + SymbolDescriptiveString: { + url: 'https://262.ecma-international.org/13.0/#sec-symboldescriptivestring' + }, + 'synchronizes-with': { + url: 'https://262.ecma-international.org/13.0/#sec-synchronizes-with' + }, + TestIntegrityLevel: { + url: 'https://262.ecma-international.org/13.0/#sec-testintegritylevel' + }, + thisBigIntValue: { + url: 'https://262.ecma-international.org/13.0/#thisbigintvalue' + }, + thisBooleanValue: { + url: 'https://262.ecma-international.org/13.0/#thisbooleanvalue' + }, + thisNumberValue: { + url: 'https://262.ecma-international.org/13.0/#thisnumbervalue' + }, + thisStringValue: { + url: 'https://262.ecma-international.org/13.0/#thisstringvalue' + }, + thisSymbolValue: { + url: 'https://262.ecma-international.org/13.0/#thissymbolvalue' + }, + thisTimeValue: { + url: 'https://262.ecma-international.org/13.0/#thistimevalue' + }, + ThrowCompletion: { + url: 'https://262.ecma-international.org/13.0/#sec-throwcompletion' + }, + TimeClip: { + url: 'https://262.ecma-international.org/13.0/#sec-timeclip' + }, + TimeFromYear: { + url: 'https://262.ecma-international.org/13.0/#eqn-TimeFromYear' + }, + TimeString: { + url: 'https://262.ecma-international.org/13.0/#sec-timestring' + }, + TimeWithinDay: { + url: 'https://262.ecma-international.org/13.0/#eqn-TimeWithinDay' + }, + TimeZoneString: { + url: 'https://262.ecma-international.org/13.0/#sec-timezoneestring' + }, + ToBigInt: { + url: 'https://262.ecma-international.org/13.0/#sec-tobigint' + }, + ToBigInt64: { + url: 'https://262.ecma-international.org/13.0/#sec-tobigint64' + }, + ToBigUint64: { + url: 'https://262.ecma-international.org/13.0/#sec-tobiguint64' + }, + ToBoolean: { + url: 'https://262.ecma-international.org/13.0/#sec-toboolean' + }, + ToDateString: { + url: 'https://262.ecma-international.org/13.0/#sec-todatestring' + }, + ToIndex: { + url: 'https://262.ecma-international.org/13.0/#sec-toindex' + }, + ToInt16: { + url: 'https://262.ecma-international.org/13.0/#sec-toint16' + }, + ToInt32: { + url: 'https://262.ecma-international.org/13.0/#sec-toint32' + }, + ToInt8: { + url: 'https://262.ecma-international.org/13.0/#sec-toint8' + }, + ToIntegerOrInfinity: { + url: 'https://262.ecma-international.org/13.0/#sec-tointegerorinfinity' + }, + ToLength: { + url: 'https://262.ecma-international.org/13.0/#sec-tolength' + }, + ToNumber: { + url: 'https://262.ecma-international.org/13.0/#sec-tonumber' + }, + ToNumeric: { + url: 'https://262.ecma-international.org/13.0/#sec-tonumeric' + }, + ToObject: { + url: 'https://262.ecma-international.org/13.0/#sec-toobject' + }, + ToPrimitive: { + url: 'https://262.ecma-international.org/13.0/#sec-toprimitive' + }, + ToPropertyDescriptor: { + url: 'https://262.ecma-international.org/13.0/#sec-topropertydescriptor' + }, + ToPropertyKey: { + url: 'https://262.ecma-international.org/13.0/#sec-topropertykey' + }, + ToString: { + url: 'https://262.ecma-international.org/13.0/#sec-tostring' + }, + ToUint16: { + url: 'https://262.ecma-international.org/13.0/#sec-touint16' + }, + ToUint32: { + url: 'https://262.ecma-international.org/13.0/#sec-touint32' + }, + ToUint8: { + url: 'https://262.ecma-international.org/13.0/#sec-touint8' + }, + ToUint8Clamp: { + url: 'https://262.ecma-international.org/13.0/#sec-touint8clamp' + }, + ToZeroPaddedDecimalString: { + url: 'https://262.ecma-international.org/13.0/#sec-tozeropaddeddecimalstring' + }, + TriggerPromiseReactions: { + url: 'https://262.ecma-international.org/13.0/#sec-triggerpromisereactions' + }, + TrimString: { + url: 'https://262.ecma-international.org/13.0/#sec-trimstring' + }, + Type: { + url: 'https://262.ecma-international.org/13.0/#sec-ecmascript-data-types-and-values' + }, + TypedArrayCreate: { + url: 'https://262.ecma-international.org/13.0/#typedarray-create' + }, + TypedArrayElementSize: { + url: 'https://262.ecma-international.org/13.0/#sec-typedarrayelementsize' + }, + TypedArrayElementType: { + url: 'https://262.ecma-international.org/13.0/#sec-typedarrayelementtype' + }, + TypedArraySpeciesCreate: { + url: 'https://262.ecma-international.org/13.0/#typedarray-species-create' + }, + UnicodeEscape: { + url: 'https://262.ecma-international.org/13.0/#sec-unicodeescape' + }, + UnicodeMatchProperty: { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-unicodematchproperty-p' + }, + UnicodeMatchPropertyValue: { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v' + }, + UpdateEmpty: { + url: 'https://262.ecma-international.org/13.0/#sec-updateempty' + }, + UTC: { + url: 'https://262.ecma-international.org/13.0/#sec-utc-t' + }, + UTF16EncodeCodePoint: { + url: 'https://262.ecma-international.org/13.0/#sec-utf16encodecodepoint' + }, + UTF16SurrogatePairToCodePoint: { + url: 'https://262.ecma-international.org/13.0/#sec-utf16decodesurrogatepair' + }, + ValidateAndApplyPropertyDescriptor: { + url: 'https://262.ecma-international.org/13.0/#sec-validateandapplypropertydescriptor' + }, + ValidateAtomicAccess: { + url: 'https://262.ecma-international.org/13.0/#sec-validateatomicaccess' + }, + ValidateIntegerTypedArray: { + url: 'https://262.ecma-international.org/13.0/#sec-validateintegertypedarray' + }, + ValidateTypedArray: { + url: 'https://262.ecma-international.org/13.0/#sec-validatetypedarray' + }, + ValueOfReadEvent: { + url: 'https://262.ecma-international.org/13.0/#sec-valueofreadevent' + }, + WeakRefDeref: { + url: 'https://262.ecma-international.org/13.0/#sec-weakrefderef' + }, + WeekDay: { + url: 'https://262.ecma-international.org/13.0/#sec-week-day' + }, + WordCharacters: { + url: 'https://262.ecma-international.org/13.0/#sec-runtime-semantics-wordcharacters-abstract-operation' + }, + YearFromTime: { + url: 'https://262.ecma-international.org/13.0/#eqn-YearFromTime' + }, + Yield: { + url: 'https://262.ecma-international.org/13.0/#sec-yield' + } +}; diff --git a/node_modules/es-abstract/operations/2023.js b/node_modules/es-abstract/operations/2023.js new file mode 100644 index 0000000000000000000000000000000000000000..9bd85dd79be49173d7ba9786fd18bdcd88bcbb3b --- /dev/null +++ b/node_modules/es-abstract/operations/2023.js @@ -0,0 +1,1441 @@ +'use strict'; + +module.exports = { + abs: { + url: 'https://262.ecma-international.org/14.0/#eqn-abs' + }, + AddEntriesFromIterable: { + url: 'https://262.ecma-international.org/14.0/#sec-add-entries-from-iterable' + }, + AddRestrictedFunctionProperties: { + url: 'https://262.ecma-international.org/14.0/#sec-addrestrictedfunctionproperties' + }, + AddToKeptObjects: { + url: 'https://262.ecma-international.org/14.0/#sec-addtokeptobjects' + }, + AddWaiter: { + url: 'https://262.ecma-international.org/14.0/#sec-addwaiter' + }, + AdvanceStringIndex: { + url: 'https://262.ecma-international.org/14.0/#sec-advancestringindex' + }, + 'agent-order': { + url: 'https://262.ecma-international.org/14.0/#sec-agent-order' + }, + AgentCanSuspend: { + url: 'https://262.ecma-international.org/14.0/#sec-agentcansuspend' + }, + AgentSignifier: { + url: 'https://262.ecma-international.org/14.0/#sec-agentsignifier' + }, + AllocateArrayBuffer: { + url: 'https://262.ecma-international.org/14.0/#sec-allocatearraybuffer' + }, + AllocateSharedArrayBuffer: { + url: 'https://262.ecma-international.org/14.0/#sec-allocatesharedarraybuffer' + }, + AllocateTypedArray: { + url: 'https://262.ecma-international.org/14.0/#sec-allocatetypedarray' + }, + AllocateTypedArrayBuffer: { + url: 'https://262.ecma-international.org/14.0/#sec-allocatetypedarraybuffer' + }, + ApplyStringOrNumericBinaryOperator: { + url: 'https://262.ecma-international.org/14.0/#sec-applystringornumericbinaryoperator' + }, + ArrayCreate: { + url: 'https://262.ecma-international.org/14.0/#sec-arraycreate' + }, + ArraySetLength: { + url: 'https://262.ecma-international.org/14.0/#sec-arraysetlength' + }, + ArraySpeciesCreate: { + url: 'https://262.ecma-international.org/14.0/#sec-arrayspeciescreate' + }, + AsyncBlockStart: { + url: 'https://262.ecma-international.org/14.0/#sec-asyncblockstart' + }, + AsyncFromSyncIteratorContinuation: { + url: 'https://262.ecma-international.org/14.0/#sec-asyncfromsynciteratorcontinuation' + }, + AsyncFunctionStart: { + url: 'https://262.ecma-international.org/14.0/#sec-async-functions-abstract-operations-async-function-start' + }, + AsyncGeneratorAwaitReturn: { + url: 'https://262.ecma-international.org/14.0/#sec-asyncgeneratorawaitreturn' + }, + AsyncGeneratorCompleteStep: { + url: 'https://262.ecma-international.org/14.0/#sec-asyncgeneratorcompletestep' + }, + AsyncGeneratorDrainQueue: { + url: 'https://262.ecma-international.org/14.0/#sec-asyncgeneratordrainqueue' + }, + AsyncGeneratorEnqueue: { + url: 'https://262.ecma-international.org/14.0/#sec-asyncgeneratorenqueue' + }, + AsyncGeneratorResume: { + url: 'https://262.ecma-international.org/14.0/#sec-asyncgeneratorresume' + }, + AsyncGeneratorStart: { + url: 'https://262.ecma-international.org/14.0/#sec-asyncgeneratorstart' + }, + AsyncGeneratorUnwrapYieldResumption: { + url: 'https://262.ecma-international.org/14.0/#sec-asyncgeneratorunwrapyieldresumption' + }, + AsyncGeneratorValidate: { + url: 'https://262.ecma-international.org/14.0/#sec-asyncgeneratorvalidate' + }, + AsyncGeneratorYield: { + url: 'https://262.ecma-international.org/14.0/#sec-asyncgeneratoryield' + }, + AsyncIteratorClose: { + url: 'https://262.ecma-international.org/14.0/#sec-asynciteratorclose' + }, + AsyncModuleExecutionFulfilled: { + url: 'https://262.ecma-international.org/14.0/#sec-async-module-execution-fulfilled' + }, + AsyncModuleExecutionRejected: { + url: 'https://262.ecma-international.org/14.0/#sec-async-module-execution-rejected' + }, + AtomicReadModifyWrite: { + url: 'https://262.ecma-international.org/14.0/#sec-atomicreadmodifywrite' + }, + Await: { + url: 'https://262.ecma-international.org/14.0/#await' + }, + BackreferenceMatcher: { + url: 'https://262.ecma-international.org/14.0/#sec-backreference-matcher' + }, + 'BigInt::add': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-add' + }, + 'BigInt::bitwiseAND': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-bitwiseAND' + }, + 'BigInt::bitwiseNOT': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-bitwiseNOT' + }, + 'BigInt::bitwiseOR': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-bitwiseOR' + }, + 'BigInt::bitwiseXOR': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-bitwiseXOR' + }, + 'BigInt::divide': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-divide' + }, + 'BigInt::equal': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-equal' + }, + 'BigInt::exponentiate': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-exponentiate' + }, + 'BigInt::leftShift': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-leftShift' + }, + 'BigInt::lessThan': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-lessThan' + }, + 'BigInt::multiply': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-multiply' + }, + 'BigInt::remainder': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-remainder' + }, + 'BigInt::signedRightShift': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-signedRightShift' + }, + 'BigInt::subtract': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-subtract' + }, + 'BigInt::toString': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-tostring' + }, + 'BigInt::unaryMinus': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-unaryMinus' + }, + 'BigInt::unsignedRightShift': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-bigint-unsignedRightShift' + }, + BigIntBitwiseOp: { + url: 'https://262.ecma-international.org/14.0/#sec-bigintbitwiseop' + }, + BinaryAnd: { + url: 'https://262.ecma-international.org/14.0/#sec-binaryand' + }, + BinaryOr: { + url: 'https://262.ecma-international.org/14.0/#sec-binaryor' + }, + BinaryXor: { + url: 'https://262.ecma-international.org/14.0/#sec-binaryxor' + }, + BlockDeclarationInstantiation: { + url: 'https://262.ecma-international.org/14.0/#sec-blockdeclarationinstantiation' + }, + BoundFunctionCreate: { + url: 'https://262.ecma-international.org/14.0/#sec-boundfunctioncreate' + }, + ByteListBitwiseOp: { + url: 'https://262.ecma-international.org/14.0/#sec-bytelistbitwiseop' + }, + ByteListEqual: { + url: 'https://262.ecma-international.org/14.0/#sec-bytelistequal' + }, + Call: { + url: 'https://262.ecma-international.org/14.0/#sec-call' + }, + CanBeHeldWeakly: { + url: 'https://262.ecma-international.org/14.0/#sec-canbeheldweakly' + }, + Canonicalize: { + url: 'https://262.ecma-international.org/14.0/#sec-runtime-semantics-canonicalize-ch' + }, + CanonicalNumericIndexString: { + url: 'https://262.ecma-international.org/14.0/#sec-canonicalnumericindexstring' + }, + CaseClauseIsSelected: { + url: 'https://262.ecma-international.org/14.0/#sec-runtime-semantics-caseclauseisselected' + }, + CharacterRange: { + url: 'https://262.ecma-international.org/14.0/#sec-runtime-semantics-characterrange-abstract-operation' + }, + CharacterRangeOrUnion: { + url: 'https://262.ecma-international.org/14.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation' + }, + CharacterSetMatcher: { + url: 'https://262.ecma-international.org/14.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation' + }, + clamp: { + url: 'https://262.ecma-international.org/14.0/#clamping' + }, + CleanupFinalizationRegistry: { + url: 'https://262.ecma-international.org/14.0/#sec-cleanup-finalization-registry' + }, + ClearKeptObjects: { + url: 'https://262.ecma-international.org/14.0/#sec-clear-kept-objects' + }, + CloneArrayBuffer: { + url: 'https://262.ecma-international.org/14.0/#sec-clonearraybuffer' + }, + CodePointAt: { + url: 'https://262.ecma-international.org/14.0/#sec-codepointat' + }, + CodePointsToString: { + url: 'https://262.ecma-international.org/14.0/#sec-codepointstostring' + }, + CompareArrayElements: { + url: 'https://262.ecma-international.org/14.0/#sec-comparearrayelements' + }, + CompareTypedArrayElements: { + url: 'https://262.ecma-international.org/14.0/#sec-comparetypedarrayelements' + }, + CompletePropertyDescriptor: { + url: 'https://262.ecma-international.org/14.0/#sec-completepropertydescriptor' + }, + Completion: { + url: 'https://262.ecma-international.org/14.0/#sec-completion-ao' + }, + CompletionRecord: { + url: 'https://262.ecma-international.org/14.0/#sec-completion-record-specification-type' + }, + ComposeWriteEventBytes: { + url: 'https://262.ecma-international.org/14.0/#sec-composewriteeventbytes' + }, + Construct: { + url: 'https://262.ecma-international.org/14.0/#sec-construct' + }, + ContinueDynamicImport: { + url: 'https://262.ecma-international.org/14.0/#sec-ContinueDynamicImport' + }, + ContinueModuleLoading: { + url: 'https://262.ecma-international.org/14.0/#sec-ContinueModuleLoading' + }, + CopyDataBlockBytes: { + url: 'https://262.ecma-international.org/14.0/#sec-copydatablockbytes' + }, + CopyDataProperties: { + url: 'https://262.ecma-international.org/14.0/#sec-copydataproperties' + }, + CountLeftCapturingParensBefore: { + url: 'https://262.ecma-international.org/14.0/#sec-countleftcapturingparensbefore' + }, + CountLeftCapturingParensWithin: { + url: 'https://262.ecma-international.org/14.0/#sec-countleftcapturingparenswithin' + }, + CreateArrayFromList: { + url: 'https://262.ecma-international.org/14.0/#sec-createarrayfromlist' + }, + CreateArrayIterator: { + url: 'https://262.ecma-international.org/14.0/#sec-createarrayiterator' + }, + CreateAsyncFromSyncIterator: { + url: 'https://262.ecma-international.org/14.0/#sec-createasyncfromsynciterator' + }, + CreateAsyncIteratorFromClosure: { + url: 'https://262.ecma-international.org/14.0/#sec-createasynciteratorfromclosure' + }, + CreateBuiltinFunction: { + url: 'https://262.ecma-international.org/14.0/#sec-createbuiltinfunction' + }, + CreateByteDataBlock: { + url: 'https://262.ecma-international.org/14.0/#sec-createbytedatablock' + }, + CreateDataProperty: { + url: 'https://262.ecma-international.org/14.0/#sec-createdataproperty' + }, + CreateDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/14.0/#sec-createdatapropertyorthrow' + }, + CreateDynamicFunction: { + url: 'https://262.ecma-international.org/14.0/#sec-createdynamicfunction' + }, + CreateForInIterator: { + url: 'https://262.ecma-international.org/14.0/#sec-createforiniterator' + }, + CreateHTML: { + url: 'https://262.ecma-international.org/14.0/#sec-createhtml' + }, + CreateIntrinsics: { + url: 'https://262.ecma-international.org/14.0/#sec-createintrinsics' + }, + CreateIteratorFromClosure: { + url: 'https://262.ecma-international.org/14.0/#sec-createiteratorfromclosure' + }, + CreateIterResultObject: { + url: 'https://262.ecma-international.org/14.0/#sec-createiterresultobject' + }, + CreateListFromArrayLike: { + url: 'https://262.ecma-international.org/14.0/#sec-createlistfromarraylike' + }, + CreateListIteratorRecord: { + url: 'https://262.ecma-international.org/14.0/#sec-createlistiteratorRecord' + }, + CreateMapIterator: { + url: 'https://262.ecma-international.org/14.0/#sec-createmapiterator' + }, + CreateMappedArgumentsObject: { + url: 'https://262.ecma-international.org/14.0/#sec-createmappedargumentsobject' + }, + CreateMethodProperty: { + url: 'https://262.ecma-international.org/14.0/#sec-createmethodproperty' + }, + CreateNonEnumerableDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/14.0/#sec-createnonenumerabledatapropertyorthrow' + }, + CreatePerIterationEnvironment: { + url: 'https://262.ecma-international.org/14.0/#sec-createperiterationenvironment' + }, + CreateRealm: { + url: 'https://262.ecma-international.org/14.0/#sec-createrealm' + }, + CreateRegExpStringIterator: { + url: 'https://262.ecma-international.org/14.0/#sec-createregexpstringiterator' + }, + CreateResolvingFunctions: { + url: 'https://262.ecma-international.org/14.0/#sec-createresolvingfunctions' + }, + CreateSetIterator: { + url: 'https://262.ecma-international.org/14.0/#sec-createsetiterator' + }, + CreateSharedByteDataBlock: { + url: 'https://262.ecma-international.org/14.0/#sec-createsharedbytedatablock' + }, + CreateUnmappedArgumentsObject: { + url: 'https://262.ecma-international.org/14.0/#sec-createunmappedargumentsobject' + }, + DateFromTime: { + url: 'https://262.ecma-international.org/14.0/#sec-date-number' + }, + DateString: { + url: 'https://262.ecma-international.org/14.0/#sec-datestring' + }, + Day: { + url: 'https://262.ecma-international.org/14.0/#eqn-Day' + }, + DayFromYear: { + url: 'https://262.ecma-international.org/14.0/#eqn-DaysFromYear' + }, + DaysInYear: { + url: 'https://262.ecma-international.org/14.0/#eqn-DaysInYear' + }, + DayWithinYear: { + url: 'https://262.ecma-international.org/14.0/#eqn-DayWithinYear' + }, + Decode: { + url: 'https://262.ecma-international.org/14.0/#sec-decode' + }, + DefaultTimeZone: { + url: 'https://262.ecma-international.org/14.0/#sec-defaulttimezone' + }, + DefineField: { + url: 'https://262.ecma-international.org/14.0/#sec-definefield' + }, + DefineMethodProperty: { + url: 'https://262.ecma-international.org/14.0/#sec-definemethodproperty' + }, + DefinePropertyOrThrow: { + url: 'https://262.ecma-international.org/14.0/#sec-definepropertyorthrow' + }, + DeletePropertyOrThrow: { + url: 'https://262.ecma-international.org/14.0/#sec-deletepropertyorthrow' + }, + DetachArrayBuffer: { + url: 'https://262.ecma-international.org/14.0/#sec-detacharraybuffer' + }, + Encode: { + url: 'https://262.ecma-international.org/14.0/#sec-encode' + }, + EnterCriticalSection: { + url: 'https://262.ecma-international.org/14.0/#sec-entercriticalsection' + }, + EnumerableOwnProperties: { + url: 'https://262.ecma-international.org/14.0/#sec-enumerableownproperties' + }, + EnumerateObjectProperties: { + url: 'https://262.ecma-international.org/14.0/#sec-enumerate-object-properties' + }, + EscapeRegExpPattern: { + url: 'https://262.ecma-international.org/14.0/#sec-escaperegexppattern' + }, + EvalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/14.0/#sec-evaldeclarationinstantiation' + }, + EvaluateCall: { + url: 'https://262.ecma-international.org/14.0/#sec-evaluatecall' + }, + EvaluateNew: { + url: 'https://262.ecma-international.org/14.0/#sec-evaluatenew' + }, + EvaluatePropertyAccessWithExpressionKey: { + url: 'https://262.ecma-international.org/14.0/#sec-evaluate-property-access-with-expression-key' + }, + EvaluatePropertyAccessWithIdentifierKey: { + url: 'https://262.ecma-international.org/14.0/#sec-evaluate-property-access-with-identifier-key' + }, + EvaluateStringOrNumericBinaryExpression: { + url: 'https://262.ecma-international.org/14.0/#sec-evaluatestringornumericbinaryexpression' + }, + EventSet: { + url: 'https://262.ecma-international.org/14.0/#sec-event-set' + }, + ExecuteAsyncModule: { + url: 'https://262.ecma-international.org/14.0/#sec-execute-async-module' + }, + '𝔽': { + url: 'https://262.ecma-international.org/14.0/#𝔽' + }, + FindViaPredicate: { + url: 'https://262.ecma-international.org/14.0/#sec-findviapredicate' + }, + FinishLoadingImportedModule: { + url: 'https://262.ecma-international.org/14.0/#sec-FinishLoadingImportedModule' + }, + FlattenIntoArray: { + url: 'https://262.ecma-international.org/14.0/#sec-flattenintoarray' + }, + floor: { + url: 'https://262.ecma-international.org/14.0/#eqn-floor' + }, + ForBodyEvaluation: { + url: 'https://262.ecma-international.org/14.0/#sec-forbodyevaluation' + }, + 'ForIn/OfBodyEvaluation': { + url: 'https://262.ecma-international.org/14.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset' + }, + 'ForIn/OfHeadEvaluation': { + url: 'https://262.ecma-international.org/14.0/#sec-runtime-semantics-forinofheadevaluation' + }, + FromPropertyDescriptor: { + url: 'https://262.ecma-international.org/14.0/#sec-frompropertydescriptor' + }, + FulfillPromise: { + url: 'https://262.ecma-international.org/14.0/#sec-fulfillpromise' + }, + FunctionDeclarationInstantiation: { + url: 'https://262.ecma-international.org/14.0/#sec-functiondeclarationinstantiation' + }, + GatherAvailableAncestors: { + url: 'https://262.ecma-international.org/14.0/#sec-gather-available-ancestors' + }, + GeneratorResume: { + url: 'https://262.ecma-international.org/14.0/#sec-generatorresume' + }, + GeneratorResumeAbrupt: { + url: 'https://262.ecma-international.org/14.0/#sec-generatorresumeabrupt' + }, + GeneratorStart: { + url: 'https://262.ecma-international.org/14.0/#sec-generatorstart' + }, + GeneratorValidate: { + url: 'https://262.ecma-international.org/14.0/#sec-generatorvalidate' + }, + GeneratorYield: { + url: 'https://262.ecma-international.org/14.0/#sec-generatoryield' + }, + Get: { + url: 'https://262.ecma-international.org/14.0/#sec-get-o-p' + }, + GetActiveScriptOrModule: { + url: 'https://262.ecma-international.org/14.0/#sec-getactivescriptormodule' + }, + GetFunctionRealm: { + url: 'https://262.ecma-international.org/14.0/#sec-getfunctionrealm' + }, + GetGeneratorKind: { + url: 'https://262.ecma-international.org/14.0/#sec-getgeneratorkind' + }, + GetGlobalObject: { + url: 'https://262.ecma-international.org/14.0/#sec-getglobalobject' + }, + GetIdentifierReference: { + url: 'https://262.ecma-international.org/14.0/#sec-getidentifierreference' + }, + GetImportedModule: { + url: 'https://262.ecma-international.org/14.0/#sec-GetImportedModule' + }, + GetIterator: { + url: 'https://262.ecma-international.org/14.0/#sec-getiterator' + }, + GetIteratorFromMethod: { + url: 'https://262.ecma-international.org/14.0/#sec-getiteratorfrommethod' + }, + GetMatchIndexPair: { + url: 'https://262.ecma-international.org/14.0/#sec-getmatchindexpair' + }, + GetMatchString: { + url: 'https://262.ecma-international.org/14.0/#sec-getmatchstring' + }, + GetMethod: { + url: 'https://262.ecma-international.org/14.0/#sec-getmethod' + }, + GetModifySetValueInBuffer: { + url: 'https://262.ecma-international.org/14.0/#sec-getmodifysetvalueinbuffer' + }, + GetModuleNamespace: { + url: 'https://262.ecma-international.org/14.0/#sec-getmodulenamespace' + }, + GetNamedTimeZoneEpochNanoseconds: { + url: 'https://262.ecma-international.org/14.0/#sec-getnamedtimezoneepochnanoseconds' + }, + GetNamedTimeZoneOffsetNanoseconds: { + url: 'https://262.ecma-international.org/14.0/#sec-getnamedtimezoneoffsetnanoseconds' + }, + GetNewTarget: { + url: 'https://262.ecma-international.org/14.0/#sec-getnewtarget' + }, + GetOwnPropertyKeys: { + url: 'https://262.ecma-international.org/14.0/#sec-getownpropertykeys' + }, + GetPromiseResolve: { + url: 'https://262.ecma-international.org/14.0/#sec-getpromiseresolve' + }, + GetPrototypeFromConstructor: { + url: 'https://262.ecma-international.org/14.0/#sec-getprototypefromconstructor' + }, + GetStringIndex: { + url: 'https://262.ecma-international.org/14.0/#sec-getstringindex' + }, + GetSubstitution: { + url: 'https://262.ecma-international.org/14.0/#sec-getsubstitution' + }, + GetSuperConstructor: { + url: 'https://262.ecma-international.org/14.0/#sec-getsuperconstructor' + }, + GetTemplateObject: { + url: 'https://262.ecma-international.org/14.0/#sec-gettemplateobject' + }, + GetThisEnvironment: { + url: 'https://262.ecma-international.org/14.0/#sec-getthisenvironment' + }, + GetThisValue: { + url: 'https://262.ecma-international.org/14.0/#sec-getthisvalue' + }, + GetUTCEpochNanoseconds: { + url: 'https://262.ecma-international.org/14.0/#sec-getutcepochnanoseconds' + }, + GetV: { + url: 'https://262.ecma-international.org/14.0/#sec-getv' + }, + GetValue: { + url: 'https://262.ecma-international.org/14.0/#sec-getvalue' + }, + GetValueFromBuffer: { + url: 'https://262.ecma-international.org/14.0/#sec-getvaluefrombuffer' + }, + GetViewValue: { + url: 'https://262.ecma-international.org/14.0/#sec-getviewvalue' + }, + GetWaiterList: { + url: 'https://262.ecma-international.org/14.0/#sec-getwaiterlist' + }, + GlobalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/14.0/#sec-globaldeclarationinstantiation' + }, + GroupSpecifiersThatMatch: { + url: 'https://262.ecma-international.org/14.0/#sec-groupspecifiersthatmatch' + }, + 'happens-before': { + url: 'https://262.ecma-international.org/14.0/#sec-happens-before' + }, + HasOwnProperty: { + url: 'https://262.ecma-international.org/14.0/#sec-hasownproperty' + }, + HasProperty: { + url: 'https://262.ecma-international.org/14.0/#sec-hasproperty' + }, + 'host-synchronizes-with': { + url: 'https://262.ecma-international.org/14.0/#sec-host-synchronizes-with' + }, + HostEventSet: { + url: 'https://262.ecma-international.org/14.0/#sec-hosteventset' + }, + HourFromTime: { + url: 'https://262.ecma-international.org/14.0/#eqn-HourFromTime' + }, + IfAbruptCloseIterator: { + url: 'https://262.ecma-international.org/14.0/#sec-ifabruptcloseiterator' + }, + IfAbruptRejectPromise: { + url: 'https://262.ecma-international.org/14.0/#sec-ifabruptrejectpromise' + }, + ImportedLocalNames: { + url: 'https://262.ecma-international.org/14.0/#sec-importedlocalnames' + }, + InitializeBoundName: { + url: 'https://262.ecma-international.org/14.0/#sec-initializeboundname' + }, + InitializeHostDefinedRealm: { + url: 'https://262.ecma-international.org/14.0/#sec-initializehostdefinedrealm' + }, + InitializeInstanceElements: { + url: 'https://262.ecma-international.org/14.0/#sec-initializeinstanceelements' + }, + InitializeReferencedBinding: { + url: 'https://262.ecma-international.org/14.0/#sec-initializereferencedbinding' + }, + InitializeTypedArrayFromArrayBuffer: { + url: 'https://262.ecma-international.org/14.0/#sec-initializetypedarrayfromarraybuffer' + }, + InitializeTypedArrayFromArrayLike: { + url: 'https://262.ecma-international.org/14.0/#sec-initializetypedarrayfromarraylike' + }, + InitializeTypedArrayFromList: { + url: 'https://262.ecma-international.org/14.0/#sec-initializetypedarrayfromlist' + }, + InitializeTypedArrayFromTypedArray: { + url: 'https://262.ecma-international.org/14.0/#sec-initializetypedarrayfromtypedarray' + }, + InLeapYear: { + url: 'https://262.ecma-international.org/14.0/#eqn-InLeapYear' + }, + InnerModuleEvaluation: { + url: 'https://262.ecma-international.org/14.0/#sec-innermoduleevaluation' + }, + InnerModuleLinking: { + url: 'https://262.ecma-international.org/14.0/#sec-InnerModuleLinking' + }, + InnerModuleLoading: { + url: 'https://262.ecma-international.org/14.0/#sec-InnerModuleLoading' + }, + InstallErrorCause: { + url: 'https://262.ecma-international.org/14.0/#sec-installerrorcause' + }, + InstanceofOperator: { + url: 'https://262.ecma-international.org/14.0/#sec-instanceofoperator' + }, + IntegerIndexedElementGet: { + url: 'https://262.ecma-international.org/14.0/#sec-integerindexedelementget' + }, + IntegerIndexedElementSet: { + url: 'https://262.ecma-international.org/14.0/#sec-integerindexedelementset' + }, + IntegerIndexedObjectCreate: { + url: 'https://262.ecma-international.org/14.0/#sec-integerindexedobjectcreate' + }, + InternalizeJSONProperty: { + url: 'https://262.ecma-international.org/14.0/#sec-internalizejsonproperty' + }, + Invoke: { + url: 'https://262.ecma-international.org/14.0/#sec-invoke' + }, + IsAccessorDescriptor: { + url: 'https://262.ecma-international.org/14.0/#sec-isaccessordescriptor' + }, + IsAnonymousFunctionDefinition: { + url: 'https://262.ecma-international.org/14.0/#sec-isanonymousfunctiondefinition' + }, + IsArray: { + url: 'https://262.ecma-international.org/14.0/#sec-isarray' + }, + IsBigIntElementType: { + url: 'https://262.ecma-international.org/14.0/#sec-isbigintelementtype' + }, + IsCallable: { + url: 'https://262.ecma-international.org/14.0/#sec-iscallable' + }, + IsCompatiblePropertyDescriptor: { + url: 'https://262.ecma-international.org/14.0/#sec-iscompatiblepropertydescriptor' + }, + IsConcatSpreadable: { + url: 'https://262.ecma-international.org/14.0/#sec-isconcatspreadable' + }, + IsConstructor: { + url: 'https://262.ecma-international.org/14.0/#sec-isconstructor' + }, + IsDataDescriptor: { + url: 'https://262.ecma-international.org/14.0/#sec-isdatadescriptor' + }, + IsDetachedBuffer: { + url: 'https://262.ecma-international.org/14.0/#sec-isdetachedbuffer' + }, + IsExtensible: { + url: 'https://262.ecma-international.org/14.0/#sec-isextensible-o' + }, + IsGenericDescriptor: { + url: 'https://262.ecma-international.org/14.0/#sec-isgenericdescriptor' + }, + IsInTailPosition: { + url: 'https://262.ecma-international.org/14.0/#sec-isintailposition' + }, + IsIntegralNumber: { + url: 'https://262.ecma-international.org/14.0/#sec-isintegralnumber' + }, + IsLabelledFunction: { + url: 'https://262.ecma-international.org/14.0/#sec-islabelledfunction' + }, + IsLessThan: { + url: 'https://262.ecma-international.org/14.0/#sec-islessthan' + }, + IsLooselyEqual: { + url: 'https://262.ecma-international.org/14.0/#sec-islooselyequal' + }, + IsNoTearConfiguration: { + url: 'https://262.ecma-international.org/14.0/#sec-isnotearconfiguration' + }, + IsPrivateReference: { + url: 'https://262.ecma-international.org/14.0/#sec-isprivatereference' + }, + IsPromise: { + url: 'https://262.ecma-international.org/14.0/#sec-ispromise' + }, + IsPropertyKey: { + url: 'https://262.ecma-international.org/14.0/#sec-ispropertykey' + }, + IsPropertyReference: { + url: 'https://262.ecma-international.org/14.0/#sec-ispropertyreference' + }, + IsRegExp: { + url: 'https://262.ecma-international.org/14.0/#sec-isregexp' + }, + IsSharedArrayBuffer: { + url: 'https://262.ecma-international.org/14.0/#sec-issharedarraybuffer' + }, + IsStrictlyEqual: { + url: 'https://262.ecma-international.org/14.0/#sec-isstrictlyequal' + }, + IsStringWellFormedUnicode: { + url: 'https://262.ecma-international.org/14.0/#sec-isstringwellformedunicode' + }, + IsSuperReference: { + url: 'https://262.ecma-international.org/14.0/#sec-issuperreference' + }, + IsTimeZoneOffsetString: { + url: 'https://262.ecma-international.org/14.0/#sec-istimezoneoffsetstring' + }, + IsUnclampedIntegerElementType: { + url: 'https://262.ecma-international.org/14.0/#sec-isunclampedintegerelementtype' + }, + IsUnresolvableReference: { + url: 'https://262.ecma-international.org/14.0/#sec-isunresolvablereference' + }, + IsUnsignedElementType: { + url: 'https://262.ecma-international.org/14.0/#sec-isunsignedelementtype' + }, + IsValidIntegerIndex: { + url: 'https://262.ecma-international.org/14.0/#sec-isvalidintegerindex' + }, + IsValidRegularExpressionLiteral: { + url: 'https://262.ecma-international.org/14.0/#sec-isvalidregularexpressionliteral' + }, + IsWordChar: { + url: 'https://262.ecma-international.org/14.0/#sec-runtime-semantics-iswordchar-abstract-operation' + }, + IteratorClose: { + url: 'https://262.ecma-international.org/14.0/#sec-iteratorclose' + }, + IteratorComplete: { + url: 'https://262.ecma-international.org/14.0/#sec-iteratorcomplete' + }, + IteratorNext: { + url: 'https://262.ecma-international.org/14.0/#sec-iteratornext' + }, + IteratorStep: { + url: 'https://262.ecma-international.org/14.0/#sec-iteratorstep' + }, + IteratorToList: { + url: 'https://262.ecma-international.org/14.0/#sec-iteratortolist' + }, + IteratorValue: { + url: 'https://262.ecma-international.org/14.0/#sec-iteratorvalue' + }, + KeyForSymbol: { + url: 'https://262.ecma-international.org/14.0/#sec-keyforsymbol' + }, + LeaveCriticalSection: { + url: 'https://262.ecma-international.org/14.0/#sec-leavecriticalsection' + }, + LengthOfArrayLike: { + url: 'https://262.ecma-international.org/14.0/#sec-lengthofarraylike' + }, + LocalTime: { + url: 'https://262.ecma-international.org/14.0/#sec-localtime' + }, + LoopContinues: { + url: 'https://262.ecma-international.org/14.0/#sec-loopcontinues' + }, + MakeArgGetter: { + url: 'https://262.ecma-international.org/14.0/#sec-makearggetter' + }, + MakeArgSetter: { + url: 'https://262.ecma-international.org/14.0/#sec-makeargsetter' + }, + MakeBasicObject: { + url: 'https://262.ecma-international.org/14.0/#sec-makebasicobject' + }, + MakeClassConstructor: { + url: 'https://262.ecma-international.org/14.0/#sec-makeclassconstructor' + }, + MakeConstructor: { + url: 'https://262.ecma-international.org/14.0/#sec-makeconstructor' + }, + MakeDate: { + url: 'https://262.ecma-international.org/14.0/#sec-makedate' + }, + MakeDay: { + url: 'https://262.ecma-international.org/14.0/#sec-makeday' + }, + MakeMatchIndicesIndexPairArray: { + url: 'https://262.ecma-international.org/14.0/#sec-makematchindicesindexpairarray' + }, + MakeMethod: { + url: 'https://262.ecma-international.org/14.0/#sec-makemethod' + }, + MakePrivateReference: { + url: 'https://262.ecma-international.org/14.0/#sec-makeprivatereference' + }, + MakeSuperPropertyReference: { + url: 'https://262.ecma-international.org/14.0/#sec-makesuperpropertyreference' + }, + MakeTime: { + url: 'https://262.ecma-international.org/14.0/#sec-maketime' + }, + max: { + url: 'https://262.ecma-international.org/14.0/#eqn-max' + }, + 'memory-order': { + url: 'https://262.ecma-international.org/14.0/#sec-memory-order' + }, + min: { + url: 'https://262.ecma-international.org/14.0/#eqn-min' + }, + MinFromTime: { + url: 'https://262.ecma-international.org/14.0/#eqn-MinFromTime' + }, + ModuleNamespaceCreate: { + url: 'https://262.ecma-international.org/14.0/#sec-modulenamespacecreate' + }, + modulo: { + url: 'https://262.ecma-international.org/14.0/#eqn-modulo' + }, + MonthFromTime: { + url: 'https://262.ecma-international.org/14.0/#eqn-MonthFromTime' + }, + msFromTime: { + url: 'https://262.ecma-international.org/14.0/#eqn-msFromTime' + }, + NewDeclarativeEnvironment: { + url: 'https://262.ecma-international.org/14.0/#sec-newdeclarativeenvironment' + }, + NewFunctionEnvironment: { + url: 'https://262.ecma-international.org/14.0/#sec-newfunctionenvironment' + }, + NewGlobalEnvironment: { + url: 'https://262.ecma-international.org/14.0/#sec-newglobalenvironment' + }, + NewModuleEnvironment: { + url: 'https://262.ecma-international.org/14.0/#sec-newmoduleenvironment' + }, + NewObjectEnvironment: { + url: 'https://262.ecma-international.org/14.0/#sec-newobjectenvironment' + }, + NewPrivateEnvironment: { + url: 'https://262.ecma-international.org/14.0/#sec-newprivateenvironment' + }, + NewPromiseCapability: { + url: 'https://262.ecma-international.org/14.0/#sec-newpromisecapability' + }, + NewPromiseReactionJob: { + url: 'https://262.ecma-international.org/14.0/#sec-newpromisereactionjob' + }, + NewPromiseResolveThenableJob: { + url: 'https://262.ecma-international.org/14.0/#sec-newpromiseresolvethenablejob' + }, + NormalCompletion: { + url: 'https://262.ecma-international.org/14.0/#sec-normalcompletion' + }, + NotifyWaiter: { + url: 'https://262.ecma-international.org/14.0/#sec-notifywaiter' + }, + 'Number::add': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-add' + }, + 'Number::bitwiseAND': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-bitwiseAND' + }, + 'Number::bitwiseNOT': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-bitwiseNOT' + }, + 'Number::bitwiseOR': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-bitwiseOR' + }, + 'Number::bitwiseXOR': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-bitwiseXOR' + }, + 'Number::divide': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-divide' + }, + 'Number::equal': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-equal' + }, + 'Number::exponentiate': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-exponentiate' + }, + 'Number::leftShift': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-leftShift' + }, + 'Number::lessThan': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-lessThan' + }, + 'Number::multiply': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-multiply' + }, + 'Number::remainder': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-remainder' + }, + 'Number::sameValue': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-sameValue' + }, + 'Number::sameValueZero': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-sameValueZero' + }, + 'Number::signedRightShift': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-signedRightShift' + }, + 'Number::subtract': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-subtract' + }, + 'Number::toString': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-tostring' + }, + 'Number::unaryMinus': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-unaryMinus' + }, + 'Number::unsignedRightShift': { + url: 'https://262.ecma-international.org/14.0/#sec-numeric-types-number-unsignedRightShift' + }, + NumberBitwiseOp: { + url: 'https://262.ecma-international.org/14.0/#sec-numberbitwiseop' + }, + NumberToBigInt: { + url: 'https://262.ecma-international.org/14.0/#sec-numbertobigint' + }, + NumericToRawBytes: { + url: 'https://262.ecma-international.org/14.0/#sec-numerictorawbytes' + }, + ObjectDefineProperties: { + url: 'https://262.ecma-international.org/14.0/#sec-objectdefineproperties' + }, + OrdinaryCallBindThis: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinarycallbindthis' + }, + OrdinaryCallEvaluateBody: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinarycallevaluatebody' + }, + OrdinaryCreateFromConstructor: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinarycreatefromconstructor' + }, + OrdinaryDefineOwnProperty: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinarydefineownproperty' + }, + OrdinaryDelete: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinarydelete' + }, + OrdinaryFunctionCreate: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinaryfunctioncreate' + }, + OrdinaryGet: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinaryget' + }, + OrdinaryGetOwnProperty: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinarygetownproperty' + }, + OrdinaryGetPrototypeOf: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinarygetprototypeof' + }, + OrdinaryHasInstance: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinaryhasinstance' + }, + OrdinaryHasProperty: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinaryhasproperty' + }, + OrdinaryIsExtensible: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinaryisextensible' + }, + OrdinaryObjectCreate: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinaryobjectcreate' + }, + OrdinaryOwnPropertyKeys: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinaryownpropertykeys' + }, + OrdinaryPreventExtensions: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinarypreventextensions' + }, + OrdinarySet: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinaryset' + }, + OrdinarySetPrototypeOf: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinarysetprototypeof' + }, + OrdinarySetWithOwnDescriptor: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinarysetwithowndescriptor' + }, + OrdinaryToPrimitive: { + url: 'https://262.ecma-international.org/14.0/#sec-ordinarytoprimitive' + }, + ParseHexOctet: { + url: 'https://262.ecma-international.org/14.0/#sec-parsehexoctet' + }, + ParseModule: { + url: 'https://262.ecma-international.org/14.0/#sec-parsemodule' + }, + ParsePattern: { + url: 'https://262.ecma-international.org/14.0/#sec-parsepattern' + }, + ParseScript: { + url: 'https://262.ecma-international.org/14.0/#sec-parse-script' + }, + ParseText: { + url: 'https://262.ecma-international.org/14.0/#sec-parsetext' + }, + ParseTimeZoneOffsetString: { + url: 'https://262.ecma-international.org/14.0/#sec-parsetimezoneoffsetstring' + }, + PerformEval: { + url: 'https://262.ecma-international.org/14.0/#sec-performeval' + }, + PerformPromiseAll: { + url: 'https://262.ecma-international.org/14.0/#sec-performpromiseall' + }, + PerformPromiseAllSettled: { + url: 'https://262.ecma-international.org/14.0/#sec-performpromiseallsettled' + }, + PerformPromiseAny: { + url: 'https://262.ecma-international.org/14.0/#sec-performpromiseany' + }, + PerformPromiseRace: { + url: 'https://262.ecma-international.org/14.0/#sec-performpromiserace' + }, + PerformPromiseThen: { + url: 'https://262.ecma-international.org/14.0/#sec-performpromisethen' + }, + PrepareForOrdinaryCall: { + url: 'https://262.ecma-international.org/14.0/#sec-prepareforordinarycall' + }, + PrepareForTailCall: { + url: 'https://262.ecma-international.org/14.0/#sec-preparefortailcall' + }, + PrivateElementFind: { + url: 'https://262.ecma-international.org/14.0/#sec-privateelementfind' + }, + PrivateFieldAdd: { + url: 'https://262.ecma-international.org/14.0/#sec-privatefieldadd' + }, + PrivateGet: { + url: 'https://262.ecma-international.org/14.0/#sec-privateget' + }, + PrivateMethodOrAccessorAdd: { + url: 'https://262.ecma-international.org/14.0/#sec-privatemethodoraccessoradd' + }, + PrivateSet: { + url: 'https://262.ecma-international.org/14.0/#sec-privateset' + }, + PromiseResolve: { + url: 'https://262.ecma-international.org/14.0/#sec-promise-resolve' + }, + ProxyCreate: { + url: 'https://262.ecma-international.org/14.0/#sec-proxycreate' + }, + PutValue: { + url: 'https://262.ecma-international.org/14.0/#sec-putvalue' + }, + QuoteJSONString: { + url: 'https://262.ecma-international.org/14.0/#sec-quotejsonstring' + }, + ℝ: { + url: 'https://262.ecma-international.org/14.0/#ℝ' + }, + RawBytesToNumeric: { + url: 'https://262.ecma-international.org/14.0/#sec-rawbytestonumeric' + }, + 'reads-bytes-from': { + url: 'https://262.ecma-international.org/14.0/#sec-reads-bytes-from' + }, + 'reads-from': { + url: 'https://262.ecma-international.org/14.0/#sec-reads-from' + }, + RegExpAlloc: { + url: 'https://262.ecma-international.org/14.0/#sec-regexpalloc' + }, + RegExpBuiltinExec: { + url: 'https://262.ecma-international.org/14.0/#sec-regexpbuiltinexec' + }, + RegExpCreate: { + url: 'https://262.ecma-international.org/14.0/#sec-regexpcreate' + }, + RegExpExec: { + url: 'https://262.ecma-international.org/14.0/#sec-regexpexec' + }, + RegExpHasFlag: { + url: 'https://262.ecma-international.org/14.0/#sec-regexphasflag' + }, + RegExpInitialize: { + url: 'https://262.ecma-international.org/14.0/#sec-regexpinitialize' + }, + RejectPromise: { + url: 'https://262.ecma-international.org/14.0/#sec-rejectpromise' + }, + RemoveWaiter: { + url: 'https://262.ecma-international.org/14.0/#sec-removewaiter' + }, + RemoveWaiters: { + url: 'https://262.ecma-international.org/14.0/#sec-removewaiters' + }, + RepeatMatcher: { + url: 'https://262.ecma-international.org/14.0/#sec-runtime-semantics-repeatmatcher-abstract-operation' + }, + RequireInternalSlot: { + url: 'https://262.ecma-international.org/14.0/#sec-requireinternalslot' + }, + RequireObjectCoercible: { + url: 'https://262.ecma-international.org/14.0/#sec-requireobjectcoercible' + }, + ResolveBinding: { + url: 'https://262.ecma-international.org/14.0/#sec-resolvebinding' + }, + ResolvePrivateIdentifier: { + url: 'https://262.ecma-international.org/14.0/#sec-resolve-private-identifier' + }, + ResolveThisBinding: { + url: 'https://262.ecma-international.org/14.0/#sec-resolvethisbinding' + }, + ReturnIfAbrupt: { + url: 'https://262.ecma-international.org/14.0/#sec-returnifabrupt' + }, + RoundMVResult: { + url: 'https://262.ecma-international.org/14.0/#sec-roundmvresult' + }, + SameValue: { + url: 'https://262.ecma-international.org/14.0/#sec-samevalue' + }, + SameValueNonNumber: { + url: 'https://262.ecma-international.org/14.0/#sec-samevaluenonnumber' + }, + SameValueZero: { + url: 'https://262.ecma-international.org/14.0/#sec-samevaluezero' + }, + ScriptEvaluation: { + url: 'https://262.ecma-international.org/14.0/#sec-runtime-semantics-scriptevaluation' + }, + SecFromTime: { + url: 'https://262.ecma-international.org/14.0/#eqn-SecFromTime' + }, + SerializeJSONArray: { + url: 'https://262.ecma-international.org/14.0/#sec-serializejsonarray' + }, + SerializeJSONObject: { + url: 'https://262.ecma-international.org/14.0/#sec-serializejsonobject' + }, + SerializeJSONProperty: { + url: 'https://262.ecma-international.org/14.0/#sec-serializejsonproperty' + }, + Set: { + url: 'https://262.ecma-international.org/14.0/#sec-set-o-p-v-throw' + }, + SetDefaultGlobalBindings: { + url: 'https://262.ecma-international.org/14.0/#sec-setdefaultglobalbindings' + }, + SetFunctionLength: { + url: 'https://262.ecma-international.org/14.0/#sec-setfunctionlength' + }, + SetFunctionName: { + url: 'https://262.ecma-international.org/14.0/#sec-setfunctionname' + }, + SetImmutablePrototype: { + url: 'https://262.ecma-international.org/14.0/#sec-set-immutable-prototype' + }, + SetIntegrityLevel: { + url: 'https://262.ecma-international.org/14.0/#sec-setintegritylevel' + }, + SetRealmGlobalObject: { + url: 'https://262.ecma-international.org/14.0/#sec-setrealmglobalobject' + }, + SetTypedArrayFromArrayLike: { + url: 'https://262.ecma-international.org/14.0/#sec-settypedarrayfromarraylike' + }, + SetTypedArrayFromTypedArray: { + url: 'https://262.ecma-international.org/14.0/#sec-settypedarrayfromtypedarray' + }, + SetValueInBuffer: { + url: 'https://262.ecma-international.org/14.0/#sec-setvalueinbuffer' + }, + SetViewValue: { + url: 'https://262.ecma-international.org/14.0/#sec-setviewvalue' + }, + SharedDataBlockEventSet: { + url: 'https://262.ecma-international.org/14.0/#sec-sharedatablockeventset' + }, + SortIndexedProperties: { + url: 'https://262.ecma-international.org/14.0/#sec-sortindexedproperties' + }, + SpeciesConstructor: { + url: 'https://262.ecma-international.org/14.0/#sec-speciesconstructor' + }, + StringCreate: { + url: 'https://262.ecma-international.org/14.0/#sec-stringcreate' + }, + StringGetOwnProperty: { + url: 'https://262.ecma-international.org/14.0/#sec-stringgetownproperty' + }, + StringIndexOf: { + url: 'https://262.ecma-international.org/14.0/#sec-stringindexof' + }, + StringPad: { + url: 'https://262.ecma-international.org/14.0/#sec-stringpad' + }, + StringToBigInt: { + url: 'https://262.ecma-international.org/14.0/#sec-stringtobigint' + }, + StringToCodePoints: { + url: 'https://262.ecma-international.org/14.0/#sec-stringtocodepoints' + }, + StringToNumber: { + url: 'https://262.ecma-international.org/14.0/#sec-stringtonumber' + }, + substring: { + url: 'https://262.ecma-international.org/14.0/#substring' + }, + SuspendAgent: { + url: 'https://262.ecma-international.org/14.0/#sec-suspendagent' + }, + SymbolDescriptiveString: { + url: 'https://262.ecma-international.org/14.0/#sec-symboldescriptivestring' + }, + 'synchronizes-with': { + url: 'https://262.ecma-international.org/14.0/#sec-synchronizes-with' + }, + TemplateString: { + url: 'https://262.ecma-international.org/14.0/#sec-templatestring' + }, + TestIntegrityLevel: { + url: 'https://262.ecma-international.org/14.0/#sec-testintegritylevel' + }, + thisBigIntValue: { + url: 'https://262.ecma-international.org/14.0/#thisbigintvalue' + }, + thisBooleanValue: { + url: 'https://262.ecma-international.org/14.0/#thisbooleanvalue' + }, + thisNumberValue: { + url: 'https://262.ecma-international.org/14.0/#thisnumbervalue' + }, + thisStringValue: { + url: 'https://262.ecma-international.org/14.0/#thisstringvalue' + }, + thisSymbolValue: { + url: 'https://262.ecma-international.org/14.0/#thissymbolvalue' + }, + thisTimeValue: { + url: 'https://262.ecma-international.org/14.0/#thistimevalue' + }, + ThrowCompletion: { + url: 'https://262.ecma-international.org/14.0/#sec-throwcompletion' + }, + TimeClip: { + url: 'https://262.ecma-international.org/14.0/#sec-timeclip' + }, + TimeFromYear: { + url: 'https://262.ecma-international.org/14.0/#eqn-TimeFromYear' + }, + TimeString: { + url: 'https://262.ecma-international.org/14.0/#sec-timestring' + }, + TimeWithinDay: { + url: 'https://262.ecma-international.org/14.0/#eqn-TimeWithinDay' + }, + TimeZoneString: { + url: 'https://262.ecma-international.org/14.0/#sec-timezoneestring' + }, + ToBigInt: { + url: 'https://262.ecma-international.org/14.0/#sec-tobigint' + }, + ToBigInt64: { + url: 'https://262.ecma-international.org/14.0/#sec-tobigint64' + }, + ToBigUint64: { + url: 'https://262.ecma-international.org/14.0/#sec-tobiguint64' + }, + ToBoolean: { + url: 'https://262.ecma-international.org/14.0/#sec-toboolean' + }, + ToDateString: { + url: 'https://262.ecma-international.org/14.0/#sec-todatestring' + }, + ToIndex: { + url: 'https://262.ecma-international.org/14.0/#sec-toindex' + }, + ToInt16: { + url: 'https://262.ecma-international.org/14.0/#sec-toint16' + }, + ToInt32: { + url: 'https://262.ecma-international.org/14.0/#sec-toint32' + }, + ToInt8: { + url: 'https://262.ecma-international.org/14.0/#sec-toint8' + }, + ToIntegerOrInfinity: { + url: 'https://262.ecma-international.org/14.0/#sec-tointegerorinfinity' + }, + ToLength: { + url: 'https://262.ecma-international.org/14.0/#sec-tolength' + }, + ToNumber: { + url: 'https://262.ecma-international.org/14.0/#sec-tonumber' + }, + ToNumeric: { + url: 'https://262.ecma-international.org/14.0/#sec-tonumeric' + }, + ToObject: { + url: 'https://262.ecma-international.org/14.0/#sec-toobject' + }, + ToPrimitive: { + url: 'https://262.ecma-international.org/14.0/#sec-toprimitive' + }, + ToPropertyDescriptor: { + url: 'https://262.ecma-international.org/14.0/#sec-topropertydescriptor' + }, + ToPropertyKey: { + url: 'https://262.ecma-international.org/14.0/#sec-topropertykey' + }, + ToString: { + url: 'https://262.ecma-international.org/14.0/#sec-tostring' + }, + ToUint16: { + url: 'https://262.ecma-international.org/14.0/#sec-touint16' + }, + ToUint32: { + url: 'https://262.ecma-international.org/14.0/#sec-touint32' + }, + ToUint8: { + url: 'https://262.ecma-international.org/14.0/#sec-touint8' + }, + ToUint8Clamp: { + url: 'https://262.ecma-international.org/14.0/#sec-touint8clamp' + }, + ToZeroPaddedDecimalString: { + url: 'https://262.ecma-international.org/14.0/#sec-tozeropaddeddecimalstring' + }, + TriggerPromiseReactions: { + url: 'https://262.ecma-international.org/14.0/#sec-triggerpromisereactions' + }, + TrimString: { + url: 'https://262.ecma-international.org/14.0/#sec-trimstring' + }, + truncate: { + url: 'https://262.ecma-international.org/14.0/#eqn-truncate' + }, + Type: { + url: 'https://262.ecma-international.org/14.0/#sec-ecmascript-data-types-and-values' + }, + TypedArrayCreate: { + url: 'https://262.ecma-international.org/14.0/#typedarray-create' + }, + TypedArrayCreateSameType: { + url: 'https://262.ecma-international.org/14.0/#sec-typedarray-create-same-type' + }, + TypedArrayElementSize: { + url: 'https://262.ecma-international.org/14.0/#sec-typedarrayelementsize' + }, + TypedArrayElementType: { + url: 'https://262.ecma-international.org/14.0/#sec-typedarrayelementtype' + }, + TypedArraySpeciesCreate: { + url: 'https://262.ecma-international.org/14.0/#typedarray-species-create' + }, + UnicodeEscape: { + url: 'https://262.ecma-international.org/14.0/#sec-unicodeescape' + }, + UnicodeMatchProperty: { + url: 'https://262.ecma-international.org/14.0/#sec-runtime-semantics-unicodematchproperty-p' + }, + UnicodeMatchPropertyValue: { + url: 'https://262.ecma-international.org/14.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v' + }, + UpdateEmpty: { + url: 'https://262.ecma-international.org/14.0/#sec-updateempty' + }, + UTC: { + url: 'https://262.ecma-international.org/14.0/#sec-utc-t' + }, + UTF16EncodeCodePoint: { + url: 'https://262.ecma-international.org/14.0/#sec-utf16encodecodepoint' + }, + UTF16SurrogatePairToCodePoint: { + url: 'https://262.ecma-international.org/14.0/#sec-utf16decodesurrogatepair' + }, + ValidateAndApplyPropertyDescriptor: { + url: 'https://262.ecma-international.org/14.0/#sec-validateandapplypropertydescriptor' + }, + ValidateAtomicAccess: { + url: 'https://262.ecma-international.org/14.0/#sec-validateatomicaccess' + }, + ValidateIntegerTypedArray: { + url: 'https://262.ecma-international.org/14.0/#sec-validateintegertypedarray' + }, + ValidateNonRevokedProxy: { + url: 'https://262.ecma-international.org/14.0/#sec-validatenonrevokedproxy' + }, + ValidateTypedArray: { + url: 'https://262.ecma-international.org/14.0/#sec-validatetypedarray' + }, + ValueOfReadEvent: { + url: 'https://262.ecma-international.org/14.0/#sec-valueofreadevent' + }, + WeakRefDeref: { + url: 'https://262.ecma-international.org/14.0/#sec-weakrefderef' + }, + WeekDay: { + url: 'https://262.ecma-international.org/14.0/#sec-week-day' + }, + WordCharacters: { + url: 'https://262.ecma-international.org/14.0/#sec-wordcharacters' + }, + YearFromTime: { + url: 'https://262.ecma-international.org/14.0/#eqn-YearFromTime' + }, + Yield: { + url: 'https://262.ecma-international.org/14.0/#sec-yield' + }, + ℤ: { + url: 'https://262.ecma-international.org/14.0/#ℤ' + } +}; diff --git a/node_modules/es-abstract/operations/2024.js b/node_modules/es-abstract/operations/2024.js new file mode 100644 index 0000000000000000000000000000000000000000..ea5f5c1b262ae57462ba5070e7968e1fbe39e422 --- /dev/null +++ b/node_modules/es-abstract/operations/2024.js @@ -0,0 +1,1537 @@ +'use strict'; + +module.exports = { + abs: { + url: 'https://262.ecma-international.org/15.0/#eqn-abs' + }, + AddEntriesFromIterable: { + url: 'https://262.ecma-international.org/15.0/#sec-add-entries-from-iterable' + }, + AddRestrictedFunctionProperties: { + url: 'https://262.ecma-international.org/15.0/#sec-addrestrictedfunctionproperties' + }, + AddToKeptObjects: { + url: 'https://262.ecma-international.org/15.0/#sec-addtokeptobjects' + }, + AddValueToKeyedGroup: { + url: 'https://262.ecma-international.org/15.0/#sec-add-value-to-keyed-group' + }, + AddWaiter: { + url: 'https://262.ecma-international.org/15.0/#sec-addwaiter' + }, + AdvanceStringIndex: { + url: 'https://262.ecma-international.org/15.0/#sec-advancestringindex' + }, + 'agent-order': { + url: 'https://262.ecma-international.org/15.0/#sec-agent-order' + }, + AgentCanSuspend: { + url: 'https://262.ecma-international.org/15.0/#sec-agentcansuspend' + }, + AgentSignifier: { + url: 'https://262.ecma-international.org/15.0/#sec-agentsignifier' + }, + AllCharacters: { + url: 'https://262.ecma-international.org/15.0/#sec-allcharacters' + }, + AllocateArrayBuffer: { + url: 'https://262.ecma-international.org/15.0/#sec-allocatearraybuffer' + }, + AllocateSharedArrayBuffer: { + url: 'https://262.ecma-international.org/15.0/#sec-allocatesharedarraybuffer' + }, + AllocateTypedArray: { + url: 'https://262.ecma-international.org/15.0/#sec-allocatetypedarray' + }, + AllocateTypedArrayBuffer: { + url: 'https://262.ecma-international.org/15.0/#sec-allocatetypedarraybuffer' + }, + ApplyStringOrNumericBinaryOperator: { + url: 'https://262.ecma-international.org/15.0/#sec-applystringornumericbinaryoperator' + }, + ArrayBufferByteLength: { + url: 'https://262.ecma-international.org/15.0/#sec-arraybufferbytelength' + }, + ArrayBufferCopyAndDetach: { + url: 'https://262.ecma-international.org/15.0/#sec-arraybuffercopyanddetach' + }, + ArrayCreate: { + url: 'https://262.ecma-international.org/15.0/#sec-arraycreate' + }, + ArraySetLength: { + url: 'https://262.ecma-international.org/15.0/#sec-arraysetlength' + }, + ArraySpeciesCreate: { + url: 'https://262.ecma-international.org/15.0/#sec-arrayspeciescreate' + }, + AsyncBlockStart: { + url: 'https://262.ecma-international.org/15.0/#sec-asyncblockstart' + }, + AsyncFromSyncIteratorContinuation: { + url: 'https://262.ecma-international.org/15.0/#sec-asyncfromsynciteratorcontinuation' + }, + AsyncFunctionStart: { + url: 'https://262.ecma-international.org/15.0/#sec-async-functions-abstract-operations-async-function-start' + }, + AsyncGeneratorAwaitReturn: { + url: 'https://262.ecma-international.org/15.0/#sec-asyncgeneratorawaitreturn' + }, + AsyncGeneratorCompleteStep: { + url: 'https://262.ecma-international.org/15.0/#sec-asyncgeneratorcompletestep' + }, + AsyncGeneratorDrainQueue: { + url: 'https://262.ecma-international.org/15.0/#sec-asyncgeneratordrainqueue' + }, + AsyncGeneratorEnqueue: { + url: 'https://262.ecma-international.org/15.0/#sec-asyncgeneratorenqueue' + }, + AsyncGeneratorResume: { + url: 'https://262.ecma-international.org/15.0/#sec-asyncgeneratorresume' + }, + AsyncGeneratorStart: { + url: 'https://262.ecma-international.org/15.0/#sec-asyncgeneratorstart' + }, + AsyncGeneratorUnwrapYieldResumption: { + url: 'https://262.ecma-international.org/15.0/#sec-asyncgeneratorunwrapyieldresumption' + }, + AsyncGeneratorValidate: { + url: 'https://262.ecma-international.org/15.0/#sec-asyncgeneratorvalidate' + }, + AsyncGeneratorYield: { + url: 'https://262.ecma-international.org/15.0/#sec-asyncgeneratoryield' + }, + AsyncIteratorClose: { + url: 'https://262.ecma-international.org/15.0/#sec-asynciteratorclose' + }, + AsyncModuleExecutionFulfilled: { + url: 'https://262.ecma-international.org/15.0/#sec-async-module-execution-fulfilled' + }, + AsyncModuleExecutionRejected: { + url: 'https://262.ecma-international.org/15.0/#sec-async-module-execution-rejected' + }, + AtomicCompareExchangeInSharedBlock: { + url: 'https://262.ecma-international.org/15.0/#sec-atomiccompareexchangeinsharedblock' + }, + AtomicReadModifyWrite: { + url: 'https://262.ecma-international.org/15.0/#sec-atomicreadmodifywrite' + }, + AvailableNamedTimeZoneIdentifiers: { + url: 'https://262.ecma-international.org/15.0/#sec-availablenamedtimezoneidentifiers' + }, + Await: { + url: 'https://262.ecma-international.org/15.0/#await' + }, + BackreferenceMatcher: { + url: 'https://262.ecma-international.org/15.0/#sec-backreference-matcher' + }, + 'BigInt::add': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-add' + }, + 'BigInt::bitwiseAND': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-bitwiseAND' + }, + 'BigInt::bitwiseNOT': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-bitwiseNOT' + }, + 'BigInt::bitwiseOR': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-bitwiseOR' + }, + 'BigInt::bitwiseXOR': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-bitwiseXOR' + }, + 'BigInt::divide': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-divide' + }, + 'BigInt::equal': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-equal' + }, + 'BigInt::exponentiate': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-exponentiate' + }, + 'BigInt::leftShift': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-leftShift' + }, + 'BigInt::lessThan': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-lessThan' + }, + 'BigInt::multiply': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-multiply' + }, + 'BigInt::remainder': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-remainder' + }, + 'BigInt::signedRightShift': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-signedRightShift' + }, + 'BigInt::subtract': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-subtract' + }, + 'BigInt::toString': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-tostring' + }, + 'BigInt::unaryMinus': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-unaryMinus' + }, + 'BigInt::unsignedRightShift': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-bigint-unsignedRightShift' + }, + BigIntBitwiseOp: { + url: 'https://262.ecma-international.org/15.0/#sec-bigintbitwiseop' + }, + BinaryAnd: { + url: 'https://262.ecma-international.org/15.0/#sec-binaryand' + }, + BinaryOr: { + url: 'https://262.ecma-international.org/15.0/#sec-binaryor' + }, + BinaryXor: { + url: 'https://262.ecma-international.org/15.0/#sec-binaryxor' + }, + BlockDeclarationInstantiation: { + url: 'https://262.ecma-international.org/15.0/#sec-blockdeclarationinstantiation' + }, + BoundFunctionCreate: { + url: 'https://262.ecma-international.org/15.0/#sec-boundfunctioncreate' + }, + BuiltinCallOrConstruct: { + url: 'https://262.ecma-international.org/15.0/#sec-builtincallorconstruct' + }, + ByteListBitwiseOp: { + url: 'https://262.ecma-international.org/15.0/#sec-bytelistbitwiseop' + }, + ByteListEqual: { + url: 'https://262.ecma-international.org/15.0/#sec-bytelistequal' + }, + Call: { + url: 'https://262.ecma-international.org/15.0/#sec-call' + }, + CanBeHeldWeakly: { + url: 'https://262.ecma-international.org/15.0/#sec-canbeheldweakly' + }, + Canonicalize: { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-canonicalize-ch' + }, + CanonicalNumericIndexString: { + url: 'https://262.ecma-international.org/15.0/#sec-canonicalnumericindexstring' + }, + CaseClauseIsSelected: { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-caseclauseisselected' + }, + CharacterComplement: { + url: 'https://262.ecma-international.org/15.0/#sec-charactercomplement' + }, + CharacterRange: { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-characterrange-abstract-operation' + }, + CharacterRangeOrUnion: { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation' + }, + CharacterSetMatcher: { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation' + }, + clamp: { + url: 'https://262.ecma-international.org/15.0/#clamping' + }, + CleanupFinalizationRegistry: { + url: 'https://262.ecma-international.org/15.0/#sec-cleanup-finalization-registry' + }, + ClearKeptObjects: { + url: 'https://262.ecma-international.org/15.0/#sec-clear-kept-objects' + }, + CloneArrayBuffer: { + url: 'https://262.ecma-international.org/15.0/#sec-clonearraybuffer' + }, + CodePointAt: { + url: 'https://262.ecma-international.org/15.0/#sec-codepointat' + }, + CodePointsToString: { + url: 'https://262.ecma-international.org/15.0/#sec-codepointstostring' + }, + CompareArrayElements: { + url: 'https://262.ecma-international.org/15.0/#sec-comparearrayelements' + }, + CompareTypedArrayElements: { + url: 'https://262.ecma-international.org/15.0/#sec-comparetypedarrayelements' + }, + CompletePropertyDescriptor: { + url: 'https://262.ecma-international.org/15.0/#sec-completepropertydescriptor' + }, + Completion: { + url: 'https://262.ecma-international.org/15.0/#sec-completion-ao' + }, + CompletionRecord: { + url: 'https://262.ecma-international.org/15.0/#sec-completion-record-specification-type' + }, + ComposeWriteEventBytes: { + url: 'https://262.ecma-international.org/15.0/#sec-composewriteeventbytes' + }, + Construct: { + url: 'https://262.ecma-international.org/15.0/#sec-construct' + }, + ContinueDynamicImport: { + url: 'https://262.ecma-international.org/15.0/#sec-ContinueDynamicImport' + }, + ContinueModuleLoading: { + url: 'https://262.ecma-international.org/15.0/#sec-ContinueModuleLoading' + }, + CopyDataBlockBytes: { + url: 'https://262.ecma-international.org/15.0/#sec-copydatablockbytes' + }, + CopyDataProperties: { + url: 'https://262.ecma-international.org/15.0/#sec-copydataproperties' + }, + CountLeftCapturingParensBefore: { + url: 'https://262.ecma-international.org/15.0/#sec-countleftcapturingparensbefore' + }, + CountLeftCapturingParensWithin: { + url: 'https://262.ecma-international.org/15.0/#sec-countleftcapturingparenswithin' + }, + CreateArrayFromList: { + url: 'https://262.ecma-international.org/15.0/#sec-createarrayfromlist' + }, + CreateArrayIterator: { + url: 'https://262.ecma-international.org/15.0/#sec-createarrayiterator' + }, + CreateAsyncFromSyncIterator: { + url: 'https://262.ecma-international.org/15.0/#sec-createasyncfromsynciterator' + }, + CreateAsyncIteratorFromClosure: { + url: 'https://262.ecma-international.org/15.0/#sec-createasynciteratorfromclosure' + }, + CreateBuiltinFunction: { + url: 'https://262.ecma-international.org/15.0/#sec-createbuiltinfunction' + }, + CreateByteDataBlock: { + url: 'https://262.ecma-international.org/15.0/#sec-createbytedatablock' + }, + CreateDataProperty: { + url: 'https://262.ecma-international.org/15.0/#sec-createdataproperty' + }, + CreateDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/15.0/#sec-createdatapropertyorthrow' + }, + CreateDynamicFunction: { + url: 'https://262.ecma-international.org/15.0/#sec-createdynamicfunction' + }, + CreateForInIterator: { + url: 'https://262.ecma-international.org/15.0/#sec-createforiniterator' + }, + CreateHTML: { + url: 'https://262.ecma-international.org/15.0/#sec-createhtml' + }, + CreateIntrinsics: { + url: 'https://262.ecma-international.org/15.0/#sec-createintrinsics' + }, + CreateIteratorFromClosure: { + url: 'https://262.ecma-international.org/15.0/#sec-createiteratorfromclosure' + }, + CreateIterResultObject: { + url: 'https://262.ecma-international.org/15.0/#sec-createiterresultobject' + }, + CreateListFromArrayLike: { + url: 'https://262.ecma-international.org/15.0/#sec-createlistfromarraylike' + }, + CreateListIteratorRecord: { + url: 'https://262.ecma-international.org/15.0/#sec-createlistiteratorRecord' + }, + CreateMapIterator: { + url: 'https://262.ecma-international.org/15.0/#sec-createmapiterator' + }, + CreateMappedArgumentsObject: { + url: 'https://262.ecma-international.org/15.0/#sec-createmappedargumentsobject' + }, + CreateNonEnumerableDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/15.0/#sec-createnonenumerabledatapropertyorthrow' + }, + CreatePerIterationEnvironment: { + url: 'https://262.ecma-international.org/15.0/#sec-createperiterationenvironment' + }, + CreateRealm: { + url: 'https://262.ecma-international.org/15.0/#sec-createrealm' + }, + CreateRegExpStringIterator: { + url: 'https://262.ecma-international.org/15.0/#sec-createregexpstringiterator' + }, + CreateResolvingFunctions: { + url: 'https://262.ecma-international.org/15.0/#sec-createresolvingfunctions' + }, + CreateSetIterator: { + url: 'https://262.ecma-international.org/15.0/#sec-createsetiterator' + }, + CreateSharedByteDataBlock: { + url: 'https://262.ecma-international.org/15.0/#sec-createsharedbytedatablock' + }, + CreateUnmappedArgumentsObject: { + url: 'https://262.ecma-international.org/15.0/#sec-createunmappedargumentsobject' + }, + DateFromTime: { + url: 'https://262.ecma-international.org/15.0/#sec-datefromtime' + }, + DateString: { + url: 'https://262.ecma-international.org/15.0/#sec-datestring' + }, + Day: { + url: 'https://262.ecma-international.org/15.0/#sec-day' + }, + DayFromYear: { + url: 'https://262.ecma-international.org/15.0/#sec-dayfromyear' + }, + DaysInYear: { + url: 'https://262.ecma-international.org/15.0/#sec-daysinyear' + }, + DayWithinYear: { + url: 'https://262.ecma-international.org/15.0/#sec-daywithinyear' + }, + Decode: { + url: 'https://262.ecma-international.org/15.0/#sec-decode' + }, + DefineField: { + url: 'https://262.ecma-international.org/15.0/#sec-definefield' + }, + DefineMethodProperty: { + url: 'https://262.ecma-international.org/15.0/#sec-definemethodproperty' + }, + DefinePropertyOrThrow: { + url: 'https://262.ecma-international.org/15.0/#sec-definepropertyorthrow' + }, + DeletePropertyOrThrow: { + url: 'https://262.ecma-international.org/15.0/#sec-deletepropertyorthrow' + }, + DetachArrayBuffer: { + url: 'https://262.ecma-international.org/15.0/#sec-detacharraybuffer' + }, + DoWait: { + url: 'https://262.ecma-international.org/15.0/#sec-dowait' + }, + EmptyMatcher: { + url: 'https://262.ecma-international.org/15.0/#sec-emptymatcher' + }, + Encode: { + url: 'https://262.ecma-international.org/15.0/#sec-encode' + }, + EnqueueAtomicsWaitAsyncTimeoutJob: { + url: 'https://262.ecma-international.org/15.0/#sec-enqueueatomicswaitasynctimeoutjob' + }, + EnqueueResolveInAgentJob: { + url: 'https://262.ecma-international.org/15.0/#sec-enqueueresolveinagentjob' + }, + EnterCriticalSection: { + url: 'https://262.ecma-international.org/15.0/#sec-entercriticalsection' + }, + EnumerableOwnProperties: { + url: 'https://262.ecma-international.org/15.0/#sec-enumerableownproperties' + }, + EnumerateObjectProperties: { + url: 'https://262.ecma-international.org/15.0/#sec-enumerate-object-properties' + }, + EscapeRegExpPattern: { + url: 'https://262.ecma-international.org/15.0/#sec-escaperegexppattern' + }, + EvalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/15.0/#sec-evaldeclarationinstantiation' + }, + EvaluateCall: { + url: 'https://262.ecma-international.org/15.0/#sec-evaluatecall' + }, + EvaluateNew: { + url: 'https://262.ecma-international.org/15.0/#sec-evaluatenew' + }, + EvaluatePropertyAccessWithExpressionKey: { + url: 'https://262.ecma-international.org/15.0/#sec-evaluate-property-access-with-expression-key' + }, + EvaluatePropertyAccessWithIdentifierKey: { + url: 'https://262.ecma-international.org/15.0/#sec-evaluate-property-access-with-identifier-key' + }, + EvaluateStringOrNumericBinaryExpression: { + url: 'https://262.ecma-international.org/15.0/#sec-evaluatestringornumericbinaryexpression' + }, + EventSet: { + url: 'https://262.ecma-international.org/15.0/#sec-event-set' + }, + ExecuteAsyncModule: { + url: 'https://262.ecma-international.org/15.0/#sec-execute-async-module' + }, + '𝔽': { + url: 'https://262.ecma-international.org/15.0/#𝔽' + }, + FindViaPredicate: { + url: 'https://262.ecma-international.org/15.0/#sec-findviapredicate' + }, + FinishLoadingImportedModule: { + url: 'https://262.ecma-international.org/15.0/#sec-FinishLoadingImportedModule' + }, + FlattenIntoArray: { + url: 'https://262.ecma-international.org/15.0/#sec-flattenintoarray' + }, + floor: { + url: 'https://262.ecma-international.org/15.0/#eqn-floor' + }, + ForBodyEvaluation: { + url: 'https://262.ecma-international.org/15.0/#sec-forbodyevaluation' + }, + 'ForIn/OfBodyEvaluation': { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset' + }, + 'ForIn/OfHeadEvaluation': { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-forinofheadevaluation' + }, + FromPropertyDescriptor: { + url: 'https://262.ecma-international.org/15.0/#sec-frompropertydescriptor' + }, + FulfillPromise: { + url: 'https://262.ecma-international.org/15.0/#sec-fulfillpromise' + }, + FunctionDeclarationInstantiation: { + url: 'https://262.ecma-international.org/15.0/#sec-functiondeclarationinstantiation' + }, + GatherAvailableAncestors: { + url: 'https://262.ecma-international.org/15.0/#sec-gather-available-ancestors' + }, + GeneratorResume: { + url: 'https://262.ecma-international.org/15.0/#sec-generatorresume' + }, + GeneratorResumeAbrupt: { + url: 'https://262.ecma-international.org/15.0/#sec-generatorresumeabrupt' + }, + GeneratorStart: { + url: 'https://262.ecma-international.org/15.0/#sec-generatorstart' + }, + GeneratorValidate: { + url: 'https://262.ecma-international.org/15.0/#sec-generatorvalidate' + }, + GeneratorYield: { + url: 'https://262.ecma-international.org/15.0/#sec-generatoryield' + }, + Get: { + url: 'https://262.ecma-international.org/15.0/#sec-get-o-p' + }, + GetActiveScriptOrModule: { + url: 'https://262.ecma-international.org/15.0/#sec-getactivescriptormodule' + }, + GetArrayBufferMaxByteLengthOption: { + url: 'https://262.ecma-international.org/15.0/#sec-getarraybuffermaxbytelengthoption' + }, + GetFunctionRealm: { + url: 'https://262.ecma-international.org/15.0/#sec-getfunctionrealm' + }, + GetGeneratorKind: { + url: 'https://262.ecma-international.org/15.0/#sec-getgeneratorkind' + }, + GetGlobalObject: { + url: 'https://262.ecma-international.org/15.0/#sec-getglobalobject' + }, + GetIdentifierReference: { + url: 'https://262.ecma-international.org/15.0/#sec-getidentifierreference' + }, + GetImportedModule: { + url: 'https://262.ecma-international.org/15.0/#sec-GetImportedModule' + }, + GetIterator: { + url: 'https://262.ecma-international.org/15.0/#sec-getiterator' + }, + GetIteratorFromMethod: { + url: 'https://262.ecma-international.org/15.0/#sec-getiteratorfrommethod' + }, + GetMatchIndexPair: { + url: 'https://262.ecma-international.org/15.0/#sec-getmatchindexpair' + }, + GetMatchString: { + url: 'https://262.ecma-international.org/15.0/#sec-getmatchstring' + }, + GetMethod: { + url: 'https://262.ecma-international.org/15.0/#sec-getmethod' + }, + GetModifySetValueInBuffer: { + url: 'https://262.ecma-international.org/15.0/#sec-getmodifysetvalueinbuffer' + }, + GetModuleNamespace: { + url: 'https://262.ecma-international.org/15.0/#sec-getmodulenamespace' + }, + GetNamedTimeZoneEpochNanoseconds: { + url: 'https://262.ecma-international.org/15.0/#sec-getnamedtimezoneepochnanoseconds' + }, + GetNamedTimeZoneOffsetNanoseconds: { + url: 'https://262.ecma-international.org/15.0/#sec-getnamedtimezoneoffsetnanoseconds' + }, + GetNewTarget: { + url: 'https://262.ecma-international.org/15.0/#sec-getnewtarget' + }, + GetOwnPropertyKeys: { + url: 'https://262.ecma-international.org/15.0/#sec-getownpropertykeys' + }, + GetPromiseResolve: { + url: 'https://262.ecma-international.org/15.0/#sec-getpromiseresolve' + }, + GetPrototypeFromConstructor: { + url: 'https://262.ecma-international.org/15.0/#sec-getprototypefromconstructor' + }, + GetRawBytesFromSharedBlock: { + url: 'https://262.ecma-international.org/15.0/#sec-getrawbytesfromsharedblock' + }, + GetStringIndex: { + url: 'https://262.ecma-international.org/15.0/#sec-getstringindex' + }, + GetSubstitution: { + url: 'https://262.ecma-international.org/15.0/#sec-getsubstitution' + }, + GetSuperConstructor: { + url: 'https://262.ecma-international.org/15.0/#sec-getsuperconstructor' + }, + GetTemplateObject: { + url: 'https://262.ecma-international.org/15.0/#sec-gettemplateobject' + }, + GetThisEnvironment: { + url: 'https://262.ecma-international.org/15.0/#sec-getthisenvironment' + }, + GetThisValue: { + url: 'https://262.ecma-international.org/15.0/#sec-getthisvalue' + }, + GetUTCEpochNanoseconds: { + url: 'https://262.ecma-international.org/15.0/#sec-getutcepochnanoseconds' + }, + GetV: { + url: 'https://262.ecma-international.org/15.0/#sec-getv' + }, + GetValue: { + url: 'https://262.ecma-international.org/15.0/#sec-getvalue' + }, + GetValueFromBuffer: { + url: 'https://262.ecma-international.org/15.0/#sec-getvaluefrombuffer' + }, + GetViewByteLength: { + url: 'https://262.ecma-international.org/15.0/#sec-getviewbytelength' + }, + GetViewValue: { + url: 'https://262.ecma-international.org/15.0/#sec-getviewvalue' + }, + GetWaiterList: { + url: 'https://262.ecma-international.org/15.0/#sec-getwaiterlist' + }, + GlobalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/15.0/#sec-globaldeclarationinstantiation' + }, + GroupBy: { + url: 'https://262.ecma-international.org/15.0/#sec-groupby' + }, + GroupSpecifiersThatMatch: { + url: 'https://262.ecma-international.org/15.0/#sec-groupspecifiersthatmatch' + }, + 'happens-before': { + url: 'https://262.ecma-international.org/15.0/#sec-happens-before' + }, + HasEitherUnicodeFlag: { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-haseitherunicodeflag-abstract-operation' + }, + HasOwnProperty: { + url: 'https://262.ecma-international.org/15.0/#sec-hasownproperty' + }, + HasProperty: { + url: 'https://262.ecma-international.org/15.0/#sec-hasproperty' + }, + 'host-synchronizes-with': { + url: 'https://262.ecma-international.org/15.0/#sec-host-synchronizes-with' + }, + HostEventSet: { + url: 'https://262.ecma-international.org/15.0/#sec-hosteventset' + }, + HourFromTime: { + url: 'https://262.ecma-international.org/15.0/#sec-hourfromtime' + }, + IfAbruptCloseIterator: { + url: 'https://262.ecma-international.org/15.0/#sec-ifabruptcloseiterator' + }, + IfAbruptRejectPromise: { + url: 'https://262.ecma-international.org/15.0/#sec-ifabruptrejectpromise' + }, + ImportedLocalNames: { + url: 'https://262.ecma-international.org/15.0/#sec-importedlocalnames' + }, + InitializeBoundName: { + url: 'https://262.ecma-international.org/15.0/#sec-initializeboundname' + }, + InitializeHostDefinedRealm: { + url: 'https://262.ecma-international.org/15.0/#sec-initializehostdefinedrealm' + }, + InitializeInstanceElements: { + url: 'https://262.ecma-international.org/15.0/#sec-initializeinstanceelements' + }, + InitializeReferencedBinding: { + url: 'https://262.ecma-international.org/15.0/#sec-initializereferencedbinding' + }, + InitializeTypedArrayFromArrayBuffer: { + url: 'https://262.ecma-international.org/15.0/#sec-initializetypedarrayfromarraybuffer' + }, + InitializeTypedArrayFromArrayLike: { + url: 'https://262.ecma-international.org/15.0/#sec-initializetypedarrayfromarraylike' + }, + InitializeTypedArrayFromList: { + url: 'https://262.ecma-international.org/15.0/#sec-initializetypedarrayfromlist' + }, + InitializeTypedArrayFromTypedArray: { + url: 'https://262.ecma-international.org/15.0/#sec-initializetypedarrayfromtypedarray' + }, + InLeapYear: { + url: 'https://262.ecma-international.org/15.0/#sec-inleapyear' + }, + InnerModuleEvaluation: { + url: 'https://262.ecma-international.org/15.0/#sec-innermoduleevaluation' + }, + InnerModuleLinking: { + url: 'https://262.ecma-international.org/15.0/#sec-InnerModuleLinking' + }, + InnerModuleLoading: { + url: 'https://262.ecma-international.org/15.0/#sec-InnerModuleLoading' + }, + InstallErrorCause: { + url: 'https://262.ecma-international.org/15.0/#sec-installerrorcause' + }, + InstanceofOperator: { + url: 'https://262.ecma-international.org/15.0/#sec-instanceofoperator' + }, + InternalizeJSONProperty: { + url: 'https://262.ecma-international.org/15.0/#sec-internalizejsonproperty' + }, + Invoke: { + url: 'https://262.ecma-international.org/15.0/#sec-invoke' + }, + IsAccessorDescriptor: { + url: 'https://262.ecma-international.org/15.0/#sec-isaccessordescriptor' + }, + IsAnonymousFunctionDefinition: { + url: 'https://262.ecma-international.org/15.0/#sec-isanonymousfunctiondefinition' + }, + IsArray: { + url: 'https://262.ecma-international.org/15.0/#sec-isarray' + }, + IsArrayBufferViewOutOfBounds: { + url: 'https://262.ecma-international.org/15.0/#sec-isarraybufferviewoutofbounds' + }, + IsBigIntElementType: { + url: 'https://262.ecma-international.org/15.0/#sec-isbigintelementtype' + }, + IsCallable: { + url: 'https://262.ecma-international.org/15.0/#sec-iscallable' + }, + IsCompatiblePropertyDescriptor: { + url: 'https://262.ecma-international.org/15.0/#sec-iscompatiblepropertydescriptor' + }, + IsConcatSpreadable: { + url: 'https://262.ecma-international.org/15.0/#sec-isconcatspreadable' + }, + IsConstructor: { + url: 'https://262.ecma-international.org/15.0/#sec-isconstructor' + }, + IsDataDescriptor: { + url: 'https://262.ecma-international.org/15.0/#sec-isdatadescriptor' + }, + IsDetachedBuffer: { + url: 'https://262.ecma-international.org/15.0/#sec-isdetachedbuffer' + }, + IsExtensible: { + url: 'https://262.ecma-international.org/15.0/#sec-isextensible-o' + }, + IsFixedLengthArrayBuffer: { + url: 'https://262.ecma-international.org/15.0/#sec-isfixedlengtharraybuffer' + }, + IsGenericDescriptor: { + url: 'https://262.ecma-international.org/15.0/#sec-isgenericdescriptor' + }, + IsInTailPosition: { + url: 'https://262.ecma-international.org/15.0/#sec-isintailposition' + }, + IsIntegralNumber: { + url: 'https://262.ecma-international.org/15.0/#sec-isintegralnumber' + }, + IsLabelledFunction: { + url: 'https://262.ecma-international.org/15.0/#sec-islabelledfunction' + }, + IsLessThan: { + url: 'https://262.ecma-international.org/15.0/#sec-islessthan' + }, + IsLooselyEqual: { + url: 'https://262.ecma-international.org/15.0/#sec-islooselyequal' + }, + IsNoTearConfiguration: { + url: 'https://262.ecma-international.org/15.0/#sec-isnotearconfiguration' + }, + IsPrivateReference: { + url: 'https://262.ecma-international.org/15.0/#sec-isprivatereference' + }, + IsPromise: { + url: 'https://262.ecma-international.org/15.0/#sec-ispromise' + }, + IsPropertyKey: { + url: 'https://262.ecma-international.org/15.0/#sec-ispropertykey' + }, + IsPropertyReference: { + url: 'https://262.ecma-international.org/15.0/#sec-ispropertyreference' + }, + IsRegExp: { + url: 'https://262.ecma-international.org/15.0/#sec-isregexp' + }, + IsSharedArrayBuffer: { + url: 'https://262.ecma-international.org/15.0/#sec-issharedarraybuffer' + }, + IsStrictlyEqual: { + url: 'https://262.ecma-international.org/15.0/#sec-isstrictlyequal' + }, + IsStringWellFormedUnicode: { + url: 'https://262.ecma-international.org/15.0/#sec-isstringwellformedunicode' + }, + IsSuperReference: { + url: 'https://262.ecma-international.org/15.0/#sec-issuperreference' + }, + IsTimeZoneOffsetString: { + url: 'https://262.ecma-international.org/15.0/#sec-istimezoneoffsetstring' + }, + IsTypedArrayOutOfBounds: { + url: 'https://262.ecma-international.org/15.0/#sec-istypedarrayoutofbounds' + }, + IsUnclampedIntegerElementType: { + url: 'https://262.ecma-international.org/15.0/#sec-isunclampedintegerelementtype' + }, + IsUnresolvableReference: { + url: 'https://262.ecma-international.org/15.0/#sec-isunresolvablereference' + }, + IsUnsignedElementType: { + url: 'https://262.ecma-international.org/15.0/#sec-isunsignedelementtype' + }, + IsValidIntegerIndex: { + url: 'https://262.ecma-international.org/15.0/#sec-isvalidintegerindex' + }, + IsValidRegularExpressionLiteral: { + url: 'https://262.ecma-international.org/15.0/#sec-isvalidregularexpressionliteral' + }, + IsViewOutOfBounds: { + url: 'https://262.ecma-international.org/15.0/#sec-isviewoutofbounds' + }, + IsWordChar: { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-iswordchar-abstract-operation' + }, + IteratorClose: { + url: 'https://262.ecma-international.org/15.0/#sec-iteratorclose' + }, + IteratorComplete: { + url: 'https://262.ecma-international.org/15.0/#sec-iteratorcomplete' + }, + IteratorNext: { + url: 'https://262.ecma-international.org/15.0/#sec-iteratornext' + }, + IteratorStep: { + url: 'https://262.ecma-international.org/15.0/#sec-iteratorstep' + }, + IteratorStepValue: { + url: 'https://262.ecma-international.org/15.0/#sec-iteratorstepvalue' + }, + IteratorToList: { + url: 'https://262.ecma-international.org/15.0/#sec-iteratortolist' + }, + IteratorValue: { + url: 'https://262.ecma-international.org/15.0/#sec-iteratorvalue' + }, + KeyForSymbol: { + url: 'https://262.ecma-international.org/15.0/#sec-keyforsymbol' + }, + LeaveCriticalSection: { + url: 'https://262.ecma-international.org/15.0/#sec-leavecriticalsection' + }, + LengthOfArrayLike: { + url: 'https://262.ecma-international.org/15.0/#sec-lengthofarraylike' + }, + LocalTime: { + url: 'https://262.ecma-international.org/15.0/#sec-localtime' + }, + LoopContinues: { + url: 'https://262.ecma-international.org/15.0/#sec-loopcontinues' + }, + MakeArgGetter: { + url: 'https://262.ecma-international.org/15.0/#sec-makearggetter' + }, + MakeArgSetter: { + url: 'https://262.ecma-international.org/15.0/#sec-makeargsetter' + }, + MakeBasicObject: { + url: 'https://262.ecma-international.org/15.0/#sec-makebasicobject' + }, + MakeClassConstructor: { + url: 'https://262.ecma-international.org/15.0/#sec-makeclassconstructor' + }, + MakeConstructor: { + url: 'https://262.ecma-international.org/15.0/#sec-makeconstructor' + }, + MakeDataViewWithBufferWitnessRecord: { + url: 'https://262.ecma-international.org/15.0/#sec-makedataviewwithbufferwitnessrecord' + }, + MakeDate: { + url: 'https://262.ecma-international.org/15.0/#sec-makedate' + }, + MakeDay: { + url: 'https://262.ecma-international.org/15.0/#sec-makeday' + }, + MakeFullYear: { + url: 'https://262.ecma-international.org/15.0/#sec-makefullyear' + }, + MakeMatchIndicesIndexPairArray: { + url: 'https://262.ecma-international.org/15.0/#sec-makematchindicesindexpairarray' + }, + MakeMethod: { + url: 'https://262.ecma-international.org/15.0/#sec-makemethod' + }, + MakePrivateReference: { + url: 'https://262.ecma-international.org/15.0/#sec-makeprivatereference' + }, + MakeSuperPropertyReference: { + url: 'https://262.ecma-international.org/15.0/#sec-makesuperpropertyreference' + }, + MakeTime: { + url: 'https://262.ecma-international.org/15.0/#sec-maketime' + }, + MakeTypedArrayWithBufferWitnessRecord: { + url: 'https://262.ecma-international.org/15.0/#sec-maketypedarraywithbufferwitnessrecord' + }, + MatchSequence: { + url: 'https://262.ecma-international.org/15.0/#sec-matchsequence' + }, + MatchTwoAlternatives: { + url: 'https://262.ecma-international.org/15.0/#sec-matchtwoalternatives' + }, + max: { + url: 'https://262.ecma-international.org/15.0/#eqn-max' + }, + MaybeSimpleCaseFolding: { + url: 'https://262.ecma-international.org/15.0/#sec-maybesimplecasefolding' + }, + 'memory-order': { + url: 'https://262.ecma-international.org/15.0/#sec-memory-order' + }, + min: { + url: 'https://262.ecma-international.org/15.0/#eqn-min' + }, + MinFromTime: { + url: 'https://262.ecma-international.org/15.0/#sec-minfromtime' + }, + ModuleNamespaceCreate: { + url: 'https://262.ecma-international.org/15.0/#sec-modulenamespacecreate' + }, + modulo: { + url: 'https://262.ecma-international.org/15.0/#eqn-modulo' + }, + MonthFromTime: { + url: 'https://262.ecma-international.org/15.0/#sec-monthfromtime' + }, + msFromTime: { + url: 'https://262.ecma-international.org/15.0/#sec-msfromtime' + }, + NewDeclarativeEnvironment: { + url: 'https://262.ecma-international.org/15.0/#sec-newdeclarativeenvironment' + }, + NewFunctionEnvironment: { + url: 'https://262.ecma-international.org/15.0/#sec-newfunctionenvironment' + }, + NewGlobalEnvironment: { + url: 'https://262.ecma-international.org/15.0/#sec-newglobalenvironment' + }, + NewModuleEnvironment: { + url: 'https://262.ecma-international.org/15.0/#sec-newmoduleenvironment' + }, + NewObjectEnvironment: { + url: 'https://262.ecma-international.org/15.0/#sec-newobjectenvironment' + }, + NewPrivateEnvironment: { + url: 'https://262.ecma-international.org/15.0/#sec-newprivateenvironment' + }, + NewPromiseCapability: { + url: 'https://262.ecma-international.org/15.0/#sec-newpromisecapability' + }, + NewPromiseReactionJob: { + url: 'https://262.ecma-international.org/15.0/#sec-newpromisereactionjob' + }, + NewPromiseResolveThenableJob: { + url: 'https://262.ecma-international.org/15.0/#sec-newpromiseresolvethenablejob' + }, + NormalCompletion: { + url: 'https://262.ecma-international.org/15.0/#sec-normalcompletion' + }, + NotifyWaiter: { + url: 'https://262.ecma-international.org/15.0/#sec-notifywaiter' + }, + 'Number::add': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-add' + }, + 'Number::bitwiseAND': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-bitwiseAND' + }, + 'Number::bitwiseNOT': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-bitwiseNOT' + }, + 'Number::bitwiseOR': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-bitwiseOR' + }, + 'Number::bitwiseXOR': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-bitwiseXOR' + }, + 'Number::divide': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-divide' + }, + 'Number::equal': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-equal' + }, + 'Number::exponentiate': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-exponentiate' + }, + 'Number::leftShift': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-leftShift' + }, + 'Number::lessThan': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-lessThan' + }, + 'Number::multiply': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-multiply' + }, + 'Number::remainder': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-remainder' + }, + 'Number::sameValue': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-sameValue' + }, + 'Number::sameValueZero': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-sameValueZero' + }, + 'Number::signedRightShift': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-signedRightShift' + }, + 'Number::subtract': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-subtract' + }, + 'Number::toString': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-tostring' + }, + 'Number::unaryMinus': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-unaryMinus' + }, + 'Number::unsignedRightShift': { + url: 'https://262.ecma-international.org/15.0/#sec-numeric-types-number-unsignedRightShift' + }, + NumberBitwiseOp: { + url: 'https://262.ecma-international.org/15.0/#sec-numberbitwiseop' + }, + NumberToBigInt: { + url: 'https://262.ecma-international.org/15.0/#sec-numbertobigint' + }, + NumericToRawBytes: { + url: 'https://262.ecma-international.org/15.0/#sec-numerictorawbytes' + }, + ObjectDefineProperties: { + url: 'https://262.ecma-international.org/15.0/#sec-objectdefineproperties' + }, + OrdinaryCallBindThis: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinarycallbindthis' + }, + OrdinaryCallEvaluateBody: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinarycallevaluatebody' + }, + OrdinaryCreateFromConstructor: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinarycreatefromconstructor' + }, + OrdinaryDefineOwnProperty: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinarydefineownproperty' + }, + OrdinaryDelete: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinarydelete' + }, + OrdinaryFunctionCreate: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinaryfunctioncreate' + }, + OrdinaryGet: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinaryget' + }, + OrdinaryGetOwnProperty: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinarygetownproperty' + }, + OrdinaryGetPrototypeOf: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinarygetprototypeof' + }, + OrdinaryHasInstance: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinaryhasinstance' + }, + OrdinaryHasProperty: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinaryhasproperty' + }, + OrdinaryIsExtensible: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinaryisextensible' + }, + OrdinaryObjectCreate: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinaryobjectcreate' + }, + OrdinaryOwnPropertyKeys: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinaryownpropertykeys' + }, + OrdinaryPreventExtensions: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinarypreventextensions' + }, + OrdinarySet: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinaryset' + }, + OrdinarySetPrototypeOf: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinarysetprototypeof' + }, + OrdinarySetWithOwnDescriptor: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinarysetwithowndescriptor' + }, + OrdinaryToPrimitive: { + url: 'https://262.ecma-international.org/15.0/#sec-ordinarytoprimitive' + }, + ParseHexOctet: { + url: 'https://262.ecma-international.org/15.0/#sec-parsehexoctet' + }, + ParseModule: { + url: 'https://262.ecma-international.org/15.0/#sec-parsemodule' + }, + ParsePattern: { + url: 'https://262.ecma-international.org/15.0/#sec-parsepattern' + }, + ParseScript: { + url: 'https://262.ecma-international.org/15.0/#sec-parse-script' + }, + ParseText: { + url: 'https://262.ecma-international.org/15.0/#sec-parsetext' + }, + ParseTimeZoneOffsetString: { + url: 'https://262.ecma-international.org/15.0/#sec-parsetimezoneoffsetstring' + }, + PerformEval: { + url: 'https://262.ecma-international.org/15.0/#sec-performeval' + }, + PerformPromiseAll: { + url: 'https://262.ecma-international.org/15.0/#sec-performpromiseall' + }, + PerformPromiseAllSettled: { + url: 'https://262.ecma-international.org/15.0/#sec-performpromiseallsettled' + }, + PerformPromiseAny: { + url: 'https://262.ecma-international.org/15.0/#sec-performpromiseany' + }, + PerformPromiseRace: { + url: 'https://262.ecma-international.org/15.0/#sec-performpromiserace' + }, + PerformPromiseThen: { + url: 'https://262.ecma-international.org/15.0/#sec-performpromisethen' + }, + PrepareForOrdinaryCall: { + url: 'https://262.ecma-international.org/15.0/#sec-prepareforordinarycall' + }, + PrepareForTailCall: { + url: 'https://262.ecma-international.org/15.0/#sec-preparefortailcall' + }, + PrivateElementFind: { + url: 'https://262.ecma-international.org/15.0/#sec-privateelementfind' + }, + PrivateFieldAdd: { + url: 'https://262.ecma-international.org/15.0/#sec-privatefieldadd' + }, + PrivateGet: { + url: 'https://262.ecma-international.org/15.0/#sec-privateget' + }, + PrivateMethodOrAccessorAdd: { + url: 'https://262.ecma-international.org/15.0/#sec-privatemethodoraccessoradd' + }, + PrivateSet: { + url: 'https://262.ecma-international.org/15.0/#sec-privateset' + }, + PromiseResolve: { + url: 'https://262.ecma-international.org/15.0/#sec-promise-resolve' + }, + ProxyCreate: { + url: 'https://262.ecma-international.org/15.0/#sec-proxycreate' + }, + PutValue: { + url: 'https://262.ecma-international.org/15.0/#sec-putvalue' + }, + QuoteJSONString: { + url: 'https://262.ecma-international.org/15.0/#sec-quotejsonstring' + }, + ℝ: { + url: 'https://262.ecma-international.org/15.0/#ℝ' + }, + RawBytesToNumeric: { + url: 'https://262.ecma-international.org/15.0/#sec-rawbytestonumeric' + }, + 'reads-bytes-from': { + url: 'https://262.ecma-international.org/15.0/#sec-reads-bytes-from' + }, + 'reads-from': { + url: 'https://262.ecma-international.org/15.0/#sec-reads-from' + }, + RegExpAlloc: { + url: 'https://262.ecma-international.org/15.0/#sec-regexpalloc' + }, + RegExpBuiltinExec: { + url: 'https://262.ecma-international.org/15.0/#sec-regexpbuiltinexec' + }, + RegExpCreate: { + url: 'https://262.ecma-international.org/15.0/#sec-regexpcreate' + }, + RegExpExec: { + url: 'https://262.ecma-international.org/15.0/#sec-regexpexec' + }, + RegExpHasFlag: { + url: 'https://262.ecma-international.org/15.0/#sec-regexphasflag' + }, + RegExpInitialize: { + url: 'https://262.ecma-international.org/15.0/#sec-regexpinitialize' + }, + RejectPromise: { + url: 'https://262.ecma-international.org/15.0/#sec-rejectpromise' + }, + RemoveWaiter: { + url: 'https://262.ecma-international.org/15.0/#sec-removewaiter' + }, + RemoveWaiters: { + url: 'https://262.ecma-international.org/15.0/#sec-removewaiters' + }, + RepeatMatcher: { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-repeatmatcher-abstract-operation' + }, + RequireInternalSlot: { + url: 'https://262.ecma-international.org/15.0/#sec-requireinternalslot' + }, + RequireObjectCoercible: { + url: 'https://262.ecma-international.org/15.0/#sec-requireobjectcoercible' + }, + ResolveBinding: { + url: 'https://262.ecma-international.org/15.0/#sec-resolvebinding' + }, + ResolvePrivateIdentifier: { + url: 'https://262.ecma-international.org/15.0/#sec-resolve-private-identifier' + }, + ResolveThisBinding: { + url: 'https://262.ecma-international.org/15.0/#sec-resolvethisbinding' + }, + ReturnIfAbrupt: { + url: 'https://262.ecma-international.org/15.0/#sec-returnifabrupt' + }, + RevalidateAtomicAccess: { + url: 'https://262.ecma-international.org/15.0/#sec-revalidateatomicaccess' + }, + RoundMVResult: { + url: 'https://262.ecma-international.org/15.0/#sec-roundmvresult' + }, + SameValue: { + url: 'https://262.ecma-international.org/15.0/#sec-samevalue' + }, + SameValueNonNumber: { + url: 'https://262.ecma-international.org/15.0/#sec-samevaluenonnumber' + }, + SameValueZero: { + url: 'https://262.ecma-international.org/15.0/#sec-samevaluezero' + }, + scf: { + url: 'https://262.ecma-international.org/15.0/#eqn-scf' + }, + ScriptEvaluation: { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-scriptevaluation' + }, + SecFromTime: { + url: 'https://262.ecma-international.org/15.0/#sec-secfromtime' + }, + SerializeJSONArray: { + url: 'https://262.ecma-international.org/15.0/#sec-serializejsonarray' + }, + SerializeJSONObject: { + url: 'https://262.ecma-international.org/15.0/#sec-serializejsonobject' + }, + SerializeJSONProperty: { + url: 'https://262.ecma-international.org/15.0/#sec-serializejsonproperty' + }, + Set: { + url: 'https://262.ecma-international.org/15.0/#sec-set-o-p-v-throw' + }, + SetDefaultGlobalBindings: { + url: 'https://262.ecma-international.org/15.0/#sec-setdefaultglobalbindings' + }, + SetFunctionLength: { + url: 'https://262.ecma-international.org/15.0/#sec-setfunctionlength' + }, + SetFunctionName: { + url: 'https://262.ecma-international.org/15.0/#sec-setfunctionname' + }, + SetImmutablePrototype: { + url: 'https://262.ecma-international.org/15.0/#sec-set-immutable-prototype' + }, + SetIntegrityLevel: { + url: 'https://262.ecma-international.org/15.0/#sec-setintegritylevel' + }, + SetRealmGlobalObject: { + url: 'https://262.ecma-international.org/15.0/#sec-setrealmglobalobject' + }, + SetTypedArrayFromArrayLike: { + url: 'https://262.ecma-international.org/15.0/#sec-settypedarrayfromarraylike' + }, + SetTypedArrayFromTypedArray: { + url: 'https://262.ecma-international.org/15.0/#sec-settypedarrayfromtypedarray' + }, + SetValueInBuffer: { + url: 'https://262.ecma-international.org/15.0/#sec-setvalueinbuffer' + }, + SetViewValue: { + url: 'https://262.ecma-international.org/15.0/#sec-setviewvalue' + }, + SharedDataBlockEventSet: { + url: 'https://262.ecma-international.org/15.0/#sec-sharedatablockeventset' + }, + SortIndexedProperties: { + url: 'https://262.ecma-international.org/15.0/#sec-sortindexedproperties' + }, + SpeciesConstructor: { + url: 'https://262.ecma-international.org/15.0/#sec-speciesconstructor' + }, + StringCreate: { + url: 'https://262.ecma-international.org/15.0/#sec-stringcreate' + }, + StringGetOwnProperty: { + url: 'https://262.ecma-international.org/15.0/#sec-stringgetownproperty' + }, + StringIndexOf: { + url: 'https://262.ecma-international.org/15.0/#sec-stringindexof' + }, + StringPad: { + url: 'https://262.ecma-international.org/15.0/#sec-stringpad' + }, + StringPaddingBuiltinsImpl: { + url: 'https://262.ecma-international.org/15.0/#sec-stringpaddingbuiltinsimpl' + }, + StringToBigInt: { + url: 'https://262.ecma-international.org/15.0/#sec-stringtobigint' + }, + StringToCodePoints: { + url: 'https://262.ecma-international.org/15.0/#sec-stringtocodepoints' + }, + StringToNumber: { + url: 'https://262.ecma-international.org/15.0/#sec-stringtonumber' + }, + substring: { + url: 'https://262.ecma-international.org/15.0/#substring' + }, + SuspendThisAgent: { + url: 'https://262.ecma-international.org/15.0/#sec-suspendthisagent' + }, + SymbolDescriptiveString: { + url: 'https://262.ecma-international.org/15.0/#sec-symboldescriptivestring' + }, + 'synchronizes-with': { + url: 'https://262.ecma-international.org/15.0/#sec-synchronizes-with' + }, + SystemTimeZoneIdentifier: { + url: 'https://262.ecma-international.org/15.0/#sec-systemtimezoneidentifier' + }, + TemplateString: { + url: 'https://262.ecma-international.org/15.0/#sec-templatestring' + }, + TestIntegrityLevel: { + url: 'https://262.ecma-international.org/15.0/#sec-testintegritylevel' + }, + ThisBigIntValue: { + url: 'https://262.ecma-international.org/15.0/#sec-thisbigintvalue' + }, + ThisBooleanValue: { + url: 'https://262.ecma-international.org/15.0/#sec-thisbooleanvalue' + }, + ThisNumberValue: { + url: 'https://262.ecma-international.org/15.0/#sec-thisnumbervalue' + }, + ThisStringValue: { + url: 'https://262.ecma-international.org/15.0/#sec-thisstringvalue' + }, + ThisSymbolValue: { + url: 'https://262.ecma-international.org/15.0/#sec-thissymbolvalue' + }, + ThrowCompletion: { + url: 'https://262.ecma-international.org/15.0/#sec-throwcompletion' + }, + TimeClip: { + url: 'https://262.ecma-international.org/15.0/#sec-timeclip' + }, + TimeFromYear: { + url: 'https://262.ecma-international.org/15.0/#sec-timefromyear' + }, + TimeString: { + url: 'https://262.ecma-international.org/15.0/#sec-timestring' + }, + TimeWithinDay: { + url: 'https://262.ecma-international.org/15.0/#sec-timewithinday' + }, + TimeZoneString: { + url: 'https://262.ecma-international.org/15.0/#sec-timezoneestring' + }, + ToBigInt: { + url: 'https://262.ecma-international.org/15.0/#sec-tobigint' + }, + ToBigInt64: { + url: 'https://262.ecma-international.org/15.0/#sec-tobigint64' + }, + ToBigUint64: { + url: 'https://262.ecma-international.org/15.0/#sec-tobiguint64' + }, + ToBoolean: { + url: 'https://262.ecma-international.org/15.0/#sec-toboolean' + }, + ToDateString: { + url: 'https://262.ecma-international.org/15.0/#sec-todatestring' + }, + ToIndex: { + url: 'https://262.ecma-international.org/15.0/#sec-toindex' + }, + ToInt16: { + url: 'https://262.ecma-international.org/15.0/#sec-toint16' + }, + ToInt32: { + url: 'https://262.ecma-international.org/15.0/#sec-toint32' + }, + ToInt8: { + url: 'https://262.ecma-international.org/15.0/#sec-toint8' + }, + ToIntegerOrInfinity: { + url: 'https://262.ecma-international.org/15.0/#sec-tointegerorinfinity' + }, + ToLength: { + url: 'https://262.ecma-international.org/15.0/#sec-tolength' + }, + ToNumber: { + url: 'https://262.ecma-international.org/15.0/#sec-tonumber' + }, + ToNumeric: { + url: 'https://262.ecma-international.org/15.0/#sec-tonumeric' + }, + ToObject: { + url: 'https://262.ecma-international.org/15.0/#sec-toobject' + }, + ToPrimitive: { + url: 'https://262.ecma-international.org/15.0/#sec-toprimitive' + }, + ToPropertyDescriptor: { + url: 'https://262.ecma-international.org/15.0/#sec-topropertydescriptor' + }, + ToPropertyKey: { + url: 'https://262.ecma-international.org/15.0/#sec-topropertykey' + }, + ToString: { + url: 'https://262.ecma-international.org/15.0/#sec-tostring' + }, + ToUint16: { + url: 'https://262.ecma-international.org/15.0/#sec-touint16' + }, + ToUint32: { + url: 'https://262.ecma-international.org/15.0/#sec-touint32' + }, + ToUint8: { + url: 'https://262.ecma-international.org/15.0/#sec-touint8' + }, + ToUint8Clamp: { + url: 'https://262.ecma-international.org/15.0/#sec-touint8clamp' + }, + ToZeroPaddedDecimalString: { + url: 'https://262.ecma-international.org/15.0/#sec-tozeropaddeddecimalstring' + }, + TriggerPromiseReactions: { + url: 'https://262.ecma-international.org/15.0/#sec-triggerpromisereactions' + }, + TrimString: { + url: 'https://262.ecma-international.org/15.0/#sec-trimstring' + }, + truncate: { + url: 'https://262.ecma-international.org/15.0/#eqn-truncate' + }, + Type: { + url: 'https://262.ecma-international.org/15.0/#sec-ecmascript-data-types-and-values' + }, + TypedArrayByteLength: { + url: 'https://262.ecma-international.org/15.0/#sec-typedarraybytelength' + }, + TypedArrayCreate: { + url: 'https://262.ecma-international.org/15.0/#sec-typedarraycreate' + }, + TypedArrayCreateFromConstructor: { + url: 'https://262.ecma-international.org/15.0/#sec-typedarraycreatefromconstructor' + }, + TypedArrayCreateSameType: { + url: 'https://262.ecma-international.org/15.0/#sec-typedarray-create-same-type' + }, + TypedArrayElementSize: { + url: 'https://262.ecma-international.org/15.0/#sec-typedarrayelementsize' + }, + TypedArrayElementType: { + url: 'https://262.ecma-international.org/15.0/#sec-typedarrayelementtype' + }, + TypedArrayGetElement: { + url: 'https://262.ecma-international.org/15.0/#sec-typedarraygetelement' + }, + TypedArrayLength: { + url: 'https://262.ecma-international.org/15.0/#sec-typedarraylength' + }, + TypedArraySetElement: { + url: 'https://262.ecma-international.org/15.0/#sec-typedarraysetelement' + }, + TypedArraySpeciesCreate: { + url: 'https://262.ecma-international.org/15.0/#typedarray-species-create' + }, + UnicodeEscape: { + url: 'https://262.ecma-international.org/15.0/#sec-unicodeescape' + }, + UnicodeMatchProperty: { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-unicodematchproperty-p' + }, + UnicodeMatchPropertyValue: { + url: 'https://262.ecma-international.org/15.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v' + }, + UpdateEmpty: { + url: 'https://262.ecma-international.org/15.0/#sec-updateempty' + }, + UTC: { + url: 'https://262.ecma-international.org/15.0/#sec-utc-t' + }, + UTF16EncodeCodePoint: { + url: 'https://262.ecma-international.org/15.0/#sec-utf16encodecodepoint' + }, + UTF16SurrogatePairToCodePoint: { + url: 'https://262.ecma-international.org/15.0/#sec-utf16decodesurrogatepair' + }, + ValidateAndApplyPropertyDescriptor: { + url: 'https://262.ecma-international.org/15.0/#sec-validateandapplypropertydescriptor' + }, + ValidateAtomicAccess: { + url: 'https://262.ecma-international.org/15.0/#sec-validateatomicaccess' + }, + ValidateAtomicAccessOnIntegerTypedArray: { + url: 'https://262.ecma-international.org/15.0/#sec-validateatomicaccessonintegertypedarray' + }, + ValidateIntegerTypedArray: { + url: 'https://262.ecma-international.org/15.0/#sec-validateintegertypedarray' + }, + ValidateNonRevokedProxy: { + url: 'https://262.ecma-international.org/15.0/#sec-validatenonrevokedproxy' + }, + ValidateTypedArray: { + url: 'https://262.ecma-international.org/15.0/#sec-validatetypedarray' + }, + ValueOfReadEvent: { + url: 'https://262.ecma-international.org/15.0/#sec-valueofreadevent' + }, + WeakRefDeref: { + url: 'https://262.ecma-international.org/15.0/#sec-weakrefderef' + }, + WeekDay: { + url: 'https://262.ecma-international.org/15.0/#sec-weekday' + }, + WordCharacters: { + url: 'https://262.ecma-international.org/15.0/#sec-wordcharacters' + }, + YearFromTime: { + url: 'https://262.ecma-international.org/15.0/#sec-yearfromtime' + }, + Yield: { + url: 'https://262.ecma-international.org/15.0/#sec-yield' + }, + ℤ: { + url: 'https://262.ecma-international.org/15.0/#ℤ' + } +}; diff --git a/node_modules/es-abstract/operations/2025.js b/node_modules/es-abstract/operations/2025.js new file mode 100644 index 0000000000000000000000000000000000000000..394acc2756d7ee3260a524879b2177eb5927c831 --- /dev/null +++ b/node_modules/es-abstract/operations/2025.js @@ -0,0 +1,1603 @@ +'use strict'; + +module.exports = { + abs: { + url: 'https://262.ecma-international.org/16.0/#eqn-abs' + }, + AddEntriesFromIterable: { + url: 'https://262.ecma-international.org/16.0/#sec-add-entries-from-iterable' + }, + AddRestrictedFunctionProperties: { + url: 'https://262.ecma-international.org/16.0/#sec-addrestrictedfunctionproperties' + }, + AddToKeptObjects: { + url: 'https://262.ecma-international.org/16.0/#sec-addtokeptobjects' + }, + AddValueToKeyedGroup: { + url: 'https://262.ecma-international.org/16.0/#sec-add-value-to-keyed-group' + }, + AddWaiter: { + url: 'https://262.ecma-international.org/16.0/#sec-addwaiter' + }, + AdvanceStringIndex: { + url: 'https://262.ecma-international.org/16.0/#sec-advancestringindex' + }, + AgentCanSuspend: { + url: 'https://262.ecma-international.org/16.0/#sec-agentcansuspend' + }, + AgentSignifier: { + url: 'https://262.ecma-international.org/16.0/#sec-agentsignifier' + }, + AllCharacters: { + url: 'https://262.ecma-international.org/16.0/#sec-allcharacters' + }, + AllImportAttributesSupported: { + url: 'https://262.ecma-international.org/16.0/#sec-AllImportAttributesSupported' + }, + AllocateArrayBuffer: { + url: 'https://262.ecma-international.org/16.0/#sec-allocatearraybuffer' + }, + AllocateSharedArrayBuffer: { + url: 'https://262.ecma-international.org/16.0/#sec-allocatesharedarraybuffer' + }, + AllocateTypedArray: { + url: 'https://262.ecma-international.org/16.0/#sec-allocatetypedarray' + }, + AllocateTypedArrayBuffer: { + url: 'https://262.ecma-international.org/16.0/#sec-allocatetypedarraybuffer' + }, + ApplyStringOrNumericBinaryOperator: { + url: 'https://262.ecma-international.org/16.0/#sec-applystringornumericbinaryoperator' + }, + ArrayBufferByteLength: { + url: 'https://262.ecma-international.org/16.0/#sec-arraybufferbytelength' + }, + ArrayBufferCopyAndDetach: { + url: 'https://262.ecma-international.org/16.0/#sec-arraybuffercopyanddetach' + }, + ArrayCreate: { + url: 'https://262.ecma-international.org/16.0/#sec-arraycreate' + }, + ArraySetLength: { + url: 'https://262.ecma-international.org/16.0/#sec-arraysetlength' + }, + ArraySpeciesCreate: { + url: 'https://262.ecma-international.org/16.0/#sec-arrayspeciescreate' + }, + AsyncBlockStart: { + url: 'https://262.ecma-international.org/16.0/#sec-asyncblockstart' + }, + AsyncFromSyncIteratorContinuation: { + url: 'https://262.ecma-international.org/16.0/#sec-asyncfromsynciteratorcontinuation' + }, + AsyncFunctionStart: { + url: 'https://262.ecma-international.org/16.0/#sec-async-functions-abstract-operations-async-function-start' + }, + AsyncGeneratorAwaitReturn: { + url: 'https://262.ecma-international.org/16.0/#sec-asyncgeneratorawaitreturn' + }, + AsyncGeneratorCompleteStep: { + url: 'https://262.ecma-international.org/16.0/#sec-asyncgeneratorcompletestep' + }, + AsyncGeneratorDrainQueue: { + url: 'https://262.ecma-international.org/16.0/#sec-asyncgeneratordrainqueue' + }, + AsyncGeneratorEnqueue: { + url: 'https://262.ecma-international.org/16.0/#sec-asyncgeneratorenqueue' + }, + AsyncGeneratorResume: { + url: 'https://262.ecma-international.org/16.0/#sec-asyncgeneratorresume' + }, + AsyncGeneratorStart: { + url: 'https://262.ecma-international.org/16.0/#sec-asyncgeneratorstart' + }, + AsyncGeneratorUnwrapYieldResumption: { + url: 'https://262.ecma-international.org/16.0/#sec-asyncgeneratorunwrapyieldresumption' + }, + AsyncGeneratorValidate: { + url: 'https://262.ecma-international.org/16.0/#sec-asyncgeneratorvalidate' + }, + AsyncGeneratorYield: { + url: 'https://262.ecma-international.org/16.0/#sec-asyncgeneratoryield' + }, + AsyncIteratorClose: { + url: 'https://262.ecma-international.org/16.0/#sec-asynciteratorclose' + }, + AsyncModuleExecutionFulfilled: { + url: 'https://262.ecma-international.org/16.0/#sec-async-module-execution-fulfilled' + }, + AsyncModuleExecutionRejected: { + url: 'https://262.ecma-international.org/16.0/#sec-async-module-execution-rejected' + }, + AtomicCompareExchangeInSharedBlock: { + url: 'https://262.ecma-international.org/16.0/#sec-atomiccompareexchangeinsharedblock' + }, + AtomicReadModifyWrite: { + url: 'https://262.ecma-international.org/16.0/#sec-atomicreadmodifywrite' + }, + AvailableNamedTimeZoneIdentifiers: { + url: 'https://262.ecma-international.org/16.0/#sec-availablenamedtimezoneidentifiers' + }, + Await: { + url: 'https://262.ecma-international.org/16.0/#await' + }, + BackreferenceMatcher: { + url: 'https://262.ecma-international.org/16.0/#sec-backreference-matcher' + }, + 'BigInt::add': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-add' + }, + 'BigInt::bitwiseAND': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-bitwiseAND' + }, + 'BigInt::bitwiseNOT': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-bitwiseNOT' + }, + 'BigInt::bitwiseOR': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-bitwiseOR' + }, + 'BigInt::bitwiseXOR': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-bitwiseXOR' + }, + 'BigInt::divide': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-divide' + }, + 'BigInt::equal': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-equal' + }, + 'BigInt::exponentiate': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-exponentiate' + }, + 'BigInt::leftShift': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-leftShift' + }, + 'BigInt::lessThan': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-lessThan' + }, + 'BigInt::multiply': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-multiply' + }, + 'BigInt::remainder': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-remainder' + }, + 'BigInt::signedRightShift': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-signedRightShift' + }, + 'BigInt::subtract': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-subtract' + }, + 'BigInt::toString': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-tostring' + }, + 'BigInt::unaryMinus': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-unaryMinus' + }, + 'BigInt::unsignedRightShift': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-bigint-unsignedRightShift' + }, + BigIntBitwiseOp: { + url: 'https://262.ecma-international.org/16.0/#sec-bigintbitwiseop' + }, + BinaryAnd: { + url: 'https://262.ecma-international.org/16.0/#sec-binaryand' + }, + BinaryOr: { + url: 'https://262.ecma-international.org/16.0/#sec-binaryor' + }, + BinaryXor: { + url: 'https://262.ecma-international.org/16.0/#sec-binaryxor' + }, + BindThisValue: { + url: 'https://262.ecma-international.org/16.0/#sec-bindthisvalue' + }, + BlockDeclarationInstantiation: { + url: 'https://262.ecma-international.org/16.0/#sec-blockdeclarationinstantiation' + }, + BoundFunctionCreate: { + url: 'https://262.ecma-international.org/16.0/#sec-boundfunctioncreate' + }, + BuiltinCallOrConstruct: { + url: 'https://262.ecma-international.org/16.0/#sec-builtincallorconstruct' + }, + ByteListBitwiseOp: { + url: 'https://262.ecma-international.org/16.0/#sec-bytelistbitwiseop' + }, + ByteListEqual: { + url: 'https://262.ecma-international.org/16.0/#sec-bytelistequal' + }, + Call: { + url: 'https://262.ecma-international.org/16.0/#sec-call' + }, + CanBeHeldWeakly: { + url: 'https://262.ecma-international.org/16.0/#sec-canbeheldweakly' + }, + CanDeclareGlobalFunction: { + url: 'https://262.ecma-international.org/16.0/#sec-candeclareglobalfunction' + }, + CanDeclareGlobalVar: { + url: 'https://262.ecma-international.org/16.0/#sec-candeclareglobalvar' + }, + Canonicalize: { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-canonicalize-ch' + }, + CanonicalizeKeyedCollectionKey: { + url: 'https://262.ecma-international.org/16.0/#sec-canonicalizekeyedcollectionkey' + }, + CanonicalNumericIndexString: { + url: 'https://262.ecma-international.org/16.0/#sec-canonicalnumericindexstring' + }, + CaseClauseIsSelected: { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-caseclauseisselected' + }, + CharacterComplement: { + url: 'https://262.ecma-international.org/16.0/#sec-charactercomplement' + }, + CharacterRange: { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-characterrange-abstract-operation' + }, + CharacterRangeOrUnion: { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation' + }, + CharacterSetMatcher: { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation' + }, + clamp: { + url: 'https://262.ecma-international.org/16.0/#clamping' + }, + CleanupFinalizationRegistry: { + url: 'https://262.ecma-international.org/16.0/#sec-cleanup-finalization-registry' + }, + ClearKeptObjects: { + url: 'https://262.ecma-international.org/16.0/#sec-clear-kept-objects' + }, + CloneArrayBuffer: { + url: 'https://262.ecma-international.org/16.0/#sec-clonearraybuffer' + }, + CodePointAt: { + url: 'https://262.ecma-international.org/16.0/#sec-codepointat' + }, + CodePointsToString: { + url: 'https://262.ecma-international.org/16.0/#sec-codepointstostring' + }, + CompareArrayElements: { + url: 'https://262.ecma-international.org/16.0/#sec-comparearrayelements' + }, + CompareTypedArrayElements: { + url: 'https://262.ecma-international.org/16.0/#sec-comparetypedarrayelements' + }, + CompletePropertyDescriptor: { + url: 'https://262.ecma-international.org/16.0/#sec-completepropertydescriptor' + }, + Completion: { + url: 'https://262.ecma-international.org/16.0/#sec-completion-ao' + }, + CompletionRecord: { + url: 'https://262.ecma-international.org/16.0/#sec-completion-record-specification-type' + }, + ComposeWriteEventBytes: { + url: 'https://262.ecma-international.org/16.0/#sec-composewriteeventbytes' + }, + Construct: { + url: 'https://262.ecma-international.org/16.0/#sec-construct' + }, + ContinueDynamicImport: { + url: 'https://262.ecma-international.org/16.0/#sec-ContinueDynamicImport' + }, + ContinueModuleLoading: { + url: 'https://262.ecma-international.org/16.0/#sec-ContinueModuleLoading' + }, + CopyDataBlockBytes: { + url: 'https://262.ecma-international.org/16.0/#sec-copydatablockbytes' + }, + CopyDataProperties: { + url: 'https://262.ecma-international.org/16.0/#sec-copydataproperties' + }, + CountLeftCapturingParensBefore: { + url: 'https://262.ecma-international.org/16.0/#sec-countleftcapturingparensbefore' + }, + CountLeftCapturingParensWithin: { + url: 'https://262.ecma-international.org/16.0/#sec-countleftcapturingparenswithin' + }, + CreateArrayFromList: { + url: 'https://262.ecma-international.org/16.0/#sec-createarrayfromlist' + }, + CreateArrayIterator: { + url: 'https://262.ecma-international.org/16.0/#sec-createarrayiterator' + }, + CreateAsyncFromSyncIterator: { + url: 'https://262.ecma-international.org/16.0/#sec-createasyncfromsynciterator' + }, + CreateAsyncIteratorFromClosure: { + url: 'https://262.ecma-international.org/16.0/#sec-createasynciteratorfromclosure' + }, + CreateBuiltinFunction: { + url: 'https://262.ecma-international.org/16.0/#sec-createbuiltinfunction' + }, + CreateByteDataBlock: { + url: 'https://262.ecma-international.org/16.0/#sec-createbytedatablock' + }, + CreateDataProperty: { + url: 'https://262.ecma-international.org/16.0/#sec-createdataproperty' + }, + CreateDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/16.0/#sec-createdatapropertyorthrow' + }, + CreateDefaultExportSyntheticModule: { + url: 'https://262.ecma-international.org/16.0/#sec-create-default-export-synthetic-module' + }, + CreateDynamicFunction: { + url: 'https://262.ecma-international.org/16.0/#sec-createdynamicfunction' + }, + CreateForInIterator: { + url: 'https://262.ecma-international.org/16.0/#sec-createforiniterator' + }, + CreateGlobalFunctionBinding: { + url: 'https://262.ecma-international.org/16.0/#sec-createglobalfunctionbinding' + }, + CreateGlobalVarBinding: { + url: 'https://262.ecma-international.org/16.0/#sec-createglobalvarbinding' + }, + CreateHTML: { + url: 'https://262.ecma-international.org/16.0/#sec-createhtml' + }, + CreateImportBinding: { + url: 'https://262.ecma-international.org/16.0/#sec-createimportbinding' + }, + CreateIntrinsics: { + url: 'https://262.ecma-international.org/16.0/#sec-createintrinsics' + }, + CreateIteratorFromClosure: { + url: 'https://262.ecma-international.org/16.0/#sec-createiteratorfromclosure' + }, + CreateIteratorResultObject: { + url: 'https://262.ecma-international.org/16.0/#sec-createiterresultobject' + }, + CreateListFromArrayLike: { + url: 'https://262.ecma-international.org/16.0/#sec-createlistfromarraylike' + }, + CreateListIteratorRecord: { + url: 'https://262.ecma-international.org/16.0/#sec-createlistiteratorRecord' + }, + CreateMapIterator: { + url: 'https://262.ecma-international.org/16.0/#sec-createmapiterator' + }, + CreateMappedArgumentsObject: { + url: 'https://262.ecma-international.org/16.0/#sec-createmappedargumentsobject' + }, + CreateNonEnumerableDataPropertyOrThrow: { + url: 'https://262.ecma-international.org/16.0/#sec-createnonenumerabledatapropertyorthrow' + }, + CreatePerIterationEnvironment: { + url: 'https://262.ecma-international.org/16.0/#sec-createperiterationenvironment' + }, + CreateRegExpStringIterator: { + url: 'https://262.ecma-international.org/16.0/#sec-createregexpstringiterator' + }, + CreateResolvingFunctions: { + url: 'https://262.ecma-international.org/16.0/#sec-createresolvingfunctions' + }, + CreateSetIterator: { + url: 'https://262.ecma-international.org/16.0/#sec-createsetiterator' + }, + CreateSharedByteDataBlock: { + url: 'https://262.ecma-international.org/16.0/#sec-createsharedbytedatablock' + }, + CreateUnmappedArgumentsObject: { + url: 'https://262.ecma-international.org/16.0/#sec-createunmappedargumentsobject' + }, + DateFromTime: { + url: 'https://262.ecma-international.org/16.0/#sec-datefromtime' + }, + DateString: { + url: 'https://262.ecma-international.org/16.0/#sec-datestring' + }, + Day: { + url: 'https://262.ecma-international.org/16.0/#sec-day' + }, + DayFromYear: { + url: 'https://262.ecma-international.org/16.0/#sec-dayfromyear' + }, + DaysInYear: { + url: 'https://262.ecma-international.org/16.0/#sec-daysinyear' + }, + DayWithinYear: { + url: 'https://262.ecma-international.org/16.0/#sec-daywithinyear' + }, + Decode: { + url: 'https://262.ecma-international.org/16.0/#sec-decode' + }, + DefineField: { + url: 'https://262.ecma-international.org/16.0/#sec-definefield' + }, + DefineMethodProperty: { + url: 'https://262.ecma-international.org/16.0/#sec-definemethodproperty' + }, + DefinePropertyOrThrow: { + url: 'https://262.ecma-international.org/16.0/#sec-definepropertyorthrow' + }, + DeletePropertyOrThrow: { + url: 'https://262.ecma-international.org/16.0/#sec-deletepropertyorthrow' + }, + DetachArrayBuffer: { + url: 'https://262.ecma-international.org/16.0/#sec-detacharraybuffer' + }, + DoWait: { + url: 'https://262.ecma-international.org/16.0/#sec-dowait' + }, + EmptyMatcher: { + url: 'https://262.ecma-international.org/16.0/#sec-emptymatcher' + }, + Encode: { + url: 'https://262.ecma-international.org/16.0/#sec-encode' + }, + EncodeForRegExpEscape: { + url: 'https://262.ecma-international.org/16.0/#sec-encodeforregexpescape' + }, + EnqueueAtomicsWaitAsyncTimeoutJob: { + url: 'https://262.ecma-international.org/16.0/#sec-enqueueatomicswaitasynctimeoutjob' + }, + EnqueueResolveInAgentJob: { + url: 'https://262.ecma-international.org/16.0/#sec-enqueueresolveinagentjob' + }, + EnterCriticalSection: { + url: 'https://262.ecma-international.org/16.0/#sec-entercriticalsection' + }, + EnumerableOwnProperties: { + url: 'https://262.ecma-international.org/16.0/#sec-enumerableownproperties' + }, + EnumerateObjectProperties: { + url: 'https://262.ecma-international.org/16.0/#sec-enumerate-object-properties' + }, + EscapeRegExpPattern: { + url: 'https://262.ecma-international.org/16.0/#sec-escaperegexppattern' + }, + EvalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/16.0/#sec-evaldeclarationinstantiation' + }, + EvaluateCall: { + url: 'https://262.ecma-international.org/16.0/#sec-evaluatecall' + }, + EvaluateImportCall: { + url: 'https://262.ecma-international.org/16.0/#sec-evaluate-import-call' + }, + EvaluateNew: { + url: 'https://262.ecma-international.org/16.0/#sec-evaluatenew' + }, + EvaluatePropertyAccessWithExpressionKey: { + url: 'https://262.ecma-international.org/16.0/#sec-evaluate-property-access-with-expression-key' + }, + EvaluatePropertyAccessWithIdentifierKey: { + url: 'https://262.ecma-international.org/16.0/#sec-evaluate-property-access-with-identifier-key' + }, + EvaluateStringOrNumericBinaryExpression: { + url: 'https://262.ecma-international.org/16.0/#sec-evaluatestringornumericbinaryexpression' + }, + EventSet: { + url: 'https://262.ecma-international.org/16.0/#sec-event-set' + }, + ExecuteAsyncModule: { + url: 'https://262.ecma-international.org/16.0/#sec-execute-async-module' + }, + '𝔽': { + url: 'https://262.ecma-international.org/16.0/#𝔽' + }, + FindViaPredicate: { + url: 'https://262.ecma-international.org/16.0/#sec-findviapredicate' + }, + FinishLoadingImportedModule: { + url: 'https://262.ecma-international.org/16.0/#sec-FinishLoadingImportedModule' + }, + FlattenIntoArray: { + url: 'https://262.ecma-international.org/16.0/#sec-flattenintoarray' + }, + floor: { + url: 'https://262.ecma-international.org/16.0/#eqn-floor' + }, + ForBodyEvaluation: { + url: 'https://262.ecma-international.org/16.0/#sec-forbodyevaluation' + }, + 'ForIn/OfBodyEvaluation': { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset' + }, + 'ForIn/OfHeadEvaluation': { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-forinofheadevaluation' + }, + FromPropertyDescriptor: { + url: 'https://262.ecma-international.org/16.0/#sec-frompropertydescriptor' + }, + FulfillPromise: { + url: 'https://262.ecma-international.org/16.0/#sec-fulfillpromise' + }, + FunctionDeclarationInstantiation: { + url: 'https://262.ecma-international.org/16.0/#sec-functiondeclarationinstantiation' + }, + GatherAvailableAncestors: { + url: 'https://262.ecma-international.org/16.0/#sec-gather-available-ancestors' + }, + GeneratorResume: { + url: 'https://262.ecma-international.org/16.0/#sec-generatorresume' + }, + GeneratorResumeAbrupt: { + url: 'https://262.ecma-international.org/16.0/#sec-generatorresumeabrupt' + }, + GeneratorStart: { + url: 'https://262.ecma-international.org/16.0/#sec-generatorstart' + }, + GeneratorValidate: { + url: 'https://262.ecma-international.org/16.0/#sec-generatorvalidate' + }, + GeneratorYield: { + url: 'https://262.ecma-international.org/16.0/#sec-generatoryield' + }, + Get: { + url: 'https://262.ecma-international.org/16.0/#sec-get-o-p' + }, + GetActiveScriptOrModule: { + url: 'https://262.ecma-international.org/16.0/#sec-getactivescriptormodule' + }, + GetArrayBufferMaxByteLengthOption: { + url: 'https://262.ecma-international.org/16.0/#sec-getarraybuffermaxbytelengthoption' + }, + GetFunctionRealm: { + url: 'https://262.ecma-international.org/16.0/#sec-getfunctionrealm' + }, + GetGeneratorKind: { + url: 'https://262.ecma-international.org/16.0/#sec-getgeneratorkind' + }, + GetGlobalObject: { + url: 'https://262.ecma-international.org/16.0/#sec-getglobalobject' + }, + GetIdentifierReference: { + url: 'https://262.ecma-international.org/16.0/#sec-getidentifierreference' + }, + GetImportedModule: { + url: 'https://262.ecma-international.org/16.0/#sec-GetImportedModule' + }, + GetIterator: { + url: 'https://262.ecma-international.org/16.0/#sec-getiterator' + }, + GetIteratorDirect: { + url: 'https://262.ecma-international.org/16.0/#sec-getiteratordirect' + }, + GetIteratorFlattenable: { + url: 'https://262.ecma-international.org/16.0/#sec-getiteratorflattenable' + }, + GetIteratorFromMethod: { + url: 'https://262.ecma-international.org/16.0/#sec-getiteratorfrommethod' + }, + GetMatchIndexPair: { + url: 'https://262.ecma-international.org/16.0/#sec-getmatchindexpair' + }, + GetMatchString: { + url: 'https://262.ecma-international.org/16.0/#sec-getmatchstring' + }, + GetMethod: { + url: 'https://262.ecma-international.org/16.0/#sec-getmethod' + }, + GetModifySetValueInBuffer: { + url: 'https://262.ecma-international.org/16.0/#sec-getmodifysetvalueinbuffer' + }, + GetModuleNamespace: { + url: 'https://262.ecma-international.org/16.0/#sec-getmodulenamespace' + }, + GetNamedTimeZoneEpochNanoseconds: { + url: 'https://262.ecma-international.org/16.0/#sec-getnamedtimezoneepochnanoseconds' + }, + GetNamedTimeZoneOffsetNanoseconds: { + url: 'https://262.ecma-international.org/16.0/#sec-getnamedtimezoneoffsetnanoseconds' + }, + GetNewTarget: { + url: 'https://262.ecma-international.org/16.0/#sec-getnewtarget' + }, + GetOwnPropertyKeys: { + url: 'https://262.ecma-international.org/16.0/#sec-getownpropertykeys' + }, + GetPromiseResolve: { + url: 'https://262.ecma-international.org/16.0/#sec-getpromiseresolve' + }, + GetPrototypeFromConstructor: { + url: 'https://262.ecma-international.org/16.0/#sec-getprototypefromconstructor' + }, + GetRawBytesFromSharedBlock: { + url: 'https://262.ecma-international.org/16.0/#sec-getrawbytesfromsharedblock' + }, + GetSetRecord: { + url: 'https://262.ecma-international.org/16.0/#sec-getsetrecord' + }, + GetStringIndex: { + url: 'https://262.ecma-international.org/16.0/#sec-getstringindex' + }, + GetSubstitution: { + url: 'https://262.ecma-international.org/16.0/#sec-getsubstitution' + }, + GetSuperBase: { + url: 'https://262.ecma-international.org/16.0/#sec-getsuperbase' + }, + GetSuperConstructor: { + url: 'https://262.ecma-international.org/16.0/#sec-getsuperconstructor' + }, + GetTemplateObject: { + url: 'https://262.ecma-international.org/16.0/#sec-gettemplateobject' + }, + GetThisEnvironment: { + url: 'https://262.ecma-international.org/16.0/#sec-getthisenvironment' + }, + GetThisValue: { + url: 'https://262.ecma-international.org/16.0/#sec-getthisvalue' + }, + GetUTCEpochNanoseconds: { + url: 'https://262.ecma-international.org/16.0/#sec-getutcepochnanoseconds' + }, + GetV: { + url: 'https://262.ecma-international.org/16.0/#sec-getv' + }, + GetValue: { + url: 'https://262.ecma-international.org/16.0/#sec-getvalue' + }, + GetValueFromBuffer: { + url: 'https://262.ecma-international.org/16.0/#sec-getvaluefrombuffer' + }, + GetViewByteLength: { + url: 'https://262.ecma-international.org/16.0/#sec-getviewbytelength' + }, + GetViewValue: { + url: 'https://262.ecma-international.org/16.0/#sec-getviewvalue' + }, + GetWaiterList: { + url: 'https://262.ecma-international.org/16.0/#sec-getwaiterlist' + }, + GlobalDeclarationInstantiation: { + url: 'https://262.ecma-international.org/16.0/#sec-globaldeclarationinstantiation' + }, + GroupBy: { + url: 'https://262.ecma-international.org/16.0/#sec-groupby' + }, + GroupSpecifiersThatMatch: { + url: 'https://262.ecma-international.org/16.0/#sec-groupspecifiersthatmatch' + }, + HasEitherUnicodeFlag: { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-haseitherunicodeflag-abstract-operation' + }, + HasLexicalDeclaration: { + url: 'https://262.ecma-international.org/16.0/#sec-haslexicaldeclaration' + }, + HasOwnProperty: { + url: 'https://262.ecma-international.org/16.0/#sec-hasownproperty' + }, + HasProperty: { + url: 'https://262.ecma-international.org/16.0/#sec-hasproperty' + }, + HasRestrictedGlobalProperty: { + url: 'https://262.ecma-international.org/16.0/#sec-hasrestrictedglobalproperty' + }, + HostEventSet: { + url: 'https://262.ecma-international.org/16.0/#sec-hosteventset' + }, + HourFromTime: { + url: 'https://262.ecma-international.org/16.0/#sec-hourfromtime' + }, + IfAbruptCloseIterator: { + url: 'https://262.ecma-international.org/16.0/#sec-ifabruptcloseiterator' + }, + IfAbruptRejectPromise: { + url: 'https://262.ecma-international.org/16.0/#sec-ifabruptrejectpromise' + }, + ImportedLocalNames: { + url: 'https://262.ecma-international.org/16.0/#sec-importedlocalnames' + }, + IncrementModuleAsyncEvaluationCount: { + url: 'https://262.ecma-international.org/16.0/#sec-IncrementModuleAsyncEvaluationCount' + }, + InitializeBoundName: { + url: 'https://262.ecma-international.org/16.0/#sec-initializeboundname' + }, + InitializeHostDefinedRealm: { + url: 'https://262.ecma-international.org/16.0/#sec-initializehostdefinedrealm' + }, + InitializeInstanceElements: { + url: 'https://262.ecma-international.org/16.0/#sec-initializeinstanceelements' + }, + InitializeReferencedBinding: { + url: 'https://262.ecma-international.org/16.0/#sec-initializereferencedbinding' + }, + InitializeTypedArrayFromArrayBuffer: { + url: 'https://262.ecma-international.org/16.0/#sec-initializetypedarrayfromarraybuffer' + }, + InitializeTypedArrayFromArrayLike: { + url: 'https://262.ecma-international.org/16.0/#sec-initializetypedarrayfromarraylike' + }, + InitializeTypedArrayFromList: { + url: 'https://262.ecma-international.org/16.0/#sec-initializetypedarrayfromlist' + }, + InitializeTypedArrayFromTypedArray: { + url: 'https://262.ecma-international.org/16.0/#sec-initializetypedarrayfromtypedarray' + }, + InLeapYear: { + url: 'https://262.ecma-international.org/16.0/#sec-inleapyear' + }, + InnerModuleEvaluation: { + url: 'https://262.ecma-international.org/16.0/#sec-innermoduleevaluation' + }, + InnerModuleLinking: { + url: 'https://262.ecma-international.org/16.0/#sec-InnerModuleLinking' + }, + InnerModuleLoading: { + url: 'https://262.ecma-international.org/16.0/#sec-InnerModuleLoading' + }, + InstallErrorCause: { + url: 'https://262.ecma-international.org/16.0/#sec-installerrorcause' + }, + InstanceofOperator: { + url: 'https://262.ecma-international.org/16.0/#sec-instanceofoperator' + }, + InternalizeJSONProperty: { + url: 'https://262.ecma-international.org/16.0/#sec-internalizejsonproperty' + }, + Invoke: { + url: 'https://262.ecma-international.org/16.0/#sec-invoke' + }, + IsAccessorDescriptor: { + url: 'https://262.ecma-international.org/16.0/#sec-isaccessordescriptor' + }, + IsAnonymousFunctionDefinition: { + url: 'https://262.ecma-international.org/16.0/#sec-isanonymousfunctiondefinition' + }, + IsArray: { + url: 'https://262.ecma-international.org/16.0/#sec-isarray' + }, + IsArrayBufferViewOutOfBounds: { + url: 'https://262.ecma-international.org/16.0/#sec-isarraybufferviewoutofbounds' + }, + IsBigIntElementType: { + url: 'https://262.ecma-international.org/16.0/#sec-isbigintelementtype' + }, + IsCallable: { + url: 'https://262.ecma-international.org/16.0/#sec-iscallable' + }, + IsCompatiblePropertyDescriptor: { + url: 'https://262.ecma-international.org/16.0/#sec-iscompatiblepropertydescriptor' + }, + IsConcatSpreadable: { + url: 'https://262.ecma-international.org/16.0/#sec-isconcatspreadable' + }, + IsConstructor: { + url: 'https://262.ecma-international.org/16.0/#sec-isconstructor' + }, + IsDataDescriptor: { + url: 'https://262.ecma-international.org/16.0/#sec-isdatadescriptor' + }, + IsDetachedBuffer: { + url: 'https://262.ecma-international.org/16.0/#sec-isdetachedbuffer' + }, + IsExtensible: { + url: 'https://262.ecma-international.org/16.0/#sec-isextensible-o' + }, + IsFixedLengthArrayBuffer: { + url: 'https://262.ecma-international.org/16.0/#sec-isfixedlengtharraybuffer' + }, + IsGenericDescriptor: { + url: 'https://262.ecma-international.org/16.0/#sec-isgenericdescriptor' + }, + IsInTailPosition: { + url: 'https://262.ecma-international.org/16.0/#sec-isintailposition' + }, + IsLabelledFunction: { + url: 'https://262.ecma-international.org/16.0/#sec-islabelledfunction' + }, + IsLessThan: { + url: 'https://262.ecma-international.org/16.0/#sec-islessthan' + }, + IsLooselyEqual: { + url: 'https://262.ecma-international.org/16.0/#sec-islooselyequal' + }, + IsNoTearConfiguration: { + url: 'https://262.ecma-international.org/16.0/#sec-isnotearconfiguration' + }, + IsPrivateReference: { + url: 'https://262.ecma-international.org/16.0/#sec-isprivatereference' + }, + IsPromise: { + url: 'https://262.ecma-international.org/16.0/#sec-ispromise' + }, + IsPropertyReference: { + url: 'https://262.ecma-international.org/16.0/#sec-ispropertyreference' + }, + IsRegExp: { + url: 'https://262.ecma-international.org/16.0/#sec-isregexp' + }, + IsSharedArrayBuffer: { + url: 'https://262.ecma-international.org/16.0/#sec-issharedarraybuffer' + }, + IsStrict: { + url: 'https://262.ecma-international.org/16.0/#sec-isstrict' + }, + IsStrictlyEqual: { + url: 'https://262.ecma-international.org/16.0/#sec-isstrictlyequal' + }, + IsStringWellFormedUnicode: { + url: 'https://262.ecma-international.org/16.0/#sec-isstringwellformedunicode' + }, + IsSuperReference: { + url: 'https://262.ecma-international.org/16.0/#sec-issuperreference' + }, + IsTimeZoneOffsetString: { + url: 'https://262.ecma-international.org/16.0/#sec-istimezoneoffsetstring' + }, + IsTypedArrayFixedLength: { + url: 'https://262.ecma-international.org/16.0/#sec-istypedarrayfixedlength' + }, + IsTypedArrayOutOfBounds: { + url: 'https://262.ecma-international.org/16.0/#sec-istypedarrayoutofbounds' + }, + IsUnclampedIntegerElementType: { + url: 'https://262.ecma-international.org/16.0/#sec-isunclampedintegerelementtype' + }, + IsUnresolvableReference: { + url: 'https://262.ecma-international.org/16.0/#sec-isunresolvablereference' + }, + IsUnsignedElementType: { + url: 'https://262.ecma-international.org/16.0/#sec-isunsignedelementtype' + }, + IsValidIntegerIndex: { + url: 'https://262.ecma-international.org/16.0/#sec-isvalidintegerindex' + }, + IsValidRegularExpressionLiteral: { + url: 'https://262.ecma-international.org/16.0/#sec-isvalidregularexpressionliteral' + }, + IsViewOutOfBounds: { + url: 'https://262.ecma-international.org/16.0/#sec-isviewoutofbounds' + }, + IsWordChar: { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-iswordchar-abstract-operation' + }, + IteratorClose: { + url: 'https://262.ecma-international.org/16.0/#sec-iteratorclose' + }, + IteratorComplete: { + url: 'https://262.ecma-international.org/16.0/#sec-iteratorcomplete' + }, + IteratorNext: { + url: 'https://262.ecma-international.org/16.0/#sec-iteratornext' + }, + IteratorStep: { + url: 'https://262.ecma-international.org/16.0/#sec-iteratorstep' + }, + IteratorStepValue: { + url: 'https://262.ecma-international.org/16.0/#sec-iteratorstepvalue' + }, + IteratorToList: { + url: 'https://262.ecma-international.org/16.0/#sec-iteratortolist' + }, + IteratorValue: { + url: 'https://262.ecma-international.org/16.0/#sec-iteratorvalue' + }, + KeyForSymbol: { + url: 'https://262.ecma-international.org/16.0/#sec-keyforsymbol' + }, + LeaveCriticalSection: { + url: 'https://262.ecma-international.org/16.0/#sec-leavecriticalsection' + }, + LengthOfArrayLike: { + url: 'https://262.ecma-international.org/16.0/#sec-lengthofarraylike' + }, + LocalTime: { + url: 'https://262.ecma-international.org/16.0/#sec-localtime' + }, + LoopContinues: { + url: 'https://262.ecma-international.org/16.0/#sec-loopcontinues' + }, + MakeArgGetter: { + url: 'https://262.ecma-international.org/16.0/#sec-makearggetter' + }, + MakeArgSetter: { + url: 'https://262.ecma-international.org/16.0/#sec-makeargsetter' + }, + MakeBasicObject: { + url: 'https://262.ecma-international.org/16.0/#sec-makebasicobject' + }, + MakeClassConstructor: { + url: 'https://262.ecma-international.org/16.0/#sec-makeclassconstructor' + }, + MakeConstructor: { + url: 'https://262.ecma-international.org/16.0/#sec-makeconstructor' + }, + MakeDataViewWithBufferWitnessRecord: { + url: 'https://262.ecma-international.org/16.0/#sec-makedataviewwithbufferwitnessrecord' + }, + MakeDate: { + url: 'https://262.ecma-international.org/16.0/#sec-makedate' + }, + MakeDay: { + url: 'https://262.ecma-international.org/16.0/#sec-makeday' + }, + MakeFullYear: { + url: 'https://262.ecma-international.org/16.0/#sec-makefullyear' + }, + MakeMatchIndicesIndexPairArray: { + url: 'https://262.ecma-international.org/16.0/#sec-makematchindicesindexpairarray' + }, + MakeMethod: { + url: 'https://262.ecma-international.org/16.0/#sec-makemethod' + }, + MakePrivateReference: { + url: 'https://262.ecma-international.org/16.0/#sec-makeprivatereference' + }, + MakeSuperPropertyReference: { + url: 'https://262.ecma-international.org/16.0/#sec-makesuperpropertyreference' + }, + MakeTime: { + url: 'https://262.ecma-international.org/16.0/#sec-maketime' + }, + MakeTypedArrayWithBufferWitnessRecord: { + url: 'https://262.ecma-international.org/16.0/#sec-maketypedarraywithbufferwitnessrecord' + }, + MatchSequence: { + url: 'https://262.ecma-international.org/16.0/#sec-matchsequence' + }, + MatchTwoAlternatives: { + url: 'https://262.ecma-international.org/16.0/#sec-matchtwoalternatives' + }, + max: { + url: 'https://262.ecma-international.org/16.0/#eqn-max' + }, + MaybeSimpleCaseFolding: { + url: 'https://262.ecma-international.org/16.0/#sec-maybesimplecasefolding' + }, + MightBothParticipate: { + url: 'https://262.ecma-international.org/16.0/#sec-mightbothparticipate' + }, + min: { + url: 'https://262.ecma-international.org/16.0/#eqn-min' + }, + MinFromTime: { + url: 'https://262.ecma-international.org/16.0/#sec-minfromtime' + }, + ModuleNamespaceCreate: { + url: 'https://262.ecma-international.org/16.0/#sec-modulenamespacecreate' + }, + ModuleRequestsEqual: { + url: 'https://262.ecma-international.org/16.0/#sec-ModuleRequestsEqual' + }, + modulo: { + url: 'https://262.ecma-international.org/16.0/#eqn-modulo' + }, + MonthFromTime: { + url: 'https://262.ecma-international.org/16.0/#sec-monthfromtime' + }, + msFromTime: { + url: 'https://262.ecma-international.org/16.0/#sec-msfromtime' + }, + NewDeclarativeEnvironment: { + url: 'https://262.ecma-international.org/16.0/#sec-newdeclarativeenvironment' + }, + NewFunctionEnvironment: { + url: 'https://262.ecma-international.org/16.0/#sec-newfunctionenvironment' + }, + NewGlobalEnvironment: { + url: 'https://262.ecma-international.org/16.0/#sec-newglobalenvironment' + }, + NewModuleEnvironment: { + url: 'https://262.ecma-international.org/16.0/#sec-newmoduleenvironment' + }, + NewObjectEnvironment: { + url: 'https://262.ecma-international.org/16.0/#sec-newobjectenvironment' + }, + NewPrivateEnvironment: { + url: 'https://262.ecma-international.org/16.0/#sec-newprivateenvironment' + }, + NewPromiseCapability: { + url: 'https://262.ecma-international.org/16.0/#sec-newpromisecapability' + }, + NewPromiseReactionJob: { + url: 'https://262.ecma-international.org/16.0/#sec-newpromisereactionjob' + }, + NewPromiseResolveThenableJob: { + url: 'https://262.ecma-international.org/16.0/#sec-newpromiseresolvethenablejob' + }, + NormalCompletion: { + url: 'https://262.ecma-international.org/16.0/#sec-normalcompletion' + }, + NotifyWaiter: { + url: 'https://262.ecma-international.org/16.0/#sec-notifywaiter' + }, + 'Number::add': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-add' + }, + 'Number::bitwiseAND': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-bitwiseAND' + }, + 'Number::bitwiseNOT': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-bitwiseNOT' + }, + 'Number::bitwiseOR': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-bitwiseOR' + }, + 'Number::bitwiseXOR': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-bitwiseXOR' + }, + 'Number::divide': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-divide' + }, + 'Number::equal': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-equal' + }, + 'Number::exponentiate': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-exponentiate' + }, + 'Number::leftShift': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-leftShift' + }, + 'Number::lessThan': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-lessThan' + }, + 'Number::multiply': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-multiply' + }, + 'Number::remainder': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-remainder' + }, + 'Number::sameValue': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-sameValue' + }, + 'Number::sameValueZero': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-sameValueZero' + }, + 'Number::signedRightShift': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-signedRightShift' + }, + 'Number::subtract': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-subtract' + }, + 'Number::toString': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-tostring' + }, + 'Number::unaryMinus': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-unaryMinus' + }, + 'Number::unsignedRightShift': { + url: 'https://262.ecma-international.org/16.0/#sec-numeric-types-number-unsignedRightShift' + }, + NumberBitwiseOp: { + url: 'https://262.ecma-international.org/16.0/#sec-numberbitwiseop' + }, + NumberToBigInt: { + url: 'https://262.ecma-international.org/16.0/#sec-numbertobigint' + }, + NumericToRawBytes: { + url: 'https://262.ecma-international.org/16.0/#sec-numerictorawbytes' + }, + ObjectDefineProperties: { + url: 'https://262.ecma-international.org/16.0/#sec-objectdefineproperties' + }, + OrdinaryCallBindThis: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinarycallbindthis' + }, + OrdinaryCallEvaluateBody: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinarycallevaluatebody' + }, + OrdinaryCreateFromConstructor: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinarycreatefromconstructor' + }, + OrdinaryDefineOwnProperty: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinarydefineownproperty' + }, + OrdinaryDelete: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinarydelete' + }, + OrdinaryFunctionCreate: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinaryfunctioncreate' + }, + OrdinaryGet: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinaryget' + }, + OrdinaryGetOwnProperty: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinarygetownproperty' + }, + OrdinaryGetPrototypeOf: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinarygetprototypeof' + }, + OrdinaryHasInstance: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinaryhasinstance' + }, + OrdinaryHasProperty: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinaryhasproperty' + }, + OrdinaryIsExtensible: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinaryisextensible' + }, + OrdinaryObjectCreate: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinaryobjectcreate' + }, + OrdinaryOwnPropertyKeys: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinaryownpropertykeys' + }, + OrdinaryPreventExtensions: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinarypreventextensions' + }, + OrdinarySet: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinaryset' + }, + OrdinarySetPrototypeOf: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinarysetprototypeof' + }, + OrdinarySetWithOwnDescriptor: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinarysetwithowndescriptor' + }, + OrdinaryToPrimitive: { + url: 'https://262.ecma-international.org/16.0/#sec-ordinarytoprimitive' + }, + ParseHexOctet: { + url: 'https://262.ecma-international.org/16.0/#sec-parsehexoctet' + }, + ParseJSON: { + url: 'https://262.ecma-international.org/16.0/#sec-ParseJSON' + }, + ParseJSONModule: { + url: 'https://262.ecma-international.org/16.0/#sec-parse-json-module' + }, + ParseModule: { + url: 'https://262.ecma-international.org/16.0/#sec-parsemodule' + }, + ParsePattern: { + url: 'https://262.ecma-international.org/16.0/#sec-parsepattern' + }, + ParseScript: { + url: 'https://262.ecma-international.org/16.0/#sec-parse-script' + }, + ParseText: { + url: 'https://262.ecma-international.org/16.0/#sec-parsetext' + }, + ParseTimeZoneOffsetString: { + url: 'https://262.ecma-international.org/16.0/#sec-parsetimezoneoffsetstring' + }, + PerformEval: { + url: 'https://262.ecma-international.org/16.0/#sec-performeval' + }, + PerformPromiseAll: { + url: 'https://262.ecma-international.org/16.0/#sec-performpromiseall' + }, + PerformPromiseAllSettled: { + url: 'https://262.ecma-international.org/16.0/#sec-performpromiseallsettled' + }, + PerformPromiseAny: { + url: 'https://262.ecma-international.org/16.0/#sec-performpromiseany' + }, + PerformPromiseRace: { + url: 'https://262.ecma-international.org/16.0/#sec-performpromiserace' + }, + PerformPromiseThen: { + url: 'https://262.ecma-international.org/16.0/#sec-performpromisethen' + }, + PrepareForOrdinaryCall: { + url: 'https://262.ecma-international.org/16.0/#sec-prepareforordinarycall' + }, + PrepareForTailCall: { + url: 'https://262.ecma-international.org/16.0/#sec-preparefortailcall' + }, + PrivateElementFind: { + url: 'https://262.ecma-international.org/16.0/#sec-privateelementfind' + }, + PrivateFieldAdd: { + url: 'https://262.ecma-international.org/16.0/#sec-privatefieldadd' + }, + PrivateGet: { + url: 'https://262.ecma-international.org/16.0/#sec-privateget' + }, + PrivateMethodOrAccessorAdd: { + url: 'https://262.ecma-international.org/16.0/#sec-privatemethodoraccessoradd' + }, + PrivateSet: { + url: 'https://262.ecma-international.org/16.0/#sec-privateset' + }, + PromiseResolve: { + url: 'https://262.ecma-international.org/16.0/#sec-promise-resolve' + }, + ProxyCreate: { + url: 'https://262.ecma-international.org/16.0/#sec-proxycreate' + }, + PutValue: { + url: 'https://262.ecma-international.org/16.0/#sec-putvalue' + }, + QuoteJSONString: { + url: 'https://262.ecma-international.org/16.0/#sec-quotejsonstring' + }, + ℝ: { + url: 'https://262.ecma-international.org/16.0/#ℝ' + }, + RawBytesToNumeric: { + url: 'https://262.ecma-international.org/16.0/#sec-rawbytestonumeric' + }, + 'reads-bytes-from': { + url: 'https://262.ecma-international.org/16.0/#sec-reads-bytes-from' + }, + RegExpAlloc: { + url: 'https://262.ecma-international.org/16.0/#sec-regexpalloc' + }, + RegExpBuiltinExec: { + url: 'https://262.ecma-international.org/16.0/#sec-regexpbuiltinexec' + }, + RegExpCreate: { + url: 'https://262.ecma-international.org/16.0/#sec-regexpcreate' + }, + RegExpExec: { + url: 'https://262.ecma-international.org/16.0/#sec-regexpexec' + }, + RegExpHasFlag: { + url: 'https://262.ecma-international.org/16.0/#sec-regexphasflag' + }, + RegExpInitialize: { + url: 'https://262.ecma-international.org/16.0/#sec-regexpinitialize' + }, + RejectPromise: { + url: 'https://262.ecma-international.org/16.0/#sec-rejectpromise' + }, + RemoveWaiter: { + url: 'https://262.ecma-international.org/16.0/#sec-removewaiter' + }, + RemoveWaiters: { + url: 'https://262.ecma-international.org/16.0/#sec-removewaiters' + }, + RepeatMatcher: { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-repeatmatcher-abstract-operation' + }, + RequireInternalSlot: { + url: 'https://262.ecma-international.org/16.0/#sec-requireinternalslot' + }, + RequireObjectCoercible: { + url: 'https://262.ecma-international.org/16.0/#sec-requireobjectcoercible' + }, + ResolveBinding: { + url: 'https://262.ecma-international.org/16.0/#sec-resolvebinding' + }, + ResolvePrivateIdentifier: { + url: 'https://262.ecma-international.org/16.0/#sec-resolve-private-identifier' + }, + ResolveThisBinding: { + url: 'https://262.ecma-international.org/16.0/#sec-resolvethisbinding' + }, + ReturnCompletion: { + url: 'https://262.ecma-international.org/16.0/#sec-returncompletion' + }, + ReturnIfAbrupt: { + url: 'https://262.ecma-international.org/16.0/#sec-returnifabrupt' + }, + RevalidateAtomicAccess: { + url: 'https://262.ecma-international.org/16.0/#sec-revalidateatomicaccess' + }, + RoundMVResult: { + url: 'https://262.ecma-international.org/16.0/#sec-roundmvresult' + }, + SameType: { + url: 'https://262.ecma-international.org/16.0/#sec-sametype' + }, + SameValue: { + url: 'https://262.ecma-international.org/16.0/#sec-samevalue' + }, + SameValueNonNumber: { + url: 'https://262.ecma-international.org/16.0/#sec-samevaluenonnumber' + }, + SameValueZero: { + url: 'https://262.ecma-international.org/16.0/#sec-samevaluezero' + }, + scf: { + url: 'https://262.ecma-international.org/16.0/#eqn-scf' + }, + ScriptEvaluation: { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-scriptevaluation' + }, + SecFromTime: { + url: 'https://262.ecma-international.org/16.0/#sec-secfromtime' + }, + SerializeJSONArray: { + url: 'https://262.ecma-international.org/16.0/#sec-serializejsonarray' + }, + SerializeJSONObject: { + url: 'https://262.ecma-international.org/16.0/#sec-serializejsonobject' + }, + SerializeJSONProperty: { + url: 'https://262.ecma-international.org/16.0/#sec-serializejsonproperty' + }, + Set: { + url: 'https://262.ecma-international.org/16.0/#sec-set-o-p-v-throw' + }, + SetDataHas: { + url: 'https://262.ecma-international.org/16.0/#sec-setdatahas' + }, + SetDataIndex: { + url: 'https://262.ecma-international.org/16.0/#sec-setdataindex' + }, + SetDataSize: { + url: 'https://262.ecma-international.org/16.0/#sec-setdatasize' + }, + SetDefaultGlobalBindings: { + url: 'https://262.ecma-international.org/16.0/#sec-setdefaultglobalbindings' + }, + SetFunctionLength: { + url: 'https://262.ecma-international.org/16.0/#sec-setfunctionlength' + }, + SetFunctionName: { + url: 'https://262.ecma-international.org/16.0/#sec-setfunctionname' + }, + SetImmutablePrototype: { + url: 'https://262.ecma-international.org/16.0/#sec-set-immutable-prototype' + }, + SetIntegrityLevel: { + url: 'https://262.ecma-international.org/16.0/#sec-setintegritylevel' + }, + SetSyntheticModuleExport: { + url: 'https://262.ecma-international.org/16.0/#sec-setsyntheticmoduleexport' + }, + SetterThatIgnoresPrototypeProperties: { + url: 'https://262.ecma-international.org/16.0/#sec-SetterThatIgnoresPrototypeProperties' + }, + SetTypedArrayFromArrayLike: { + url: 'https://262.ecma-international.org/16.0/#sec-settypedarrayfromarraylike' + }, + SetTypedArrayFromTypedArray: { + url: 'https://262.ecma-international.org/16.0/#sec-settypedarrayfromtypedarray' + }, + SetValueInBuffer: { + url: 'https://262.ecma-international.org/16.0/#sec-setvalueinbuffer' + }, + SetViewValue: { + url: 'https://262.ecma-international.org/16.0/#sec-setviewvalue' + }, + SharedDataBlockEventSet: { + url: 'https://262.ecma-international.org/16.0/#sec-sharedatablockeventset' + }, + SortIndexedProperties: { + url: 'https://262.ecma-international.org/16.0/#sec-sortindexedproperties' + }, + SpeciesConstructor: { + url: 'https://262.ecma-international.org/16.0/#sec-speciesconstructor' + }, + StringCreate: { + url: 'https://262.ecma-international.org/16.0/#sec-stringcreate' + }, + StringGetOwnProperty: { + url: 'https://262.ecma-international.org/16.0/#sec-stringgetownproperty' + }, + StringIndexOf: { + url: 'https://262.ecma-international.org/16.0/#sec-stringindexof' + }, + StringLastIndexOf: { + url: 'https://262.ecma-international.org/16.0/#sec-stringlastindexof' + }, + StringPad: { + url: 'https://262.ecma-international.org/16.0/#sec-stringpad' + }, + StringPaddingBuiltinsImpl: { + url: 'https://262.ecma-international.org/16.0/#sec-stringpaddingbuiltinsimpl' + }, + StringToBigInt: { + url: 'https://262.ecma-international.org/16.0/#sec-stringtobigint' + }, + StringToCodePoints: { + url: 'https://262.ecma-international.org/16.0/#sec-stringtocodepoints' + }, + StringToNumber: { + url: 'https://262.ecma-international.org/16.0/#sec-stringtonumber' + }, + substring: { + url: 'https://262.ecma-international.org/16.0/#substring' + }, + SuspendThisAgent: { + url: 'https://262.ecma-international.org/16.0/#sec-suspendthisagent' + }, + SymbolDescriptiveString: { + url: 'https://262.ecma-international.org/16.0/#sec-symboldescriptivestring' + }, + SystemTimeZoneIdentifier: { + url: 'https://262.ecma-international.org/16.0/#sec-systemtimezoneidentifier' + }, + TemplateString: { + url: 'https://262.ecma-international.org/16.0/#sec-templatestring' + }, + TestIntegrityLevel: { + url: 'https://262.ecma-international.org/16.0/#sec-testintegritylevel' + }, + ThisBigIntValue: { + url: 'https://262.ecma-international.org/16.0/#sec-thisbigintvalue' + }, + ThisBooleanValue: { + url: 'https://262.ecma-international.org/16.0/#sec-thisbooleanvalue' + }, + ThisNumberValue: { + url: 'https://262.ecma-international.org/16.0/#sec-thisnumbervalue' + }, + ThisStringValue: { + url: 'https://262.ecma-international.org/16.0/#sec-thisstringvalue' + }, + ThisSymbolValue: { + url: 'https://262.ecma-international.org/16.0/#sec-thissymbolvalue' + }, + ThrowCompletion: { + url: 'https://262.ecma-international.org/16.0/#sec-throwcompletion' + }, + TimeClip: { + url: 'https://262.ecma-international.org/16.0/#sec-timeclip' + }, + TimeFromYear: { + url: 'https://262.ecma-international.org/16.0/#sec-timefromyear' + }, + TimeString: { + url: 'https://262.ecma-international.org/16.0/#sec-timestring' + }, + TimeWithinDay: { + url: 'https://262.ecma-international.org/16.0/#sec-timewithinday' + }, + TimeZoneString: { + url: 'https://262.ecma-international.org/16.0/#sec-timezoneestring' + }, + ToBigInt: { + url: 'https://262.ecma-international.org/16.0/#sec-tobigint' + }, + ToBigInt64: { + url: 'https://262.ecma-international.org/16.0/#sec-tobigint64' + }, + ToBigUint64: { + url: 'https://262.ecma-international.org/16.0/#sec-tobiguint64' + }, + ToBoolean: { + url: 'https://262.ecma-international.org/16.0/#sec-toboolean' + }, + ToDateString: { + url: 'https://262.ecma-international.org/16.0/#sec-todatestring' + }, + ToIndex: { + url: 'https://262.ecma-international.org/16.0/#sec-toindex' + }, + ToInt16: { + url: 'https://262.ecma-international.org/16.0/#sec-toint16' + }, + ToInt32: { + url: 'https://262.ecma-international.org/16.0/#sec-toint32' + }, + ToInt8: { + url: 'https://262.ecma-international.org/16.0/#sec-toint8' + }, + ToIntegerOrInfinity: { + url: 'https://262.ecma-international.org/16.0/#sec-tointegerorinfinity' + }, + ToLength: { + url: 'https://262.ecma-international.org/16.0/#sec-tolength' + }, + ToNumber: { + url: 'https://262.ecma-international.org/16.0/#sec-tonumber' + }, + ToNumeric: { + url: 'https://262.ecma-international.org/16.0/#sec-tonumeric' + }, + ToObject: { + url: 'https://262.ecma-international.org/16.0/#sec-toobject' + }, + ToPrimitive: { + url: 'https://262.ecma-international.org/16.0/#sec-toprimitive' + }, + ToPropertyDescriptor: { + url: 'https://262.ecma-international.org/16.0/#sec-topropertydescriptor' + }, + ToPropertyKey: { + url: 'https://262.ecma-international.org/16.0/#sec-topropertykey' + }, + ToString: { + url: 'https://262.ecma-international.org/16.0/#sec-tostring' + }, + ToUint16: { + url: 'https://262.ecma-international.org/16.0/#sec-touint16' + }, + ToUint32: { + url: 'https://262.ecma-international.org/16.0/#sec-touint32' + }, + ToUint8: { + url: 'https://262.ecma-international.org/16.0/#sec-touint8' + }, + ToUint8Clamp: { + url: 'https://262.ecma-international.org/16.0/#sec-touint8clamp' + }, + ToZeroPaddedDecimalString: { + url: 'https://262.ecma-international.org/16.0/#sec-tozeropaddeddecimalstring' + }, + TriggerPromiseReactions: { + url: 'https://262.ecma-international.org/16.0/#sec-triggerpromisereactions' + }, + TrimString: { + url: 'https://262.ecma-international.org/16.0/#sec-trimstring' + }, + truncate: { + url: 'https://262.ecma-international.org/16.0/#eqn-truncate' + }, + TypedArrayByteLength: { + url: 'https://262.ecma-international.org/16.0/#sec-typedarraybytelength' + }, + TypedArrayCreate: { + url: 'https://262.ecma-international.org/16.0/#sec-typedarraycreate' + }, + TypedArrayCreateFromConstructor: { + url: 'https://262.ecma-international.org/16.0/#sec-typedarraycreatefromconstructor' + }, + TypedArrayCreateSameType: { + url: 'https://262.ecma-international.org/16.0/#sec-typedarray-create-same-type' + }, + TypedArrayElementSize: { + url: 'https://262.ecma-international.org/16.0/#sec-typedarrayelementsize' + }, + TypedArrayElementType: { + url: 'https://262.ecma-international.org/16.0/#sec-typedarrayelementtype' + }, + TypedArrayGetElement: { + url: 'https://262.ecma-international.org/16.0/#sec-typedarraygetelement' + }, + TypedArrayLength: { + url: 'https://262.ecma-international.org/16.0/#sec-typedarraylength' + }, + TypedArraySetElement: { + url: 'https://262.ecma-international.org/16.0/#sec-typedarraysetelement' + }, + TypedArraySpeciesCreate: { + url: 'https://262.ecma-international.org/16.0/#typedarray-species-create' + }, + UnicodeEscape: { + url: 'https://262.ecma-international.org/16.0/#sec-unicodeescape' + }, + UnicodeMatchProperty: { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-unicodematchproperty-p' + }, + UnicodeMatchPropertyValue: { + url: 'https://262.ecma-international.org/16.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v' + }, + UpdateEmpty: { + url: 'https://262.ecma-international.org/16.0/#sec-updateempty' + }, + UpdateModifiers: { + url: 'https://262.ecma-international.org/16.0/#sec-updatemodifiers' + }, + UTC: { + url: 'https://262.ecma-international.org/16.0/#sec-utc-t' + }, + UTF16EncodeCodePoint: { + url: 'https://262.ecma-international.org/16.0/#sec-utf16encodecodepoint' + }, + UTF16SurrogatePairToCodePoint: { + url: 'https://262.ecma-international.org/16.0/#sec-utf16decodesurrogatepair' + }, + ValidateAndApplyPropertyDescriptor: { + url: 'https://262.ecma-international.org/16.0/#sec-validateandapplypropertydescriptor' + }, + ValidateAtomicAccess: { + url: 'https://262.ecma-international.org/16.0/#sec-validateatomicaccess' + }, + ValidateAtomicAccessOnIntegerTypedArray: { + url: 'https://262.ecma-international.org/16.0/#sec-validateatomicaccessonintegertypedarray' + }, + ValidateIntegerTypedArray: { + url: 'https://262.ecma-international.org/16.0/#sec-validateintegertypedarray' + }, + ValidateNonRevokedProxy: { + url: 'https://262.ecma-international.org/16.0/#sec-validatenonrevokedproxy' + }, + ValidateTypedArray: { + url: 'https://262.ecma-international.org/16.0/#sec-validatetypedarray' + }, + ValueOfReadEvent: { + url: 'https://262.ecma-international.org/16.0/#sec-valueofreadevent' + }, + WeakRefDeref: { + url: 'https://262.ecma-international.org/16.0/#sec-weakrefderef' + }, + WeekDay: { + url: 'https://262.ecma-international.org/16.0/#sec-weekday' + }, + WordCharacters: { + url: 'https://262.ecma-international.org/16.0/#sec-wordcharacters' + }, + YearFromTime: { + url: 'https://262.ecma-international.org/16.0/#sec-yearfromtime' + }, + Yield: { + url: 'https://262.ecma-international.org/16.0/#sec-yield' + }, + ℤ: { + url: 'https://262.ecma-international.org/16.0/#ℤ' + } +}; diff --git a/node_modules/es-abstract/operations/es5.js b/node_modules/es-abstract/operations/es5.js new file mode 100644 index 0000000000000000000000000000000000000000..614a1ddf3d23ba3c665745ee926793a5289755c2 --- /dev/null +++ b/node_modules/es-abstract/operations/es5.js @@ -0,0 +1,50 @@ +'use strict'; + +module.exports = { + 'Abstract Equality Comparison': 'https://262.ecma-international.org/5.1/#sec-11.9.3', + 'Abstract Relational Comparison': 'https://262.ecma-international.org/5.1/#sec-11.8.5', + 'Strict Equality Comparison': 'https://262.ecma-international.org/5.1/#sec-11.9.6', + abs: 'http://262.ecma-international.org/5.1/#sec-5.2', + Canonicalize: 'https://262.ecma-international.org/5.1/#sec-15.10.2.8', + CheckObjectCoercible: 'https://262.ecma-international.org/5.1/#sec-9.10', + DateFromTime: 'https://262.ecma-international.org/5.1/#sec-15.9.1.5', + Day: 'https://262.ecma-international.org/5.1/#sec-15.9.1.2', + DayFromYear: 'https://262.ecma-international.org/5.1/#sec-15.9.1.3', + DaysInYear: 'https://262.ecma-international.org/5.1/#sec-15.9.1.3', + DayWithinYear: 'https://262.ecma-international.org/5.1/#sec-15.9.1.4', + floor: 'http://262.ecma-international.org/5.1/#sec-5.2', + FromPropertyDescriptor: 'https://262.ecma-international.org/5.1/#sec-8.10.4', + HourFromTime: 'https://262.ecma-international.org/5.1/#sec-15.9.1.10', + InLeapYear: 'https://262.ecma-international.org/5.1/#sec-15.9.1.3', + IsAccessorDescriptor: 'https://262.ecma-international.org/5.1/#sec-8.10.1', + IsCallable: 'https://262.ecma-international.org/5.1/#sec-9.11', + IsDataDescriptor: 'https://262.ecma-international.org/5.1/#sec-8.10.2', + IsGenericDescriptor: 'https://262.ecma-international.org/5.1/#sec-8.10.3', + IsPropertyDescriptor: 'https://262.ecma-international.org/5.1/#sec-8.10', + MakeDate: 'https://262.ecma-international.org/5.1/#sec-15.9.1.13', + MakeDay: 'https://262.ecma-international.org/5.1/#sec-15.9.1.12', + MakeTime: 'https://262.ecma-international.org/5.1/#sec-15.9.1.11', + MinFromTime: 'https://262.ecma-international.org/5.1/#sec-15.9.1.10', + modulo: 'https://262.ecma-international.org/5.1/#sec-5.2', + MonthFromTime: 'https://262.ecma-international.org/5.1/#sec-15.9.1.4', + msFromTime: 'https://262.ecma-international.org/5.1/#sec-15.9.1.10', + SameValue: 'https://262.ecma-international.org/5.1/#sec-9.12', + SecFromTime: 'https://262.ecma-international.org/5.1/#sec-15.9.1.10', + SplitMatch: 'https://262.ecma-international.org/5.1/#sec-15.5.4.14', + TimeClip: 'https://262.ecma-international.org/5.1/#sec-15.9.1.14', + TimeFromYear: 'https://262.ecma-international.org/5.1/#sec-15.9.1.3', + TimeWithinDay: 'https://262.ecma-international.org/5.1/#sec-15.9.1.2', + ToBoolean: 'https://262.ecma-international.org/5.1/#sec-9.2', + ToInt32: 'https://262.ecma-international.org/5.1/#sec-9.5', + ToInteger: 'https://262.ecma-international.org/5.1/#sec-9.4', + ToNumber: 'https://262.ecma-international.org/5.1/#sec-9.3', + ToObject: 'https://262.ecma-international.org/5.1/#sec-9.9', + ToPrimitive: 'https://262.ecma-international.org/5.1/#sec-9.1', + ToPropertyDescriptor: 'https://262.ecma-international.org/5.1/#sec-8.10.5', + ToString: 'https://262.ecma-international.org/5.1/#sec-9.8', + ToUint16: 'https://262.ecma-international.org/5.1/#sec-9.7', + ToUint32: 'https://262.ecma-international.org/5.1/#sec-9.6', + Type: 'https://262.ecma-international.org/5.1/#sec-8', + WeekDay: 'https://262.ecma-international.org/5.1/#sec-15.9.1.6', + YearFromTime: 'https://262.ecma-international.org/5.1/#sec-15.9.1.3' +}; diff --git a/node_modules/es-abstract/package.json b/node_modules/es-abstract/package.json new file mode 100644 index 0000000000000000000000000000000000000000..7d0d1697cb384006a6e8623213bcfa5d99ca7e0c --- /dev/null +++ b/node_modules/es-abstract/package.json @@ -0,0 +1,188 @@ +{ + "name": "es-abstract", + "version": "1.24.1", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "description": "ECMAScript spec abstract operations.", + "license": "MIT", + "main": "index.js", + "browser": { + "worker_threads": false + }, + "type": "commonjs", + "sideEffects": false, + "scripts": { + "spackled": "git ls-files | xargs git check-attr spackled | grep -v 'unspecified$' | cut -d: -f1", + "prespackle": "npm run --silent spackled | xargs rm || true", + "spackle": "node operations/spackle 1 && node operations/build-unicode.mjs", + "postspackle": "git ls-files | xargs git check-attr spackled | grep -v 'unspecified$' | cut -d: -f1 | xargs git add", + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest && npm run spackle", + "pretest": "npm run lint", + "test": "npm run tests-only && npm run test:ses", + "test:ses": "node --stack-size=5120 test/ses-compat", + "posttest": "npx npm@'>= 10.2' audit --production", + "tests-only": "nyc node --stack-size=5120 test", + "lint": "eslint .", + "eccheck": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')" + }, + "repository": { + "type": "git", + "url": "git://github.com/ljharb/es-abstract.git" + }, + "keywords": [ + "ECMAScript", + "ES", + "abstract", + "operation", + "abstract operation", + "JavaScript", + "ES5", + "ES6", + "ES7" + ], + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "devDependencies": { + "@ljharb/eslint-config": "^22.1.2", + "@unicode/unicode-15.0.0": "^1.6.16", + "array.from": "^1.1.6", + "array.prototype.filter": "^1.0.4", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.indexof": "^1.0.8", + "available-regexp-flags": "^1.0.4", + "cheerio": "=1.0.0-rc.3", + "define-accessor-property": "^1.0.0", + "define-data-property": "^1.1.4", + "diff": "^7.0.0", + "eclint": "^2.8.1", + "es-value-fixtures": "^1.7.1", + "eslint": "^9.39.2", + "for-each": "^0.3.5", + "function-bind": "^1.1.2", + "functions-have-names": "^1.2.3", + "glob": "^7.2.3", + "has-bigints": "^1.1.0", + "has-named-captures": "^1.0.0", + "has-strict-mode": "^1.1.0", + "in-publish": "^2.0.1", + "is-bigint": "^1.1.0", + "is-core-module": "^2.16.1", + "jackspeak": "=2.1.1", + "jiti": "^0.0.0", + "make-async-function": "^1.0.0", + "make-async-generator-function": "^1.0.0", + "make-generator-function": "^2.1.0", + "mock-property": "^1.1.0", + "npmignore": "^0.3.2", + "nyc": "^10.3.2", + "object.fromentries": "^2.0.8", + "safe-bigint": "^1.1.1", + "safe-publish-latest": "^2.0.0", + "ses": "^1.14.0", + "tape": "^5.9.0" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "publishConfig": { + "ignore": [ + ".github", + "", + "# dev scripts", + "operations/*", + "!operations/es5.js", + "!operations/20*.js", + "", + "test/", + "", + ".gitattributes" + ] + } +} diff --git a/node_modules/es-define-property/.eslintrc b/node_modules/es-define-property/.eslintrc new file mode 100644 index 0000000000000000000000000000000000000000..46f3b120b8724f7a62ece8975157c2df19e5f1b3 --- /dev/null +++ b/node_modules/es-define-property/.eslintrc @@ -0,0 +1,13 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "new-cap": ["error", { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + }, +} diff --git a/node_modules/es-define-property/.github/FUNDING.yml b/node_modules/es-define-property/.github/FUNDING.yml new file mode 100644 index 0000000000000000000000000000000000000000..4445451fbe2ccd00617f2848e567afb5eecb6825 --- /dev/null +++ b/node_modules/es-define-property/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/es-define-property +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/es-define-property/.nycrc b/node_modules/es-define-property/.nycrc new file mode 100644 index 0000000000000000000000000000000000000000..bdd626ce91477abbdd489b79988baebadbd3c897 --- /dev/null +++ b/node_modules/es-define-property/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/es-define-property/CHANGELOG.md b/node_modules/es-define-property/CHANGELOG.md new file mode 100644 index 0000000000000000000000000000000000000000..5f60cc0992cbae4f34123dedce058743617a842c --- /dev/null +++ b/node_modules/es-define-property/CHANGELOG.md @@ -0,0 +1,29 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.1](https://github.com/ljharb/es-define-property/compare/v1.0.0...v1.0.1) - 2024-12-06 + +### Commits + +- [types] use shared tsconfig [`954a663`](https://github.com/ljharb/es-define-property/commit/954a66360326e508a0e5daa4b07493d58f5e110e) +- [actions] split out node 10-20, and 20+ [`3a8e84b`](https://github.com/ljharb/es-define-property/commit/3a8e84b23883f26ff37b3e82ff283834228e18c6) +- [Dev Deps] update `@ljharb/eslint-config`, `@ljharb/tsconfig`, `@types/get-intrinsic`, `@types/tape`, `auto-changelog`, `gopd`, `tape` [`86ae27b`](https://github.com/ljharb/es-define-property/commit/86ae27bb8cc857b23885136fad9cbe965ae36612) +- [Refactor] avoid using `get-intrinsic` [`02480c0`](https://github.com/ljharb/es-define-property/commit/02480c0353ef6118965282977c3864aff53d98b1) +- [Tests] replace `aud` with `npm audit` [`f6093ff`](https://github.com/ljharb/es-define-property/commit/f6093ff74ab51c98015c2592cd393bd42478e773) +- [Tests] configure testling [`7139e66`](https://github.com/ljharb/es-define-property/commit/7139e66959247a56086d9977359caef27c6849e7) +- [Dev Deps] update `tape` [`b901b51`](https://github.com/ljharb/es-define-property/commit/b901b511a75e001a40ce1a59fef7d9ffcfc87482) +- [Tests] fix types in tests [`469d269`](https://github.com/ljharb/es-define-property/commit/469d269fd141b1e773ec053a9fa35843493583e0) +- [Dev Deps] add missing peer dep [`733acfb`](https://github.com/ljharb/es-define-property/commit/733acfb0c4c96edf337e470b89a25a5b3724c352) + +## v1.0.0 - 2024-02-12 + +### Commits + +- Initial implementation, tests, readme, types [`3e154e1`](https://github.com/ljharb/es-define-property/commit/3e154e11a2fee09127220f5e503bf2c0a31dd480) +- Initial commit [`07d98de`](https://github.com/ljharb/es-define-property/commit/07d98de34a4dc31ff5e83a37c0c3f49e0d85cd50) +- npm init [`c4eb634`](https://github.com/ljharb/es-define-property/commit/c4eb6348b0d3886aac36cef34ad2ee0665ea6f3e) +- Only apps should have lockfiles [`7af86ec`](https://github.com/ljharb/es-define-property/commit/7af86ec1d311ec0b17fdfe616a25f64276903856) diff --git a/node_modules/es-define-property/LICENSE b/node_modules/es-define-property/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..f82f38963b0d282b529f64def2bcd40be3a9a947 --- /dev/null +++ b/node_modules/es-define-property/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/es-define-property/README.md b/node_modules/es-define-property/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9b291bddb2d0dd0e37ca82e6ac02a7002b6e0c44 --- /dev/null +++ b/node_modules/es-define-property/README.md @@ -0,0 +1,49 @@ +# es-define-property [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +`Object.defineProperty`, but not IE 8's broken one. + +## Example + +```js +const assert = require('assert'); + +const $defineProperty = require('es-define-property'); + +if ($defineProperty) { + assert.equal($defineProperty, Object.defineProperty); +} else if (Object.defineProperty) { + assert.equal($defineProperty, false, 'this is IE 8'); +} else { + assert.equal($defineProperty, false, 'this is an ES3 engine'); +} +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +[package-url]: https://npmjs.org/package/es-define-property +[npm-version-svg]: https://versionbadg.es/ljharb/es-define-property.svg +[deps-svg]: https://david-dm.org/ljharb/es-define-property.svg +[deps-url]: https://david-dm.org/ljharb/es-define-property +[dev-deps-svg]: https://david-dm.org/ljharb/es-define-property/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/es-define-property#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/es-define-property.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/es-define-property.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/es-define-property.svg +[downloads-url]: https://npm-stat.com/charts.html?package=es-define-property +[codecov-image]: https://codecov.io/gh/ljharb/es-define-property/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/es-define-property/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/es-define-property +[actions-url]: https://github.com/ljharb/es-define-property/actions diff --git a/node_modules/es-define-property/index.d.ts b/node_modules/es-define-property/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6012247c464a88a37c8711b0c40884ec8c8e182d --- /dev/null +++ b/node_modules/es-define-property/index.d.ts @@ -0,0 +1,3 @@ +declare const defineProperty: false | typeof Object.defineProperty; + +export = defineProperty; \ No newline at end of file diff --git a/node_modules/es-define-property/index.js b/node_modules/es-define-property/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e0a29251646c4cc40dd6b1be8d3e28674cd21ad1 --- /dev/null +++ b/node_modules/es-define-property/index.js @@ -0,0 +1,14 @@ +'use strict'; + +/** @type {import('.')} */ +var $defineProperty = Object.defineProperty || false; +if ($defineProperty) { + try { + $defineProperty({}, 'a', { value: 1 }); + } catch (e) { + // IE 8 has a broken defineProperty + $defineProperty = false; + } +} + +module.exports = $defineProperty; diff --git a/node_modules/es-define-property/package.json b/node_modules/es-define-property/package.json new file mode 100644 index 0000000000000000000000000000000000000000..fbed187879c12efa431383a9d4b9f340e9c41184 --- /dev/null +++ b/node_modules/es-define-property/package.json @@ -0,0 +1,81 @@ +{ + "name": "es-define-property", + "version": "1.0.1", + "description": "`Object.defineProperty`, but not IE 8's broken one.", + "main": "index.js", + "types": "./index.d.ts", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p .", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>= 10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/es-define-property.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "object", + "define", + "property", + "defineProperty", + "Object.defineProperty" + ], + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/es-define-property/issues" + }, + "homepage": "https://github.com/ljharb/es-define-property#readme", + "devDependencies": { + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/gopd": "^1.0.3", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "eslint": "^8.8.0", + "evalmd": "^0.0.19", + "gopd": "^1.2.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } +} diff --git a/node_modules/es-define-property/test/index.js b/node_modules/es-define-property/test/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b4b4688fbe21410f840ebadfc21512da78bc3cda --- /dev/null +++ b/node_modules/es-define-property/test/index.js @@ -0,0 +1,56 @@ +'use strict'; + +var $defineProperty = require('../'); + +var test = require('tape'); +var gOPD = require('gopd'); + +test('defineProperty: supported', { skip: !$defineProperty }, function (t) { + t.plan(4); + + t.equal(typeof $defineProperty, 'function', 'defineProperty is supported'); + if ($defineProperty && gOPD) { // this `if` check is just to shut TS up + /** @type {{ a: number, b?: number, c?: number }} */ + var o = { a: 1 }; + + $defineProperty(o, 'b', { enumerable: true, value: 2 }); + t.deepEqual( + gOPD(o, 'b'), + { + configurable: false, + enumerable: true, + value: 2, + writable: false + }, + 'property descriptor is as expected' + ); + + $defineProperty(o, 'c', { enumerable: false, value: 3, writable: true }); + t.deepEqual( + gOPD(o, 'c'), + { + configurable: false, + enumerable: false, + value: 3, + writable: true + }, + 'property descriptor is as expected' + ); + } + + t.equal($defineProperty, Object.defineProperty, 'defineProperty is Object.defineProperty'); + + t.end(); +}); + +test('defineProperty: not supported', { skip: !!$defineProperty }, function (t) { + t.notOk($defineProperty, 'defineProperty is not supported'); + + t.match( + typeof $defineProperty, + /^(?:undefined|boolean)$/, + '`typeof defineProperty` is `undefined` or `boolean`' + ); + + t.end(); +}); diff --git a/node_modules/es-define-property/tsconfig.json b/node_modules/es-define-property/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..5a49992eafed9157e55fe5cf18a1eae8da8300fa --- /dev/null +++ b/node_modules/es-define-property/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2022", + }, + "exclude": [ + "coverage", + "test/list-exports" + ], +} diff --git a/node_modules/es-errors/.eslintrc b/node_modules/es-errors/.eslintrc new file mode 100644 index 0000000000000000000000000000000000000000..3b5d9e90ec405f85dd7f9066656efccc51193697 --- /dev/null +++ b/node_modules/es-errors/.eslintrc @@ -0,0 +1,5 @@ +{ + "root": true, + + "extends": "@ljharb", +} diff --git a/node_modules/es-errors/.github/FUNDING.yml b/node_modules/es-errors/.github/FUNDING.yml new file mode 100644 index 0000000000000000000000000000000000000000..f1b880554aae3ac981c255f24b8a38ff7bed627e --- /dev/null +++ b/node_modules/es-errors/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/es-errors +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/es-errors/CHANGELOG.md b/node_modules/es-errors/CHANGELOG.md new file mode 100644 index 0000000000000000000000000000000000000000..204a9e904b4ea5d092d53f9b9bb77301bfda559e --- /dev/null +++ b/node_modules/es-errors/CHANGELOG.md @@ -0,0 +1,40 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.3.0](https://github.com/ljharb/es-errors/compare/v1.2.1...v1.3.0) - 2024-02-05 + +### Commits + +- [New] add `EvalError` and `URIError` [`1927627`](https://github.com/ljharb/es-errors/commit/1927627ba68cb6c829d307231376c967db53acdf) + +## [v1.2.1](https://github.com/ljharb/es-errors/compare/v1.2.0...v1.2.1) - 2024-02-04 + +### Commits + +- [Fix] add missing `exports` entry [`5bb5f28`](https://github.com/ljharb/es-errors/commit/5bb5f280f98922701109d6ebb82eea2257cecc7e) + +## [v1.2.0](https://github.com/ljharb/es-errors/compare/v1.1.0...v1.2.0) - 2024-02-04 + +### Commits + +- [New] add `ReferenceError` [`6d8cf5b`](https://github.com/ljharb/es-errors/commit/6d8cf5bbb6f3f598d02cf6f30e468ba2caa8e143) + +## [v1.1.0](https://github.com/ljharb/es-errors/compare/v1.0.0...v1.1.0) - 2024-02-04 + +### Commits + +- [New] add base Error [`2983ab6`](https://github.com/ljharb/es-errors/commit/2983ab65f7bc5441276cb021dc3aa03c78881698) + +## v1.0.0 - 2024-02-03 + +### Commits + +- Initial implementation, tests, readme, type [`8f47631`](https://github.com/ljharb/es-errors/commit/8f476317e9ad76f40ad648081829b1a1a3a1288b) +- Initial commit [`ea5d099`](https://github.com/ljharb/es-errors/commit/ea5d099ef18e550509ab9e2be000526afd81c385) +- npm init [`6f5ebf9`](https://github.com/ljharb/es-errors/commit/6f5ebf9cead474dadd72b9e63dad315820a089ae) +- Only apps should have lockfiles [`e1a0aeb`](https://github.com/ljharb/es-errors/commit/e1a0aeb7b80f5cfc56be54d6b2100e915d47def8) +- [meta] add `sideEffects` flag [`a9c7d46`](https://github.com/ljharb/es-errors/commit/a9c7d460a492f1d8a241c836bc25a322a19cc043) diff --git a/node_modules/es-errors/LICENSE b/node_modules/es-errors/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..f82f38963b0d282b529f64def2bcd40be3a9a947 --- /dev/null +++ b/node_modules/es-errors/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/es-errors/README.md b/node_modules/es-errors/README.md new file mode 100644 index 0000000000000000000000000000000000000000..8dbfacfea727f2486a51415fa63e8494689ca3ed --- /dev/null +++ b/node_modules/es-errors/README.md @@ -0,0 +1,55 @@ +# es-errors [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +A simple cache for a few of the JS Error constructors. + +## Example + +```js +const assert = require('assert'); + +const Base = require('es-errors'); +const Eval = require('es-errors/eval'); +const Range = require('es-errors/range'); +const Ref = require('es-errors/ref'); +const Syntax = require('es-errors/syntax'); +const Type = require('es-errors/type'); +const URI = require('es-errors/uri'); + +assert.equal(Base, Error); +assert.equal(Eval, EvalError); +assert.equal(Range, RangeError); +assert.equal(Ref, ReferenceError); +assert.equal(Syntax, SyntaxError); +assert.equal(Type, TypeError); +assert.equal(URI, URIError); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +[package-url]: https://npmjs.org/package/es-errors +[npm-version-svg]: https://versionbadg.es/ljharb/es-errors.svg +[deps-svg]: https://david-dm.org/ljharb/es-errors.svg +[deps-url]: https://david-dm.org/ljharb/es-errors +[dev-deps-svg]: https://david-dm.org/ljharb/es-errors/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/es-errors#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/es-errors.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/es-errors.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/es-errors.svg +[downloads-url]: https://npm-stat.com/charts.html?package=es-errors +[codecov-image]: https://codecov.io/gh/ljharb/es-errors/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/es-errors/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/es-errors +[actions-url]: https://github.com/ljharb/es-errors/actions diff --git a/node_modules/es-errors/eval.d.ts b/node_modules/es-errors/eval.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..e4210e01ea5a4def42ac84742b36d2cada422ca4 --- /dev/null +++ b/node_modules/es-errors/eval.d.ts @@ -0,0 +1,3 @@ +declare const EvalError: EvalErrorConstructor; + +export = EvalError; diff --git a/node_modules/es-errors/eval.js b/node_modules/es-errors/eval.js new file mode 100644 index 0000000000000000000000000000000000000000..725ccb61a96e9a89faa7d0046cfffb78e1c92539 --- /dev/null +++ b/node_modules/es-errors/eval.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./eval')} */ +module.exports = EvalError; diff --git a/node_modules/es-errors/index.d.ts b/node_modules/es-errors/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..69bdbc92ee1c2272f4ea3180319378f4c9ffb94c --- /dev/null +++ b/node_modules/es-errors/index.d.ts @@ -0,0 +1,3 @@ +declare const Error: ErrorConstructor; + +export = Error; diff --git a/node_modules/es-errors/index.js b/node_modules/es-errors/index.js new file mode 100644 index 0000000000000000000000000000000000000000..cc0c52124b678924decd65b835587b5cbdbb878f --- /dev/null +++ b/node_modules/es-errors/index.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('.')} */ +module.exports = Error; diff --git a/node_modules/es-errors/package.json b/node_modules/es-errors/package.json new file mode 100644 index 0000000000000000000000000000000000000000..ff8c2a531b89061d61eadcdd419a752b79cd2daa --- /dev/null +++ b/node_modules/es-errors/package.json @@ -0,0 +1,80 @@ +{ + "name": "es-errors", + "version": "1.3.0", + "description": "A simple cache for a few of the JS Error constructors.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./eval": "./eval.js", + "./range": "./range.js", + "./ref": "./ref.js", + "./syntax": "./syntax.js", + "./type": "./type.js", + "./uri": "./uri.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "aud --production", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/es-errors.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "error", + "typeerror", + "syntaxerror", + "rangeerror" + ], + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/es-errors/issues" + }, + "homepage": "https://github.com/ljharb/es-errors#readme", + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "eclint": "^2.8.1", + "eslint": "^8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.4", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/es-errors/range.d.ts b/node_modules/es-errors/range.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..3a12e8642651dc11e02842be181311761562f318 --- /dev/null +++ b/node_modules/es-errors/range.d.ts @@ -0,0 +1,3 @@ +declare const RangeError: RangeErrorConstructor; + +export = RangeError; diff --git a/node_modules/es-errors/range.js b/node_modules/es-errors/range.js new file mode 100644 index 0000000000000000000000000000000000000000..2044fe03646a725081f95460e4fca9a1ef59750f --- /dev/null +++ b/node_modules/es-errors/range.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./range')} */ +module.exports = RangeError; diff --git a/node_modules/es-errors/ref.d.ts b/node_modules/es-errors/ref.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..a13107e24926aea33fb0cb22ae209ab2be115577 --- /dev/null +++ b/node_modules/es-errors/ref.d.ts @@ -0,0 +1,3 @@ +declare const ReferenceError: ReferenceErrorConstructor; + +export = ReferenceError; diff --git a/node_modules/es-errors/ref.js b/node_modules/es-errors/ref.js new file mode 100644 index 0000000000000000000000000000000000000000..d7c430fdb3ae766b215ad8e072d6ac2212d7c619 --- /dev/null +++ b/node_modules/es-errors/ref.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./ref')} */ +module.exports = ReferenceError; diff --git a/node_modules/es-errors/syntax.d.ts b/node_modules/es-errors/syntax.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6a0c53c5b9ed0ecc1d4130caf9f61f6bdfcb2fd4 --- /dev/null +++ b/node_modules/es-errors/syntax.d.ts @@ -0,0 +1,3 @@ +declare const SyntaxError: SyntaxErrorConstructor; + +export = SyntaxError; diff --git a/node_modules/es-errors/syntax.js b/node_modules/es-errors/syntax.js new file mode 100644 index 0000000000000000000000000000000000000000..5f5fddeec53b514df79342efce6cae341b6309be --- /dev/null +++ b/node_modules/es-errors/syntax.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./syntax')} */ +module.exports = SyntaxError; diff --git a/node_modules/es-errors/test/index.js b/node_modules/es-errors/test/index.js new file mode 100644 index 0000000000000000000000000000000000000000..1ff027721aabcada7c00b9e69fbd6f99a901c470 --- /dev/null +++ b/node_modules/es-errors/test/index.js @@ -0,0 +1,19 @@ +'use strict'; + +var test = require('tape'); + +var E = require('../'); +var R = require('../range'); +var Ref = require('../ref'); +var S = require('../syntax'); +var T = require('../type'); + +test('errors', function (t) { + t.equal(E, Error); + t.equal(R, RangeError); + t.equal(Ref, ReferenceError); + t.equal(S, SyntaxError); + t.equal(T, TypeError); + + t.end(); +}); diff --git a/node_modules/es-errors/tsconfig.json b/node_modules/es-errors/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..99dfeb6c80dfed0a80dac97c6e9f04263fec7a8c --- /dev/null +++ b/node_modules/es-errors/tsconfig.json @@ -0,0 +1,49 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Projects */ + + /* Language and Environment */ + "target": "es5", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": ["types"], /* Specify multiple folders that act like `./node_modules/@types`. */ + "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + + /* JavaScript Support */ + "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + + /* Emit */ + "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + "declarationMap": true, /* Create sourcemaps for d.ts files. */ + "noEmit": true, /* Disable emitting files from a compilation. */ + + /* Interop Constraints */ + "allowSyntheticDefaultImports": true, /* Allow `import x from y` when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + + /* Completeness */ + // "skipLibCheck": true /* Skip type checking all .d.ts files. */ + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/es-errors/type.d.ts b/node_modules/es-errors/type.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..576fb51617719961375b38b15773244480b61a0e --- /dev/null +++ b/node_modules/es-errors/type.d.ts @@ -0,0 +1,3 @@ +declare const TypeError: TypeErrorConstructor + +export = TypeError; diff --git a/node_modules/es-errors/type.js b/node_modules/es-errors/type.js new file mode 100644 index 0000000000000000000000000000000000000000..9769e44e397cc2a8f089258833a733f3fe0627ef --- /dev/null +++ b/node_modules/es-errors/type.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./type')} */ +module.exports = TypeError; diff --git a/node_modules/es-errors/uri.d.ts b/node_modules/es-errors/uri.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c3261c91e08c1a3c6499741ccd32d47612bea72c --- /dev/null +++ b/node_modules/es-errors/uri.d.ts @@ -0,0 +1,3 @@ +declare const URIError: URIErrorConstructor; + +export = URIError; diff --git a/node_modules/es-errors/uri.js b/node_modules/es-errors/uri.js new file mode 100644 index 0000000000000000000000000000000000000000..e9cd1c78709f0773db77943de1fdb95d3d268a5f --- /dev/null +++ b/node_modules/es-errors/uri.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./uri')} */ +module.exports = URIError; diff --git a/node_modules/es-iterator-helpers/.github/FUNDING.yml b/node_modules/es-iterator-helpers/.github/FUNDING.yml new file mode 100644 index 0000000000000000000000000000000000000000..4643a040964bf35288561486e800b7a66da8b197 --- /dev/null +++ b/node_modules/es-iterator-helpers/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/es-iterator-helpers +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/es-iterator-helpers/.nycrc b/node_modules/es-iterator-helpers/.nycrc new file mode 100644 index 0000000000000000000000000000000000000000..1826526e091b89c896e7099ccd891db79165e329 --- /dev/null +++ b/node_modules/es-iterator-helpers/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/es-iterator-helpers/CHANGELOG.md b/node_modules/es-iterator-helpers/CHANGELOG.md new file mode 100644 index 0000000000000000000000000000000000000000..90ec4563c813ff1e972369248c9097dbb639af81 --- /dev/null +++ b/node_modules/es-iterator-helpers/CHANGELOG.md @@ -0,0 +1,233 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.2.2](https://github.com/es-shims/iterator-helpers/compare/v1.2.1...v1.2.2) - 2025-12-13 + +### Commits + +- [Tests] joint iteration: add missing & passing test262 tests [`34258f3`](https://github.com/es-shims/iterator-helpers/commit/34258f36f9b346fe92ac5c001ba75784568665d1) +- [Deps] update `call-bound`, `es-abstract`, `get-intrinsic` [`e05660b`](https://github.com/es-shims/iterator-helpers/commit/e05660b9e2197f27ee428f1739944f49b3ed0f7c) +- [Tests] `Iterator.from`, `Iterator.prototype.toArray`: add missing & passing test262 tests [`7831bd6`](https://github.com/es-shims/iterator-helpers/commit/7831bd66b07dcee905e06506ff9f9d352971a388) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`35ecd14`](https://github.com/es-shims/iterator-helpers/commit/35ecd14f2d26a8664a6b524bbbd85c270c1c610a) +- [Fix] `IteratorZip`: return should close all underlying iterators [`5bcab73`](https://github.com/es-shims/iterator-helpers/commit/5bcab73b01369f13b9f379c804a7f7f7b7995e32) +- [Fix] `IteratorHelperPrototype`: throw TypeError when `return()` is called re-entrantly [`0acdd41`](https://github.com/es-shims/iterator-helpers/commit/0acdd4107c075f6b6b8822e0ce4a2a799ca476d0) +- [Tests] `Iterator.concat`: add missing & passing test262 tests [`9645f4d`](https://github.com/es-shims/iterator-helpers/commit/9645f4da1052674ec2c7b5809ec8c164d8adda1a) +- [Fix] `Iterator.concat`: prevent `return()` from being forwarded multiple times [`1271d61`](https://github.com/es-shims/iterator-helpers/commit/1271d61cc35606a627b8412609400a11e6d5f797) +- [Fix] `Iterator.zip`: strict mode should return sentinel after all iterators done [`f4c8b99`](https://github.com/es-shims/iterator-helpers/commit/f4c8b99ca39dea551d38b17ade315b03b64e4a46) +- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `eslint`, `eslint-plugin-import`, `has-strict-mode`, `make-generator-function`, `npmignore` [`acba233`](https://github.com/es-shims/iterator-helpers/commit/acba233094b3ef70d8d20e41c4ea084a6b47447a) +- [Deps] update `es-abstract`, `es-set-tostringtag`, `get-intrinsic`, `iterator.prototype` [`06515e7`](https://github.com/es-shims/iterator-helpers/commit/06515e7d1f5d5e7c98777eba6aec50d1cdaf6a4d) +- [Dev Deps] update `es-value-fixtures`, `for-each`, `object-inspect` [`2afe7a3`](https://github.com/es-shims/iterator-helpers/commit/2afe7a38fd08ca98ca173070350e370535caa325) +- [Dev Deps] update `@ljharb/eslint-config`, `eslint` [`18fa1c1`](https://github.com/es-shims/iterator-helpers/commit/18fa1c1ca56070d68e6f4db37a365e1f98d27a53) +- [Fix] `GeneratorResumeAbrupt`: set state to COMPLETED after return completion [`10e5e21`](https://github.com/es-shims/iterator-helpers/commit/10e5e21fd1ed9dc156bfca7644843f4a11799543) +- [Deps] update `es-abstract` [`3469d15`](https://github.com/es-shims/iterator-helpers/commit/3469d1543a0730156a95bb90747efebfe46ba1a0) +- [Dev Deps] add missing peer dep [`a0d780d`](https://github.com/es-shims/iterator-helpers/commit/a0d780d64a4742004e316ee9b70f445711b5a4db) + +## [v1.2.1](https://github.com/es-shims/iterator-helpers/compare/v1.2.0...v1.2.1) - 2024-12-20 + +### Commits + +- [Tests] `Iterator.concat`: add most of the tests from https://github.com/tc39/test262/pull/4326 [`2e340da`](https://github.com/es-shims/iterator-helpers/commit/2e340daf021139ea41dc828c7f99452114db8561) +- [Fix] `Iterator.concat`: rewrite implementation to match updated spec text [`1a70fd3`](https://github.com/es-shims/iterator-helpers/commit/1a70fd33ab81738ad2b748812a431d51e0c4d758) +- [Fix] `IteratorZip` AO: allow an empty list of iterators [`265e566`](https://github.com/es-shims/iterator-helpers/commit/265e5664dade59e2faa5d7d2e203b92cd0af5c35) +- [actions] split out node 10-20, and 20+ [`3cc9db0`](https://github.com/es-shims/iterator-helpers/commit/3cc9db03118e2b4b6432e262e7936a7e2f3074c4) +- [Fix] `IteratorHelperPrototype`: in pre-proto envs, use same `.return` impl [`da02ab6`](https://github.com/es-shims/iterator-helpers/commit/da02ab656dce1c4f73355290a3bd9e4c25ccc3b6) +- [Deps] update `call-bind`, `es-abstract`, `get-intrinsic`, `gopd`, `has-proto`, `internal-slot`, `iterator.prototype`, `safe-array-concat` [`e9eefab`](https://github.com/es-shims/iterator-helpers/commit/e9eefab99fb496f9a4600193126c69c321394d42) +- [Tests] `Iterator.zip`: nullish non-function Symbol.iterator does not throw [`c6b0705`](https://github.com/es-shims/iterator-helpers/commit/c6b0705e2b601c1c8d412679eca4fe4618051d8f) +- [Refactor] use `call-bound` directly [`92afc5a`](https://github.com/es-shims/iterator-helpers/commit/92afc5a7ed014b5e2b52db1b1a6a99d16f50d5d2) +- [Deps] update `gopd`, `has-proto`, `has-symbols` [`7f8a1c0`](https://github.com/es-shims/iterator-helpers/commit/7f8a1c0049dfd649bea9a707b9c451ba7e9f3b0e) +- [readme] add missing info for `Iterator.zip`, `Iterator.zipKeyed` [`dd80b2f`](https://github.com/es-shims/iterator-helpers/commit/dd80b2f1718092219e94e24afdc1737f062e3df4) +- [Dev Deps] update `@es-shims/api` [`1e9857c`](https://github.com/es-shims/iterator-helpers/commit/1e9857c497f8f4e6053c9adb7dddb98b6800c628) +- [Deps] update `es-abstract` [`c8157da`](https://github.com/es-shims/iterator-helpers/commit/c8157da5194372ddc968e0f512d0740544752d30) +- [Deps] update `es-abstract` [`256de0e`](https://github.com/es-shims/iterator-helpers/commit/256de0e1aa45d6d0ad12a19ef04491816bcb7288) +- [Dev Deps] update `object-inspect` [`2f8544b`](https://github.com/es-shims/iterator-helpers/commit/2f8544b7baa80174e7368d475a4e3fa577418938) + +## [v1.2.0](https://github.com/es-shims/iterator-helpers/compare/v1.1.0...v1.2.0) - 2024-11-04 + +### Commits + +- [New] add `Iterator.zip`, `Iterator.zipKeyed` [`d11073f`](https://github.com/es-shims/iterator-helpers/commit/d11073fd27fcdaf696c3d9b00634b6a5144f75b1) +- [Fix] `concat`: add missing slot for `.return`; convert singular slot to plural slot [`cc4b586`](https://github.com/es-shims/iterator-helpers/commit/cc4b586cdb0ad6ba540043077c3d71ff79d528cd) +- [Dev Deps] update `@es-shims/api` [`dd14f1b`](https://github.com/es-shims/iterator-helpers/commit/dd14f1b9f06c37f3bcb0a20bacd6e7f031c0724d) + +## [v1.1.0](https://github.com/es-shims/iterator-helpers/compare/v1.0.19...v1.1.0) - 2024-10-09 + +### Commits + +- [New] add `Iterator.concat` [`1c07c21`](https://github.com/es-shims/iterator-helpers/commit/1c07c21d42fa6f3de516191a2b7fb848679314e7) +- [readme] add ESM and CJS examples [`ae0b60c`](https://github.com/es-shims/iterator-helpers/commit/ae0b60cae42a5e6174809859e29d16085042e3b2) +- [Dev Deps] update `@es-shims/api`, `auto-changelog`, `es-value-fixtures`, `eslint-plugin-import`, `tape` [`bd34766`](https://github.com/es-shims/iterator-helpers/commit/bd34766d527cc625dcbc242297290a793f21b055) +- [Dev Deps] update `@ljharb/eslint-config`, `mock-property`, `object-inspect`, `tape` [`2016080`](https://github.com/es-shims/iterator-helpers/commit/201608082a32bc1fa114c012eeb72744e1bf5bfa) +- [readme] fix copy-paste errors [`799255c`](https://github.com/es-shims/iterator-helpers/commit/799255ce358f9f19ab54cc2377aafb404463d917) +- [Tests] replace `aud` with `npm audit` [`4c48a77`](https://github.com/es-shims/iterator-helpers/commit/4c48a77d90a6894863ad160fd0f88b3fc76653b6) +- [Deps] update `globalthis` [`14d9e97`](https://github.com/es-shims/iterator-helpers/commit/14d9e971f976da482cbb7ee76b583db9ce17e056) +- [Dev Deps] update `@es-shims/api` [`15d84bb`](https://github.com/es-shims/iterator-helpers/commit/15d84bbbe1864dfd028f30f98251cbdf19e74908) +- [Dev Deps] add missing peer dep [`34559b9`](https://github.com/es-shims/iterator-helpers/commit/34559b9a263dfbc3551fd0ff586639692c04e514) + +## [v1.0.19](https://github.com/es-shims/iterator-helpers/compare/v1.0.18...v1.0.19) - 2024-04-24 + +### Commits + +- [patch] remove unused AOs [`698cef7`](https://github.com/es-shims/iterator-helpers/commit/698cef79757378a74500690d5a5dc2a6b86cd304) +- [Fix] `drop`, `filter`, `flatMap`, `map`: rpatch a v8 bug when polyfilling [`3670395`](https://github.com/es-shims/iterator-helpers/commit/36703956321c201933c4c701c78304669a46947b) +- [Deps] update `es-abstract` [`d2b47a5`](https://github.com/es-shims/iterator-helpers/commit/d2b47a5f46d3f874aad67375346cb58bf8c9e8b2) + +## [v1.0.18](https://github.com/es-shims/iterator-helpers/compare/v1.0.17...v1.0.18) - 2024-03-15 + +### Commits + +- [Deps] update `es-abstract` [`6b45f15`](https://github.com/es-shims/iterator-helpers/commit/6b45f150e939cfbf93b816431a407c0838250e85) +- [Deps] update `es-set-tostringtag`, `has-proto`, `safe-array-concat` [`6350106`](https://github.com/es-shims/iterator-helpers/commit/6350106c9e5c18a67754ced3fd90465b0032f1e3) +- [Dev Deps] update `tape` [`5509b40`](https://github.com/es-shims/iterator-helpers/commit/5509b408791402d2f7d7882f905741e5a5dd805b) +- [Deps] remove an unused dep [`78e34a5`](https://github.com/es-shims/iterator-helpers/commit/78e34a5452e7b7ef3dc239a62dd8a7324fbb2305) + +## [v1.0.17](https://github.com/es-shims/iterator-helpers/compare/v1.0.16...v1.0.17) - 2024-02-13 + +### Fixed + +- [Fix] avoid use of internal `assertRecord` helper from `es-abstract` [`#5`](https://github.com/es-shims/iterator-helpers/issues/5) + +### Commits + +- [Deps] update `call-bind`, `es-abstract`, `has-property-descriptors` [`e563ee7`](https://github.com/es-shims/iterator-helpers/commit/e563ee7230897c41f7f3623a11fc0ecc6862ee1c) + +## [v1.0.16](https://github.com/es-shims/iterator-helpers/compare/v1.0.15...v1.0.16) - 2024-02-09 + +### Commits + +- [Refactor] use `IteratorStepValue` [`aa62d72`](https://github.com/es-shims/iterator-helpers/commit/aa62d72c52d86218942b4792c7131f72d939b733) +- [Refactor] use `es-errors` instead of `get-intrinsic` where possible [`05a25ae`](https://github.com/es-shims/iterator-helpers/commit/05a25aeccd0523df86b401c771d88fbea06558c9) +- [Deps] update `call-bind`, `es-abstract`, `es-set-tostringtag`, `function-bind`, `get-intrinsic`, `has-property-descriptors`, `internal-slot`, `safe-array-concat` [`6aeee43`](https://github.com/es-shims/iterator-helpers/commit/6aeee435ed5956b7c5ee66a51b86c26827874eae) +- [Dev Deps] update `aud`, `eslint-plugin-import`, `mock-property`, `npmignore`, `object-inspect`, `tape` [`0a21fdb`](https://github.com/es-shims/iterator-helpers/commit/0a21fdb4a59d25c248561b7f476fc9670b411855) +- [Deps] update `call-bind`, `es-errors`, `get-intrinsic`, `internal-slot` [`5b10625`](https://github.com/es-shims/iterator-helpers/commit/5b106251dad4252a744b2e0aa0d1be4c1c62b779) +- [meta] add missing `engines.node` [`1534039`](https://github.com/es-shims/iterator-helpers/commit/1534039eca062429c0df68dcc3459ce9ba7c69be) +- [Deps] update `get-intrinsic` [`37da5f2`](https://github.com/es-shims/iterator-helpers/commit/37da5f201940c78526de647ef9ba84d9152349c1) +- [Dev Deps] update `has-tostringtag` [`a7cac51`](https://github.com/es-shims/iterator-helpers/commit/a7cac51cc027e6274918cb1ea0cf1fa1a194fcd9) + +## [v1.0.15](https://github.com/es-shims/iterator-helpers/compare/v1.0.14...v1.0.15) - 2023-09-13 + +### Commits + +- [New] add `Iterator.prototype` shim [`c4a6203`](https://github.com/es-shims/iterator-helpers/commit/c4a6203a0ac87bf0a33835e775c207ff1911225d) +- [Tests] add passing tests for native generators [`57bae8c`](https://github.com/es-shims/iterator-helpers/commit/57bae8ccbeb27ed0e6c449f35cddbda6cf6757e8) +- [Deps] update `define-properties`, `iterator.prototype`, `safe-array-concat` [`56ca087`](https://github.com/es-shims/iterator-helpers/commit/56ca087f924dbefee47f0a1cb3b8468de76cd234) + +## [v1.0.14](https://github.com/es-shims/iterator-helpers/compare/v1.0.13...v1.0.14) - 2023-08-26 + +### Commits + +- [Deps] update `es-abstract` [`477b123`](https://github.com/es-shims/iterator-helpers/commit/477b1233acd36fdbbccd79fbb69cde325bc3e6a9) +- [Dev Deps] update `aud`, `eslint-plugin-import`, `tape` [`e4ea414`](https://github.com/es-shims/iterator-helpers/commit/e4ea4146feffb72fd828e5d883e960e0ad589a35) + +## [v1.0.13](https://github.com/es-shims/iterator-helpers/compare/v1.0.12...v1.0.13) - 2023-08-16 + +### Fixed + +- [Deps] add missing deps; add eslint-plugin-import [`#3`](https://github.com/es-shims/iterator-helpers/issues/3) + +## [v1.0.12](https://github.com/es-shims/iterator-helpers/compare/v1.0.11...v1.0.12) - 2023-07-14 + +### Commits + +- [Fix] avoid creating string wrapper objects with sloppy mode flatMap mappers [`db16b34`](https://github.com/es-shims/iterator-helpers/commit/db16b34aec554934ec2bfd62629fb66cebc311f8) +- [Deps] update `es-abstract` [`f002147`](https://github.com/es-shims/iterator-helpers/commit/f002147f0afbb2cd7c2d2e1207685f52e33abf0f) +- [Dev Deps] update `@ljharb/eslint-config`, `aud [`42064e8`](https://github.com/es-shims/iterator-helpers/commit/42064e80e0cc37f5e4676c2133dacae7456e313f) +- [meta] fix tidelift funding identifier [`896fd4f`](https://github.com/es-shims/iterator-helpers/commit/896fd4f2e4b419945bfbd85024a2c96248323151) + +## [v1.0.11](https://github.com/es-shims/iterator-helpers/compare/v1.0.10...v1.0.11) - 2023-05-22 + +### Commits + +- [Fix] iterator helpers are not a constructor [`8a7f999`](https://github.com/es-shims/iterator-helpers/commit/8a7f9996ba3600ef30f3a9c75f9f994e88d075c6) + +## [v1.0.10](https://github.com/es-shims/iterator-helpers/compare/v1.0.9...v1.0.10) - 2023-05-18 + +### Commits + +- [patch] remove IsCallable check on NextMethod, deferring errors to callsite [`bbb7efa`](https://github.com/es-shims/iterator-helpers/commit/bbb7efac8349273fe17c86194ef13af45bcb8e24) +- [patch] change Symbol.iterator fallback from callable check to nullish check [`ec3e255`](https://github.com/es-shims/iterator-helpers/commit/ec3e255dfe30ea6650d8a697e6c4f16fa393e923) +- [Tests] add test cases [`5117c47`](https://github.com/es-shims/iterator-helpers/commit/5117c477348407ebdfc9410dd437a68634c39a8e) +- [Dev Deps] update `@es-shims/api` [`9fa13a0`](https://github.com/es-shims/iterator-helpers/commit/9fa13a0739f353536de58b2b648aa9eacfa49479) +- [Dev Deps] update `@es-shims/api` [`b74b0ac`](https://github.com/es-shims/iterator-helpers/commit/b74b0ac2bd7e920f760bae7ba7c6c5310f5123d8) + +## [v1.0.9](https://github.com/es-shims/iterator-helpers/compare/v1.0.8...v1.0.9) - 2023-05-02 + +### Commits + +- [Refactor] use 2022 AO instead of 2015 AO [`75ee5c4`](https://github.com/es-shims/iterator-helpers/commit/75ee5c4dea0037f02a61c240114bb6bd8c8b48f1) + +## [v1.0.8](https://github.com/es-shims/iterator-helpers/compare/v1.0.7...v1.0.8) - 2023-05-02 + +### Commits + +- [Fix] `flatMap`: close the inner iterator when applicable [`4dc94e0`](https://github.com/es-shims/iterator-helpers/commit/4dc94e0117e34b4c99f9ed96c4fe306896c47da1) + +## [v1.0.7](https://github.com/es-shims/iterator-helpers/compare/v1.0.6...v1.0.7) - 2023-05-01 + +### Commits + +- [Fix] `flatMap`: properly handle yielded iterables [`3a78767`](https://github.com/es-shims/iterator-helpers/commit/3a78767e86394d45b212a225e4253745f8b1dc8d) +- [Fix] `flatMap`: only increment the count when iterating the outer iterator [`955d0b0`](https://github.com/es-shims/iterator-helpers/commit/955d0b00f5660db0d9febef2a16426dfc32e8be4) + +## [v1.0.6](https://github.com/es-shims/iterator-helpers/compare/v1.0.5...v1.0.6) - 2023-04-20 + +### Commits + +- [Refactor] `GetIteratorFlattenable`: remove hint [`781fc7c`](https://github.com/es-shims/iterator-helpers/commit/781fc7c28615aaaef139cbcd9e6ade513419bea1) +- [Refactor] `GetIteratorFlattenable`: use `GetIteratorDirect` [`026118b`](https://github.com/es-shims/iterator-helpers/commit/026118b8c884adaee5ab0eb12de838ef9abdbb6f) +- [Refactor] use `safe-array-concat` [`1d985a4`](https://github.com/es-shims/iterator-helpers/commit/1d985a449be212523f05ba4a359a162931ddf3d3) + +## [v1.0.5](https://github.com/es-shims/iterator-helpers/compare/v1.0.4...v1.0.5) - 2023-03-22 + +### Commits + +- [Tests] add passing tests for 4240029 [`c2082fe`](https://github.com/es-shims/iterator-helpers/commit/c2082fee3e73dc1998a67fbe0014e3ebdceb8ec0) +- [Fix] properly allow subclasses of Iterator to be constructed [`5cebe2a`](https://github.com/es-shims/iterator-helpers/commit/5cebe2a5767393696d0ce4e9325edf78c300f938) + +## [v1.0.4](https://github.com/es-shims/iterator-helpers/compare/v1.0.3...v1.0.4) - 2023-03-21 + +### Commits + +- [Fix] validate arguments first [`4240029`](https://github.com/es-shims/iterator-helpers/commit/42400297454909ddccc899a012dc55bbd403eb8b) +- [Fix] close underlying iterator when helper is closed [`f5372c7`](https://github.com/es-shims/iterator-helpers/commit/f5372c78cafff64bfda5849386538f806916049a) +- [Tests] `Iterator`: remove an unnecessary call-bind [`7d0ba59`](https://github.com/es-shims/iterator-helpers/commit/7d0ba59f672e690b189f91e0348f6b5e00f934e1) + +## [v1.0.3](https://github.com/es-shims/iterator-helpers/compare/v1.0.2...v1.0.3) - 2023-03-17 + +### Commits + +- [Fix] `drop`/`filter`/`flatMap`/`map`/`take`: properly IfAbruptCloseIterator [`ff643a0`](https://github.com/es-shims/iterator-helpers/commit/ff643a0b7c4e5c2b00e794ba9b988b47e783f235) +- [Refactor] use `NormalCompletion`/`ThrowCompletion` instead of thunks [`68fd937`](https://github.com/es-shims/iterator-helpers/commit/68fd937b53c107481a9f868bda5b2bd5cbc00142) +- [Fix] `filter`: IteratorClose needs to rethrow the error [`200474f`](https://github.com/es-shims/iterator-helpers/commit/200474ff289dea77c696c0c025f4602405cf3fff) +- [Fix] `filter`: properly increment the counter [`14aa2d8`](https://github.com/es-shims/iterator-helpers/commit/14aa2d8b75fd16378c2be183fd5b008712547ed4) +- [Fix] `Iterator` can not be `new`ed or invoked directly [`6fbd68e`](https://github.com/es-shims/iterator-helpers/commit/6fbd68e778dd455c4aa63f4e1f39e0b583610509) +- [Fix] `Iterator.prototype` should be non-writable [`1080288`](https://github.com/es-shims/iterator-helpers/commit/108028858067e40ea56dca9a68dd6cea4966e904) +- [Deps] update `es-abstract` [`b7913da`](https://github.com/es-shims/iterator-helpers/commit/b7913da9cddef1ec40b4827821c6069019b79093) +- [Dev Deps] update `@es-shims/api` [`0071bed`](https://github.com/es-shims/iterator-helpers/commit/0071bed9e13231317d2cdb9ae0ecb6603784ad1f) + +## [v1.0.2](https://github.com/es-shims/iterator-helpers/compare/v1.0.1...v1.0.2) - 2023-02-09 + +### Commits + +- [Refactor] inline 2023 impls of Iterator AOs until es-abstract is published with them [`b9c80c5`](https://github.com/es-shims/iterator-helpers/commit/b9c80c5aba0deaaabef7e650fe7ec231fdc695e3) +- [Fix] ensure calling `.return` does not invoke the next iteration [`9e28ed5`](https://github.com/es-shims/iterator-helpers/commit/9e28ed5af44a660a0d2e80684cb9a4bf3d86e09a) +- [Fix] `map`: pass the proper index argument to the mapper [`125e3ca`](https://github.com/es-shims/iterator-helpers/commit/125e3cac192ef650a88f774a5a2dd9afe395a5b8) +- [Deps] update `internal-slot` [`43351b6`](https://github.com/es-shims/iterator-helpers/commit/43351b63545e3698f54daf5dc0652a7b2fb7cb28) + +## [v1.0.1](https://github.com/es-shims/iterator-helpers/compare/v1.0.0...v1.0.1) - 2023-02-07 + +### Commits + +- [Fix] `Iterator`: throw when Iterator() is called without new [`a6fc7e7`](https://github.com/es-shims/iterator-helpers/commit/a6fc7e768cbf4d43117365ec2f1bd300247d8dfd) + +## v1.0.0 - 2023-02-05 + +### Commits + +- Initial implementation, tests, readme [`650713e`](https://github.com/es-shims/iterator-helpers/commit/650713eecc9d4dab28d5ba3dc5afcbdb8ff99b5a) +- Initial commit [`2379dfd`](https://github.com/es-shims/iterator-helpers/commit/2379dfdad70f64efb31e342a4a7779b1140b2481) +- npm init [`f77411a`](https://github.com/es-shims/iterator-helpers/commit/f77411a443f1a103dbb92a69210228d4fc1e6d04) +- Only apps should have lockfiles [`313dcf5`](https://github.com/es-shims/iterator-helpers/commit/313dcf5211e99569ad275885728b5ac7af30f4ec) diff --git a/node_modules/es-iterator-helpers/Iterator.concat/auto.js b/node_modules/es-iterator-helpers/Iterator.concat/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.concat/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.concat/implementation.js b/node_modules/es-iterator-helpers/Iterator.concat/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..54ed33ecc98efe3070b0d887c4ead5c9f868c40a --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.concat/implementation.js @@ -0,0 +1,103 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var AdvanceStringIndex = require('es-abstract/2025/AdvanceStringIndex'); +var Call = require('es-abstract/2025/Call'); +var CompletionRecord = require('es-abstract/2025/CompletionRecord'); +var CreateIteratorFromClosure = require('es-abstract/2025/CreateIteratorFromClosure'); +var GetIteratorDirect = require('es-abstract/2025/GetIteratorDirect'); +var GetMethod = require('es-abstract/2025/GetMethod'); +var IsArray = require('es-abstract/2025/IsArray'); +var IteratorCloseAll = require('../aos/IteratorCloseAll'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); + +var forEach = require('es-abstract/helpers/forEach'); +var isObject = require('es-abstract/helpers/isObject'); +var getIteratorMethod = require('es-abstract/helpers/getIteratorMethod'); + +var iterHelperProto = require('../IteratorHelperPrototype'); + +var SLOT = require('internal-slot'); + +module.exports = function concat() { + if (this instanceof concat) { + throw new $TypeError('`Iterator.concat` is not a constructor'); + } + + var iterables = []; // step 1 + + forEach(arguments, function (item) { // step 2 + if (!isObject(item)) { + throw new $TypeError('`Iterator.concat` requires all arguments to be objects'); // step 2.1 + } + // var method = GetMethod(item, Symbol.iterator); // step 2.2 + var method = getIteratorMethod( + { + AdvanceStringIndex: AdvanceStringIndex, + GetMethod: GetMethod, + IsArray: IsArray + }, + item + ); + if (typeof method === 'undefined') { + throw new $TypeError('`Iterator.concat` requires all arguments to be iterable'); // step 2.3 + } + iterables[iterables.length] = { '[[OpenMethod]]': method, '[[Iterable]]': item }; // step 2.4 + }); + + var sentinel = {}; + var iterablesIndex = 0; + var iteratorRecord; + var innerAlive = false; + var openIters = []; // track the current open iterator for return() forwarding + var closure = function () { // step 3 + if (iterablesIndex >= iterables.length) { + return sentinel; + } + var iterable = iterables[iterablesIndex]; // step 3.a + if (!innerAlive) { + var iter = Call(iterable['[[OpenMethod]]'], iterable['[[Iterable]]']); // step 3.a.i + if (!isObject(iter)) { + throw new $TypeError('`Iterator.concat` iterator method did not return an object'); // step 3.a.ii + } + iteratorRecord = GetIteratorDirect(iter); // step 3.a.iii + openIters[0] = iteratorRecord; // track the open iterator + innerAlive = true; // step 3.a.iv + } + + if (innerAlive) { // step 3.a.v + var innerValue = IteratorStepValue(iteratorRecord); // step 3.a.v.1 + if (iteratorRecord['[[Done]]']) { // step 3.a.v.2 + innerAlive = false; // step 3.a.v.2.a + openIters.length = 0; // no open iterator now + } else { // step 3.a.v.3 + // 1. Let completion be Completion(Yield(innerValue)). + return innerValue; // step 3.a.v.3.a + } + } + + iterablesIndex += 1; + return closure(); + }; + + var closeIfAbrupt = function (abruptCompletion) { + if (!(abruptCompletion instanceof CompletionRecord)) { + throw new $TypeError('`abruptCompletion` must be a Completion Record'); + } + iterablesIndex = iterables.length; + innerAlive = false; + if (openIters.length > 0) { + var toClose = openIters.slice(); + openIters.length = 0; // prevent double-closing + IteratorCloseAll(toClose, abruptCompletion); + } + }; + + SLOT.set(closure, '[[Sentinel]]', sentinel); // for the userland implementation + SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation + + var gen = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 5 + SLOT.set(gen, '[[UnderlyingIterators]]', openIters); // step 6 - share the array reference + return gen; // step 7 +}; diff --git a/node_modules/es-iterator-helpers/Iterator.concat/index.js b/node_modules/es-iterator-helpers/Iterator.concat/index.js new file mode 100644 index 0000000000000000000000000000000000000000..4c50b07c4ad18ee598917d4aa4447ced9d4f6137 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.concat/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var callBind = require('call-bind'); +var define = require('define-properties'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var bound = callBind(getPolyfill(), null); + +define(bound, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = bound; diff --git a/node_modules/es-iterator-helpers/Iterator.concat/polyfill.js b/node_modules/es-iterator-helpers/Iterator.concat/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..25bbab6aa8399782388004d60bf4f41ffecea4b3 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.concat/polyfill.js @@ -0,0 +1,9 @@ +'use strict'; + +var implementation = require('./implementation'); + +var $Iterator = require('../Iterator'); + +module.exports = function getPolyfill() { + return typeof $Iterator.concat === 'function' ? $Iterator.concat : implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.concat/shim.js b/node_modules/es-iterator-helpers/Iterator.concat/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..a45f0d8c3935f0e78db6d261f21420564bc38552 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.concat/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var getPolyfill = require('./polyfill'); +var define = require('define-properties'); + +var getIteratorPolyfill = require('../Iterator/polyfill'); + +module.exports = function shimIteratorConcat() { + var $Iterator = getIteratorPolyfill(); + var polyfill = getPolyfill(); + define( + $Iterator, + { concat: polyfill }, + { concat: function () { return $Iterator.concat !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.from/auto.js b/node_modules/es-iterator-helpers/Iterator.from/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.from/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.from/implementation.js b/node_modules/es-iterator-helpers/Iterator.from/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..c68be5738f2b522bb86bd151e1b82f8c7f7e9ee5 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.from/implementation.js @@ -0,0 +1,32 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var GetIteratorFlattenable = require('es-abstract/2025/GetIteratorFlattenable'); +var OrdinaryHasInstance = require('es-abstract/2025/OrdinaryHasInstance'); +var OrdinaryObjectCreate = require('es-abstract/2025/OrdinaryObjectCreate'); + +var $Iterator = require('../Iterator/polyfill')(); +var $WrapForValidIteratorPrototype = require('../WrapForValidIteratorPrototype'); + +var SLOT = require('internal-slot'); + +module.exports = function from(O) { + if (this instanceof from) { + throw new $TypeError('`Iterator.from` is not a constructor'); + } + + var iteratorRecord = GetIteratorFlattenable(O, 'ITERATE-STRING-PRIMITIVES'); // step 1 + + var hasInstance = OrdinaryHasInstance($Iterator, iteratorRecord['[[Iterator]]']); // step 2 + + if (hasInstance) { // step 3 + return iteratorRecord['[[Iterator]]']; // step 3.a + } + + var wrapper = OrdinaryObjectCreate($WrapForValidIteratorPrototype); // , ['[[Iterated]]']); // step 4 + + SLOT.set(wrapper, '[[Iterated]]', iteratorRecord); // step 5 + + return wrapper; // step 6 +}; diff --git a/node_modules/es-iterator-helpers/Iterator.from/index.js b/node_modules/es-iterator-helpers/Iterator.from/index.js new file mode 100644 index 0000000000000000000000000000000000000000..4c50b07c4ad18ee598917d4aa4447ced9d4f6137 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.from/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var callBind = require('call-bind'); +var define = require('define-properties'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var bound = callBind(getPolyfill(), null); + +define(bound, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = bound; diff --git a/node_modules/es-iterator-helpers/Iterator.from/polyfill.js b/node_modules/es-iterator-helpers/Iterator.from/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..2413acfbf99343ac2fccc379c8ceb495c0e6e6cd --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.from/polyfill.js @@ -0,0 +1,9 @@ +'use strict'; + +var implementation = require('./implementation'); + +var $Iterator = require('../Iterator'); + +module.exports = function getPolyfill() { + return typeof $Iterator.from === 'function' ? $Iterator.from : implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.from/shim.js b/node_modules/es-iterator-helpers/Iterator.from/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..6d43cd6556da0e1ae1dca6e2db50d76c5362d673 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.from/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var getPolyfill = require('./polyfill'); +var define = require('define-properties'); + +var getIteratorPolyfill = require('../Iterator/polyfill'); + +module.exports = function shimIteratorFrom() { + var $Iterator = getIteratorPolyfill(); + var polyfill = getPolyfill(); + define( + $Iterator, + { from: polyfill }, + { from: function () { return $Iterator.from !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.constructor/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype.constructor/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.constructor/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.constructor/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype.constructor/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..70987b2bc2b5759bf8f9ff4de6a40d6a7fa375b6 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.constructor/implementation.js @@ -0,0 +1,5 @@ +'use strict'; + +var $Iterator = require('../Iterator/polyfill')(); + +module.exports = $Iterator; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.constructor/index.js b/node_modules/es-iterator-helpers/Iterator.prototype.constructor/index.js new file mode 100644 index 0000000000000000000000000000000000000000..a6b0aecf1d09bc36fd0acee98004f7bd1736e0a6 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.constructor/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var bind = require('function-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = bind.call(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.constructor/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype.constructor/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..382fb9b6a45f316dedaef6d020645616b6becded --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.constructor/polyfill.js @@ -0,0 +1,7 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + return implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.constructor/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype.constructor/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..c1eb349f33585539b7475381de5a13cef1586483 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.constructor/shim.js @@ -0,0 +1,20 @@ +'use strict'; + +var define = require('define-properties'); +var getPolyfill = require('./polyfill'); + +var $IteratorPrototype = require('../Iterator.prototype/implementation'); + +var $Iterator = require('./implementation'); + +module.exports = function shimIteratorPrototypeCtor() { + var polyfill = getPolyfill(); + + define( + $IteratorPrototype, + { constructor: $Iterator }, + { constructor: function () { return $Iterator.constructor !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.drop/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype.drop/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.drop/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.drop/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype.drop/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..6abfdc99f7f145b9b991eb6de35e4cb70d6b7d64 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.drop/implementation.js @@ -0,0 +1,93 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); + +var CompletionRecord = require('es-abstract/2025/CompletionRecord'); +var CreateIteratorFromClosure = require('es-abstract/2025/CreateIteratorFromClosure'); +var GetIteratorDirect = require('es-abstract/2025/GetIteratorDirect'); +var IteratorClose = require('es-abstract/2025/IteratorClose'); +var IteratorStep = require('es-abstract/2025/IteratorStep'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); +var ToIntegerOrInfinity = require('es-abstract/2025/ToIntegerOrInfinity'); +var ToNumber = require('es-abstract/2025/ToNumber'); + +var iterHelperProto = require('../IteratorHelperPrototype'); + +var isObject = require('es-abstract/helpers/isObject'); +var isNaN = require('es-abstract/helpers/isNaN'); + +var SLOT = require('internal-slot'); + +module.exports = function drop(limit) { + if (this instanceof drop) { + throw new $TypeError('`drop` is not a constructor'); + } + + var O = this; // step 1 + if (!isObject(O)) { + throw new $TypeError('`this` value must be an Object'); // step 2 + } + + var numLimit = ToNumber(limit); // step 2 + if (isNaN(numLimit)) { + throw new $RangeError('`limit` must be a non-NaN number'); // step 3 + } + + var iterated = GetIteratorDirect(O); // step 4 + + var integerLimit = ToIntegerOrInfinity(numLimit); // step 4 + if (integerLimit < 0) { + throw new $RangeError('`limit` must be a >= 0'); // step 5 + } + + var closeIfAbrupt = function (abruptCompletion) { + if (!(abruptCompletion instanceof CompletionRecord)) { + throw new $TypeError('`abruptCompletion` must be a Completion Record'); + } + IteratorClose( + iterated, + abruptCompletion + ); + }; + + var sentinel = {}; + var remaining = integerLimit; // step 6.a + var closure = function () { // step 6 + var next; + while (remaining > 0) { // step 6.b + if (remaining !== Infinity) { // step 6.b.i + remaining -= 1; // step 6.b.i.1 + } + + next = IteratorStep(iterated); // step 6.b.ii + if (!next) { + // return void undefined; // step 6.b.iii + return sentinel; + } + } + // while (true) { // step 6.c + try { + var value = IteratorStepValue(iterated); // step 6.b.i + if (iterated['[[Done]]']) { + return sentinel; // step 6.b.ii + } + return value; + } catch (e) { + // close iterator // step 6.c.icv + closeIfAbrupt(ThrowCompletion(e)); + throw e; + } + // } + // return void undefined; + }; + SLOT.set(closure, '[[Sentinel]]', sentinel); // for the userland implementation + SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation + + var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 4 + + SLOT.set(result, '[[UnderlyingIterators]]', [iterated]); // step 5 + + return result; // step 6 +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.drop/index.js b/node_modules/es-iterator-helpers/Iterator.prototype.drop/index.js new file mode 100644 index 0000000000000000000000000000000000000000..751f5fbcd6066e19a6586c91ce09d75bfa0f79bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.drop/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var callBind = require('call-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = callBind(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.drop/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype.drop/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..b93a918c67fcfa379264120b7fb1f21b7b85b059 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.drop/polyfill.js @@ -0,0 +1,15 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + if (typeof Iterator === 'function' && typeof Iterator.prototype.drop === 'function') { + try { + // https://issues.chromium.org/issues/336839115 + Iterator.prototype.drop.call({ next: null }, 0).next(); + } catch (e) { + return Iterator.prototype.drop; + } + } + return implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.drop/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype.drop/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..b55a4e881d56e7f615f683d82b54816da1bdb48b --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.drop/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var getPolyfill = require('./polyfill'); + +var $IteratorPrototype = require('../Iterator.prototype/implementation'); + +module.exports = function shimIteratorPrototypeDrop() { + var polyfill = getPolyfill(); + + define( + $IteratorPrototype, + { drop: polyfill }, + { drop: function () { return $IteratorPrototype.drop !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.every/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype.every/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.every/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.every/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype.every/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..00cdeb5abca3a19c6e9ed371004f24c298d82078 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.every/implementation.js @@ -0,0 +1,59 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('es-abstract/2025/Call'); +var GetIteratorDirect = require('es-abstract/2025/GetIteratorDirect'); +var IsCallable = require('es-abstract/2025/IsCallable'); +var IteratorClose = require('es-abstract/2025/IteratorClose'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); +var NormalCompletion = require('es-abstract/2025/NormalCompletion'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); +var ToBoolean = require('es-abstract/2025/ToBoolean'); + +var isObject = require('es-abstract/helpers/isObject'); + +module.exports = function every(predicate) { + if (this instanceof every) { + throw new $TypeError('`every` is not a constructor'); + } + + var O = this; // step 1 + if (!isObject(O)) { + throw new $TypeError('`this` value must be an Object'); // step 2 + } + + if (!IsCallable(predicate)) { + throw new $TypeError('`predicate` must be a function'); // step 3 + } + + var iterated = GetIteratorDirect(O); // step 4 + + var counter = 0; // step 5 + + // eslint-disable-next-line no-constant-condition + while (true) { // step 6 + var value = IteratorStepValue(iterated); // step 6.a + if (iterated['[[Done]]']) { + return true; // step 6.b + } + var result; + try { + result = Call(predicate, void undefined, [value, counter]); // step 6.c + } catch (e) { + // close iterator // step 6.d + IteratorClose( + iterated, + ThrowCompletion(e) + ); + } finally { + counter += 1; // step 6.f + } + if (!ToBoolean(result)) { + return IteratorClose( + iterated, + NormalCompletion(false) + ); // step 6.e + } + } +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.every/index.js b/node_modules/es-iterator-helpers/Iterator.prototype.every/index.js new file mode 100644 index 0000000000000000000000000000000000000000..751f5fbcd6066e19a6586c91ce09d75bfa0f79bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.every/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var callBind = require('call-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = callBind(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.every/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype.every/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..db66f3e2074310c4bbd9f24382cbf73f4207b78f --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.every/polyfill.js @@ -0,0 +1,9 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + return typeof Iterator === 'function' && typeof Iterator.prototype.every === 'function' + ? Iterator.prototype.every + : implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.every/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype.every/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..eeb323861951675ddb06598da48f0d66eebc6f40 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.every/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var getPolyfill = require('./polyfill'); + +var $IteratorPrototype = require('../Iterator.prototype/implementation'); + +module.exports = function shimIteratorPrototypeEvery() { + var polyfill = getPolyfill(); + + define( + $IteratorPrototype, + { every: polyfill }, + { every: function () { return $IteratorPrototype.every !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.filter/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype.filter/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.filter/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.filter/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype.filter/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..59c590fb1047c8aaf650d8f7be637b2e6a96af3b --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.filter/implementation.js @@ -0,0 +1,81 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('es-abstract/2025/Call'); +var CompletionRecord = require('es-abstract/2025/CompletionRecord'); +var CreateIteratorFromClosure = require('es-abstract/2025/CreateIteratorFromClosure'); +var GetIteratorDirect = require('es-abstract/2025/GetIteratorDirect'); +var IsCallable = require('es-abstract/2025/IsCallable'); +var IteratorClose = require('es-abstract/2025/IteratorClose'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); +var ToBoolean = require('es-abstract/2025/ToBoolean'); + +var isObject = require('es-abstract/helpers/isObject'); + +var iterHelperProto = require('../IteratorHelperPrototype'); + +var SLOT = require('internal-slot'); + +module.exports = function filter(predicate) { + if (this instanceof filter) { + throw new $TypeError('`filter` is not a constructor'); + } + + var O = this; // step 1 + if (!isObject(O)) { + throw new $TypeError('`this` value must be an Object'); // step 2 + } + + if (!IsCallable(predicate)) { + throw new $TypeError('`predicate` must be a function'); // step 3 + } + + var iterated = GetIteratorDirect(O); // step 4 + + var closeIfAbrupt = function (abruptCompletion) { + if (!(abruptCompletion instanceof CompletionRecord)) { + throw new $TypeError('`abruptCompletion` must be a Completion Record'); + } + IteratorClose( + iterated, + abruptCompletion + ); + }; + + var sentinel = {}; + var counter = 0; // step 6.a + var closure = function () { + // eslint-disable-next-line no-constant-condition + while (true) { // step 6.b + var value = IteratorStepValue(iterated); // step 6.b.i + if (iterated['[[Done]]']) { + return sentinel; // step 6.b.ii + } + + var selected; + try { + selected = Call(predicate, void undefined, [value, counter]); // step 6.b.iv + // yield mapped // step 6.b.vi + if (ToBoolean(selected)) { + return value; + } + } catch (e) { + // close iterator // step 6.b.v, 6.b.vii + closeIfAbrupt(ThrowCompletion(e)); + throw e; + } finally { + counter += 1; // step 6.b.viii + } + } + }; + SLOT.set(closure, '[[Sentinel]]', sentinel); // for the userland implementation + SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation + + var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 7 + + SLOT.set(result, '[[UnderlyingIterators]]', [iterated]); // step 8 + + return result; // step 9 +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.filter/index.js b/node_modules/es-iterator-helpers/Iterator.prototype.filter/index.js new file mode 100644 index 0000000000000000000000000000000000000000..751f5fbcd6066e19a6586c91ce09d75bfa0f79bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.filter/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var callBind = require('call-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = callBind(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.filter/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype.filter/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..88da9ab399ffda457aff059bd5a65081f62680c5 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.filter/polyfill.js @@ -0,0 +1,15 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + if (typeof Iterator === 'function' && typeof Iterator.prototype.filter === 'function') { + try { + // https://issues.chromium.org/issues/336839115 + Iterator.prototype.filter.call({ next: null }, function () {}).next(); + } catch (e) { + return Iterator.prototype.filter; + } + } + return implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.filter/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype.filter/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..a5be3b9d0dad2497231e931da4b244a062d41ffb --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.filter/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var getPolyfill = require('./polyfill'); + +var $IteratorPrototype = require('../Iterator.prototype/implementation'); + +module.exports = function shimIteratorPrototypeFilter() { + var polyfill = getPolyfill(); + + define( + $IteratorPrototype, + { filter: polyfill }, + { filter: function () { return $IteratorPrototype.filter !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.find/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype.find/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.find/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.find/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype.find/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..00890d0cb1a222258d94628fe9e531c4c25f59a3 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.find/implementation.js @@ -0,0 +1,60 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('es-abstract/2025/Call'); +var GetIteratorDirect = require('es-abstract/2025/GetIteratorDirect'); +var IsCallable = require('es-abstract/2025/IsCallable'); +var IteratorClose = require('es-abstract/2025/IteratorClose'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); +var NormalCompletion = require('es-abstract/2025/NormalCompletion'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); +var ToBoolean = require('es-abstract/2025/ToBoolean'); + +var isObject = require('es-abstract/helpers/isObject'); + +module.exports = function find(predicate) { + if (this instanceof find) { + throw new $TypeError('`find` is not a constructor'); + } + + var O = this; // step 1 + + if (!isObject(O)) { + throw new $TypeError('`this` value must be an Object'); // step 2 + } + + if (!IsCallable(predicate)) { + throw new $TypeError('`predicate` must be a function'); // step 3 + } + + var iterated = GetIteratorDirect(O); // step 4 + + var counter = 0; // step 5 + + // eslint-disable-next-line no-constant-condition + while (true) { // step 6 + var value = IteratorStepValue(iterated); // step 6.a + if (iterated['[[Done]]']) { + return void undefined; // step 6.b + } + var result; + try { + result = Call(predicate, void undefined, [value, counter]); // step 6.c + } catch (e) { + // close iterator // step 6.d + IteratorClose( + iterated, + ThrowCompletion(e) + ); + } finally { + counter += 1; // step 6.f + } + if (ToBoolean(result)) { + return IteratorClose( + iterated, + NormalCompletion(value) + ); // step 6.e + } + } +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.find/index.js b/node_modules/es-iterator-helpers/Iterator.prototype.find/index.js new file mode 100644 index 0000000000000000000000000000000000000000..751f5fbcd6066e19a6586c91ce09d75bfa0f79bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.find/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var callBind = require('call-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = callBind(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.find/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype.find/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..ce491554d483f18def35bcdd9b4ede0ad8be06e0 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.find/polyfill.js @@ -0,0 +1,9 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + return typeof Iterator === 'function' && typeof Iterator.prototype.find === 'function' + ? Iterator.prototype.find + : implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.find/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype.find/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..d383b6e6a5e486cb216733567e5da71b2e7994fc --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.find/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var getPolyfill = require('./polyfill'); + +var $IteratorPrototype = require('../Iterator.prototype/implementation'); + +module.exports = function shimIteratorPrototypeFind() { + var polyfill = getPolyfill(); + + define( + $IteratorPrototype, + { find: polyfill }, + { find: function () { return $IteratorPrototype.find !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..679b7125c53f6be39756ad4c31c76912dbd5ff7b --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/implementation.js @@ -0,0 +1,119 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('es-abstract/2025/Call'); +var CompletionRecord = require('es-abstract/2025/CompletionRecord'); +var CreateIteratorFromClosure = require('es-abstract/2025/CreateIteratorFromClosure'); +var GetIteratorDirect = require('es-abstract/2025/GetIteratorDirect'); +var GetIteratorFlattenable = require('es-abstract/2025/GetIteratorFlattenable'); +var IsCallable = require('es-abstract/2025/IsCallable'); +var IteratorClose = require('es-abstract/2025/IteratorClose'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); + +var isObject = require('es-abstract/helpers/isObject'); + +var iterHelperProto = require('../IteratorHelperPrototype'); + +var SLOT = require('internal-slot'); + +module.exports = function flatMap(mapper) { + if (this instanceof flatMap) { + throw new $TypeError('`flatMap` is not a constructor'); + } + + var O = this; // step 1 + if (!isObject(O)) { + throw new $TypeError('`this` value must be an Object'); // step 2 + } + + if (!IsCallable(mapper)) { + throw new $TypeError('`mapper` must be a function'); // step 3 + } + + var iterated = GetIteratorDirect(O); // step 4 + + var sentinel = { sentinel: true }; + var innerIterator = sentinel; + + var closeIfAbrupt = function (abruptCompletion) { + if (!(abruptCompletion instanceof CompletionRecord)) { + throw new $TypeError('`abruptCompletion` must be a Completion Record'); + } + try { + if (innerIterator !== sentinel) { + IteratorClose( + innerIterator, + abruptCompletion + ); + } + } finally { + innerIterator = sentinel; + + IteratorClose( + iterated, + abruptCompletion + ); + } + }; + + var counter = 0; // step 5.a + var innerAlive = false; + var closure = function () { + // while (true) { // step 5.b + if (innerIterator === sentinel) { + var value = IteratorStepValue(iterated); // step 5.b.i + if (iterated['[[Done]]']) { + innerAlive = false; + innerIterator = sentinel; + // return void undefined; // step 5.b.ii + return sentinel; + } + } + + if (innerIterator === sentinel) { + innerAlive = true; // step 5.b.viii + try { + var mapped = Call(mapper, void undefined, [value, counter]); // step 5.b.iv + // yield mapped // step 5.b.vi + innerIterator = GetIteratorFlattenable(mapped, 'REJECT-PRIMITIVES'); // step 5.b.vi + } catch (e) { + innerAlive = false; + innerIterator = sentinel; + closeIfAbrupt(ThrowCompletion(e)); // steps 5.b.v, 5.b.vii + } finally { + counter += 1; // step 5.b.x + } + } + // while (innerAlive) { // step 5.b.ix + if (innerAlive) { + // step 5.b.ix.4 + var innerValue; + try { + innerValue = IteratorStepValue(innerIterator); // step 5.b.ix.4.a + } catch (e) { + innerAlive = false; + innerIterator = sentinel; + closeIfAbrupt(ThrowCompletion(e)); // step 5.b.ix.4.b + } + if (innerIterator['[[Done]]']) { + innerAlive = false; + innerIterator = sentinel; + return closure(); + } + return innerValue; // step 5.b.ix.4.c + } + // } + // return void undefined; + return sentinel; + }; + SLOT.set(closure, '[[Sentinel]]', sentinel); // for the userland implementation + SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation + + var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 7 + + SLOT.set(result, '[[UnderlyingIterators]]', [iterated]); // step 8 + + return result; // step 9 +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/index.js b/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/index.js new file mode 100644 index 0000000000000000000000000000000000000000..751f5fbcd6066e19a6586c91ce09d75bfa0f79bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var callBind = require('call-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = callBind(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..2966cdfca4a5cc4c2f1bb53de00cb706bd9689c8 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/polyfill.js @@ -0,0 +1,15 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + if (typeof Iterator === 'function' && typeof Iterator.prototype.flatMap === 'function') { + try { + // https://issues.chromium.org/issues/336839115 + Iterator.prototype.flatMap.call({ next: null }, function () {}).next(); + } catch (e) { + return Iterator.prototype.flatMap; + } + } + return implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..6a546ddba089822440c337d15a69a1e4f102f514 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var getPolyfill = require('./polyfill'); + +var $IteratorPrototype = require('../Iterator.prototype/implementation'); + +module.exports = function shimIteratorPrototypeFlatMap() { + var polyfill = getPolyfill(); + + define( + $IteratorPrototype, + { flatMap: polyfill }, + { flatMap: function () { return $IteratorPrototype.flatMap !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.forEach/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype.forEach/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.forEach/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.forEach/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype.forEach/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..5259421a09bb6f64c03981c849f4f3434975c693 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.forEach/implementation.js @@ -0,0 +1,50 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('es-abstract/2025/Call'); +var GetIteratorDirect = require('es-abstract/2025/GetIteratorDirect'); +var IsCallable = require('es-abstract/2025/IsCallable'); +var IteratorClose = require('es-abstract/2025/IteratorClose'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); + +var isObject = require('es-abstract/helpers/isObject'); + +module.exports = function forEach(fn) { + if (this instanceof forEach) { + throw new $TypeError('`forEach` is not a constructor'); + } + + var O = this; // step 1 + if (!isObject(O)) { + throw new $TypeError('`this` value must be an Object'); // step 2 + } + + if (!IsCallable(fn)) { + throw new $TypeError('`fn` must be a function'); // step 3 + } + + var iterated = GetIteratorDirect(O); // step 4 + + var counter = 0; // step 5 + + // eslint-disable-next-line no-constant-condition + while (true) { // step 6 + var value = IteratorStepValue(iterated); // step 6.a + if (iterated['[[Done]]']) { + return void undefined; // step 6.b + } + try { + Call(fn, void undefined, [value, counter]); // step 6.c + } catch (e) { + IteratorClose( + iterated, + ThrowCompletion(e) + ); // steps 6.d + throw e; + } finally { + counter += 1; // step 6.e + } + } +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.forEach/index.js b/node_modules/es-iterator-helpers/Iterator.prototype.forEach/index.js new file mode 100644 index 0000000000000000000000000000000000000000..751f5fbcd6066e19a6586c91ce09d75bfa0f79bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.forEach/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var callBind = require('call-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = callBind(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.forEach/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype.forEach/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..ad11ec76871ddf9b18123e3fb1b6f0981122bba1 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.forEach/polyfill.js @@ -0,0 +1,9 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + return typeof Iterator === 'function' && typeof Iterator.prototype.forEach === 'function' + ? Iterator.prototype.forEach + : implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.forEach/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype.forEach/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..138f61805ea39f221ac5a75a746b31462f43cd11 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.forEach/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var getPolyfill = require('./polyfill'); + +var $IteratorPrototype = require('../Iterator.prototype/implementation'); + +module.exports = function shimIteratorPrototypeForEach() { + var polyfill = getPolyfill(); + + define( + $IteratorPrototype, + { forEach: polyfill }, + { forEach: function () { return $IteratorPrototype.forEach !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.map/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype.map/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.map/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.map/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype.map/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..c3b6495cde83de06ab5103c94bcf4d203bd47b16 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.map/implementation.js @@ -0,0 +1,77 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('es-abstract/2025/Call'); +var CompletionRecord = require('es-abstract/2025/CompletionRecord'); +var CreateIteratorFromClosure = require('es-abstract/2025/CreateIteratorFromClosure'); +var GetIteratorDirect = require('es-abstract/2025/GetIteratorDirect'); +var IsCallable = require('es-abstract/2025/IsCallable'); +var IteratorClose = require('es-abstract/2025/IteratorClose'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); + +var isObject = require('es-abstract/helpers/isObject'); + +var iterHelperProto = require('../IteratorHelperPrototype'); + +var SLOT = require('internal-slot'); + +module.exports = function map(mapper) { + if (this instanceof map) { + throw new $TypeError('`map` is not a constructor'); + } + + var O = this; // step 1 + if (!isObject(O)) { + throw new $TypeError('`this` value must be an Object'); // step 2 + } + + if (!IsCallable(mapper)) { + throw new $TypeError('`mapper` must be a function'); // step 3 + } + + var iterated = GetIteratorDirect(O); // step 4 + + var closeIfAbrupt = function (abruptCompletion) { + if (!(abruptCompletion instanceof CompletionRecord)) { + throw new $TypeError('`abruptCompletion` must be a Completion Record'); + } + IteratorClose( + iterated, + abruptCompletion + ); + }; + + var sentinel = {}; + var counter = 0; // step 6.a + var closure = function () { + // while (true) { // step 6.b + var value = IteratorStepValue(iterated); // step 6.b.i + if (iterated['[[Done]]']) { + return sentinel; // step 6.b.ii + } + + var mapped; + try { + mapped = Call(mapper, void undefined, [value, counter]); // step 6.b.iii + // yield mapped // step 6.b.vi + return mapped; + } catch (e) { + // close iterator // step 6.b.v, 6.b.vii + closeIfAbrupt(ThrowCompletion(e)); + throw e; + } finally { + counter += 1; // step 6.b.viii + } + // } + }; + SLOT.set(closure, '[[Sentinel]]', sentinel); // for the userland implementation + SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation + + var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 7 + + SLOT.set(result, '[[UnderlyingIterators]]', [iterated]); // step 8 + + return result; // step 9 +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.map/index.js b/node_modules/es-iterator-helpers/Iterator.prototype.map/index.js new file mode 100644 index 0000000000000000000000000000000000000000..751f5fbcd6066e19a6586c91ce09d75bfa0f79bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.map/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var callBind = require('call-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = callBind(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.map/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype.map/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..1b4a0f1801bade742bd1066e35f8581a326a5ed7 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.map/polyfill.js @@ -0,0 +1,15 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + if (typeof Iterator === 'function' && typeof Iterator.prototype.map === 'function') { + try { + // https://issues.chromium.org/issues/336839115 + Iterator.prototype.map.call({ next: null }, function () {}).next(); + } catch (e) { + return Iterator.prototype.map; + } + } + return implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.map/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype.map/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..3a4e2254abf41405087b734d90d7f019b8b0be75 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.map/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var getPolyfill = require('./polyfill'); + +var $IteratorPrototype = require('../Iterator.prototype/implementation'); + +module.exports = function shimIteratorPrototypeMap() { + var polyfill = getPolyfill(); + + define( + $IteratorPrototype, + { map: polyfill }, + { map: function () { return $IteratorPrototype.map !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.reduce/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype.reduce/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.reduce/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.reduce/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype.reduce/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..3b8be085f8bb3c46b7093e52c0266cdc766561ac --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.reduce/implementation.js @@ -0,0 +1,61 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('es-abstract/2025/Call'); +var GetIteratorDirect = require('es-abstract/2025/GetIteratorDirect'); +var IsCallable = require('es-abstract/2025/IsCallable'); +var IteratorClose = require('es-abstract/2025/IteratorClose'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); + +var isObject = require('es-abstract/helpers/isObject'); + +module.exports = function reduce(reducer) { + if (this instanceof reduce) { + throw new $TypeError('`reduce` is not a constructor'); + } + + var O = this; // step 1 + if (!isObject(O)) { + throw new $TypeError('`this` value must be an Object'); // step 2 + } + + if (!IsCallable(reducer)) { + throw new $TypeError('`reducer` must be a function'); // step 3 + } + + var iterated = GetIteratorDirect(O); // step 4 + + var accumulator; + var counter; + if (arguments.length < 2) { // step 6 + accumulator = IteratorStepValue(iterated); // step 6.a + if (iterated['[[Done]]']) { + throw new $TypeError('Reduce of empty iterator with no initial value'); + } + counter = 1; + } else { // step 7 + accumulator = arguments[1]; // step 7.a + counter = 0; + } + + // eslint-disable-next-line no-constant-condition + while (true) { // step 8 + var value = IteratorStepValue(iterated); // step 8.a + if (iterated['[[Done]]']) { + return accumulator; // step 8.b + } + try { + var result = Call(reducer, void undefined, [accumulator, value, counter]); // step 8.d + accumulator = result; // step 8.f + } catch (e) { + // close iterator // step 8.e + IteratorClose( + iterated, + ThrowCompletion(e) + ); + } + counter += 1; // step 8.g + } +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.reduce/index.js b/node_modules/es-iterator-helpers/Iterator.prototype.reduce/index.js new file mode 100644 index 0000000000000000000000000000000000000000..751f5fbcd6066e19a6586c91ce09d75bfa0f79bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.reduce/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var callBind = require('call-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = callBind(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.reduce/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype.reduce/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..9597e1a5b70ed7fbc61f273adc27b0b87fd79555 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.reduce/polyfill.js @@ -0,0 +1,9 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + return typeof Iterator === 'function' && typeof Iterator.prototype.reduce === 'function' + ? Iterator.prototype.reduce + : implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.reduce/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype.reduce/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..ecb5b7265e3d3687449e2e83b1839db3d6c17be7 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.reduce/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var getPolyfill = require('./polyfill'); + +var $IteratorPrototype = require('../Iterator.prototype/implementation'); + +module.exports = function shimIteratorPrototypeReduce() { + var polyfill = getPolyfill(); + + define( + $IteratorPrototype, + { reduce: polyfill }, + { reduce: function () { return $IteratorPrototype.reduce !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.some/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype.some/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.some/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.some/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype.some/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..c015f9ca47c04cb6f6d732d0b6febb48dbdee09d --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.some/implementation.js @@ -0,0 +1,59 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('es-abstract/2025/Call'); +var GetIteratorDirect = require('es-abstract/2025/GetIteratorDirect'); +var IsCallable = require('es-abstract/2025/IsCallable'); +var IteratorClose = require('es-abstract/2025/IteratorClose'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); +var NormalCompletion = require('es-abstract/2025/NormalCompletion'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); +var ToBoolean = require('es-abstract/2025/ToBoolean'); + +var isObject = require('es-abstract/helpers/isObject'); + +module.exports = function some(predicate) { + if (this instanceof some) { + throw new $TypeError('`some` is not a constructor'); + } + + var O = this; // step 1 + if (!isObject(O)) { + throw new $TypeError('`this` value must be an Object'); // step 2 + } + + if (!IsCallable(predicate)) { + throw new $TypeError('`predicate` must be a function'); // step 3 + } + + var iterated = GetIteratorDirect(O); // step 4 + + var counter = 0; // step 5 + + // eslint-disable-next-line no-constant-condition + while (true) { // step 6 + var value = IteratorStepValue(iterated); // step 6.a + if (iterated['[[Done]]']) { + return false; // step 6.b + } + var result; + try { + result = Call(predicate, void undefined, [value, counter]); // step 6.c + } catch (e) { + // close iterator // step 6.d + IteratorClose( + iterated, + ThrowCompletion(e) + ); + } finally { + counter += 1; // step 6.f + } + if (ToBoolean(result)) { + return IteratorClose( + iterated, + NormalCompletion(true) + ); // step 6.e + } + } +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.some/index.js b/node_modules/es-iterator-helpers/Iterator.prototype.some/index.js new file mode 100644 index 0000000000000000000000000000000000000000..751f5fbcd6066e19a6586c91ce09d75bfa0f79bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.some/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var callBind = require('call-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = callBind(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.some/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype.some/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..2e4c7af9bfdec62cc8d86d4b212bc8685ed138b9 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.some/polyfill.js @@ -0,0 +1,9 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + return typeof Iterator === 'function' && typeof Iterator.prototype.some === 'function' + ? Iterator.prototype.some + : implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.some/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype.some/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..44d39b9312f6574c106f3adc7fb2015b4e992ba6 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.some/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var getPolyfill = require('./polyfill'); + +var $IteratorPrototype = require('../Iterator.prototype/implementation'); + +module.exports = function shimIteratorPrototypeSome() { + var polyfill = getPolyfill(); + + define( + $IteratorPrototype, + { some: polyfill }, + { some: function () { return $IteratorPrototype.some !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.take/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype.take/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.take/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.take/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype.take/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..cd2e4eda71e47ce8a65fed542c0b998968260771 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.take/implementation.js @@ -0,0 +1,84 @@ +'use strict'; + +var $RangeError = require('es-errors/range'); +var $TypeError = require('es-errors/type'); + +var CompletionRecord = require('es-abstract/2025/CompletionRecord'); +var CreateIteratorFromClosure = require('es-abstract/2025/CreateIteratorFromClosure'); +var GetIteratorDirect = require('es-abstract/2025/GetIteratorDirect'); +var IteratorClose = require('es-abstract/2025/IteratorClose'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); +var NormalCompletion = require('es-abstract/2025/NormalCompletion'); +var ToIntegerOrInfinity = require('es-abstract/2025/ToIntegerOrInfinity'); +var ToNumber = require('es-abstract/2025/ToNumber'); + +var iterHelperProto = require('../IteratorHelperPrototype'); + +var isObject = require('es-abstract/helpers/isObject'); +var isNaN = require('es-abstract/helpers/isNaN'); + +var SLOT = require('internal-slot'); + +module.exports = function take(limit) { + if (this instanceof take) { + throw new $TypeError('`take` is not a constructor'); + } + + var O = this; // step 1 + if (!isObject(O)) { + throw new $TypeError('`this` value must be an Object'); // step 2 + } + + var numLimit = ToNumber(limit); // step 2 + if (isNaN(numLimit)) { + throw new $RangeError('`limit` must be a non-NaN number'); // step 3 + } + + var iterated = GetIteratorDirect(O); // step 4 + + var integerLimit = ToIntegerOrInfinity(numLimit); // step 7 + if (integerLimit < 0) { + throw new $RangeError('`limit` must be a >= 0'); // step 8 + } + + var closeIfAbrupt = function (abruptCompletion) { + if (!(abruptCompletion instanceof CompletionRecord)) { + throw new $TypeError('`abruptCompletion` must be a Completion Record'); + } + IteratorClose( + iterated, + abruptCompletion + ); + }; + + var sentinel = {}; + var remaining = integerLimit; // step 9.a + var closure = function () { // step 9 + // while (true) { // step 9.b + if (remaining === 0) { // step 9.b.i + return IteratorClose( // step 9.b.i.1 + iterated, + NormalCompletion(sentinel) + ); + } + if (remaining !== Infinity) { // step 9.b.ii + remaining -= 1; // step 9.b.ii.1 + } + + var value = IteratorStepValue(iterated); // step 6.b.i + if (iterated['[[Done]]']) { + return sentinel; // step 6.b.ii + } + + return value; // step 9.b.iv + // } + }; + SLOT.set(closure, '[[Sentinel]]', sentinel); // for the userland implementation + SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation + + var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 7 + + SLOT.set(result, '[[UnderlyingIterators]]', [iterated]); // step 8 + + return result; // step 9 +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.take/index.js b/node_modules/es-iterator-helpers/Iterator.prototype.take/index.js new file mode 100644 index 0000000000000000000000000000000000000000..751f5fbcd6066e19a6586c91ce09d75bfa0f79bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.take/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var callBind = require('call-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = callBind(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.take/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype.take/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..3d37a444da295eba272953849acc68bf423558fe --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.take/polyfill.js @@ -0,0 +1,9 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + return typeof Iterator === 'function' && typeof Iterator.prototype.take === 'function' + ? Iterator.prototype.take + : implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.take/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype.take/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..50bd5809978cf71c5b45bd8a2324e7b4376aab03 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.take/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var getPolyfill = require('./polyfill'); + +var $IteratorPrototype = require('../Iterator.prototype/implementation'); + +module.exports = function shimIteratorPrototypeTake() { + var polyfill = getPolyfill(); + + define( + $IteratorPrototype, + { take: polyfill }, + { take: function () { return $IteratorPrototype.take !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.toArray/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype.toArray/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.toArray/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.toArray/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype.toArray/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..c30b7d2489103cdf382f857cf8196611cc951bad --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.toArray/implementation.js @@ -0,0 +1,33 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var GetIteratorDirect = require('es-abstract/2025/GetIteratorDirect'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); + +var isObject = require('es-abstract/helpers/isObject'); + +module.exports = function toArray() { + if (this instanceof toArray) { + throw new $TypeError('`toArray` is not a constructor'); + } + + var O = this; // step 1 + + if (!isObject(O)) { + throw new $TypeError('`this` value must be an Object'); // step 2 + } + + var iterated = GetIteratorDirect(O); // step 3 + + var items = []; // step 4 + + // eslint-disable-next-line no-constant-condition + while (true) { // step 5 + var value = IteratorStepValue(iterated); // step 5.a + if (iterated['[[Done]]']) { + return items; // step 5.b + } + items[items.length] = value; // step 5.d + } +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.toArray/index.js b/node_modules/es-iterator-helpers/Iterator.prototype.toArray/index.js new file mode 100644 index 0000000000000000000000000000000000000000..751f5fbcd6066e19a6586c91ce09d75bfa0f79bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.toArray/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var callBind = require('call-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = callBind(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.toArray/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype.toArray/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..5bb92ba217ec1a035450d22a477faa0bd4346afd --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.toArray/polyfill.js @@ -0,0 +1,9 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + return typeof Iterator === 'function' && typeof Iterator.prototype.toArray === 'function' + ? Iterator.prototype.toArray + : implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype.toArray/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype.toArray/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..023aedf33468a811970a3f18b4c92150024557b2 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype.toArray/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var getPolyfill = require('./polyfill'); + +var $IteratorPrototype = require('../Iterator.prototype/implementation'); + +module.exports = function shimIteratorPrototypeToArray() { + var polyfill = getPolyfill(); + + define( + $IteratorPrototype, + { toArray: polyfill }, + { toArray: function () { return $IteratorPrototype.toArray !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype/auto.js b/node_modules/es-iterator-helpers/Iterator.prototype/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype/implementation.js b/node_modules/es-iterator-helpers/Iterator.prototype/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..f3fb6ca7451c5507f2818d25de810b57c1ab3019 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype/implementation.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('iterator.prototype'); diff --git a/node_modules/es-iterator-helpers/Iterator.prototype/index.js b/node_modules/es-iterator-helpers/Iterator.prototype/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e55ca0b28f41ea9d7b13cbf4d0586f94e7d5c5fb --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype/index.js @@ -0,0 +1,12 @@ +'use strict'; + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +module.exports = { + __proto__: getPolyfill(), + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype/polyfill.js b/node_modules/es-iterator-helpers/Iterator.prototype/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..382fb9b6a45f316dedaef6d020645616b6becded --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype/polyfill.js @@ -0,0 +1,7 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + return implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.prototype/shim.js b/node_modules/es-iterator-helpers/Iterator.prototype/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..7e3b95bb1e455b4fae22e1cbbe35af1d4571ca4b --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.prototype/shim.js @@ -0,0 +1,20 @@ +'use strict'; + +var getPolyfill = require('./polyfill'); +var define = require('define-properties'); + +var getIteratorPolyfill = require('../Iterator/polyfill'); + +module.exports = function shimIteratorFrom() { + var $Iterator = getIteratorPolyfill(); + var polyfill = getPolyfill(); + define( + $Iterator, + { prototype: polyfill }, + { prototype: function () { return $Iterator.prototype !== polyfill; } } + ); + + // TODO: install Symbol.toStringTag if needed, once https://bugs.chromium.org/p/chromium/issues/detail?id=1477372 is fixed? + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.zip/auto.js b/node_modules/es-iterator-helpers/Iterator.zip/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.zip/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.zip/implementation.js b/node_modules/es-iterator-helpers/Iterator.zip/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..ac5a96e89237cd35fa7a635b6f332dbb135f60bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.zip/implementation.js @@ -0,0 +1,123 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Get = require('es-abstract/2025/Get'); +var GetIterator = require('es-abstract/2025/GetIterator'); +var GetIteratorFlattenable = require('es-abstract/2025/GetIteratorFlattenable'); +var GetOptionsObject = require('../aos/GetOptionsObject'); +var IfAbruptCloseIterators = require('../aos/IfAbruptCloseIterators'); +var IteratorClose = require('es-abstract/2025/IteratorClose'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); +var IteratorZip = require('../aos/IteratorZip'); +var NormalCompletion = require('es-abstract/2025/NormalCompletion'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); + +var isObject = require('es-abstract/helpers/isObject'); + +module.exports = function zip(iterables) { + if (this instanceof zip) { + throw new $TypeError('`Iterator.zip` is not a constructor'); + } + + if (!isObject(iterables)) { + throw new $TypeError('`iterables` must be an Object'); // step 1 + } + + var options = GetOptionsObject(arguments.length > 1 ? arguments[1] : undefined); // step 2 + + var mode = Get(options, 'mode'); // step 3 + + if (typeof mode === 'undefined') { + mode = 'shortest'; // step 4 + } + + if (mode !== 'shortest' && mode !== 'longest' && mode !== 'strict') { + throw new $TypeError('`mode` must be one of "shortest", "longest", or "strict"'); // step 5 + } + + var paddingOption; // step 6 + + if (mode === 'longest') { + paddingOption = Get(options, 'padding'); // step 7 + if (typeof paddingOption !== 'undefined' && !isObject(paddingOption)) { + throw new $TypeError('`padding` option must be an Object'); // step 7.1 + } + } + + var iters = []; // step 8 + + var padding = []; // step 9 + + var inputIter = GetIterator(iterables, 'SYNC'); // step 10 + + var next; // = 'NOT-STARTED'; // step 11 + + while (!inputIter['[[Done]]']) { // step 12 + try { + next = IteratorStepValue(inputIter); // step 12.a + } catch (e) { + IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 12.b + } + + if (!inputIter['[[Done]]']) { // step 12.c + var iter; + try { + iter = GetIteratorFlattenable(next, 'REJECT-PRIMITIVES'); // step 12.c.i + } catch (e) { + IfAbruptCloseIterators(ThrowCompletion(e), [].concat(inputIter, iters)); // step 12.c.ii + } + iters[iters.length] = iter; // step 12.c.iii + } + } + + var iterCount = iters.length; // step 13 + + if (mode === 'longest') { // step 14 + if (typeof paddingOption === 'undefined') { // step 14.a + for (var i = 0; i < iterCount; i++) { // step 14.a.i + padding[padding.length] = void undefined; // step 14.a.i.1 + } + } else { // step 14.b + var paddingIter; + try { + paddingIter = GetIterator(paddingOption, 'SYNC'); // step 14.b.i + } catch (e) { + IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 14.b.ii + } + var usingIterator = true; // step 14.b.iii + for (var j = 0; j < iterCount; j++) { // step 14.b.iv + if (usingIterator) { // step 14.b.iv.1 + try { + next = IteratorStepValue(paddingIter); // step 14.b.iv.1.a + } catch (e) { + IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 14.b.iv.1.b + } + if (paddingIter['[[Done]]']) { // step 14.b.iv.1.c + usingIterator = false; // step 14.b.iv.1.c.i + } else { // step 14.b.iv.1.d + padding[padding.length] = next; // step 14.b.iv.1.d.i + } + } + if (!usingIterator) { + padding[padding.length] = void undefined; // step 14.b.iv.2 + } + } + + if (usingIterator) { // step 14.b.v + try { + IteratorClose(paddingIter, NormalCompletion(undefined)); // step 14.b.v.1 + } catch (e) { + IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 14.b.v.2 + } + } + } + } + + // eslint-disable-next-line no-sequences + var finishResults = (0, function (results) { // step 15 + return results; // step 15.1 + }); + + return IteratorZip(iters, mode, padding, finishResults); // step 16 +}; diff --git a/node_modules/es-iterator-helpers/Iterator.zip/index.js b/node_modules/es-iterator-helpers/Iterator.zip/index.js new file mode 100644 index 0000000000000000000000000000000000000000..76c40662de4ff69f1d275489df0bd4a6c16f5c29 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.zip/index.js @@ -0,0 +1,5 @@ +'use strict'; + +var getPolyfill = require('./polyfill'); + +module.exports = getPolyfill(); diff --git a/node_modules/es-iterator-helpers/Iterator.zip/polyfill.js b/node_modules/es-iterator-helpers/Iterator.zip/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..419d11826bb5efd8fc6c5475b79b3c64f1990796 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.zip/polyfill.js @@ -0,0 +1,9 @@ +'use strict'; + +var implementation = require('./implementation'); + +var $Iterator = require('../Iterator'); + +module.exports = function getPolyfill() { + return typeof $Iterator.zip === 'function' ? $Iterator.zip : implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.zip/shim.js b/node_modules/es-iterator-helpers/Iterator.zip/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..b9fff8db8fa4a9e87aefa7bd44d394d382cc340b --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.zip/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var getPolyfill = require('./polyfill'); +var define = require('define-properties'); + +var getIteratorPolyfill = require('../Iterator/polyfill'); + +module.exports = function shimIteratorZip() { + var $Iterator = getIteratorPolyfill(); + var polyfill = getPolyfill(); + define( + $Iterator, + { zip: polyfill }, + { zip: function () { return $Iterator.zip !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.zipKeyed/auto.js b/node_modules/es-iterator-helpers/Iterator.zipKeyed/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.zipKeyed/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator.zipKeyed/implementation.js b/node_modules/es-iterator-helpers/Iterator.zipKeyed/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..c1943894497b18c071c3603a057613448a0a00f8 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.zipKeyed/implementation.js @@ -0,0 +1,133 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('es-abstract/2025/Call'); +var CreateDataPropertyOrThrow = require('es-abstract/2025/CreateDataPropertyOrThrow'); +var Get = require('es-abstract/2025/Get'); +var GetIteratorFlattenable = require('es-abstract/2025/GetIteratorFlattenable'); +var GetOptionsObject = require('../aos/GetOptionsObject'); +var IfAbruptCloseIterators = require('../aos/IfAbruptCloseIterators'); +var IsAccessorDescriptor = require('es-abstract/2025/IsAccessorDescriptor'); +var IsDataDescriptor = require('es-abstract/2025/IsDataDescriptor'); +var IteratorZip = require('../aos/IteratorZip'); +var OrdinaryObjectCreate = require('es-abstract/2025/OrdinaryObjectCreate'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); +var ToPropertyDescriptor = require('es-abstract/2025/ToPropertyDescriptor'); + +var forEach = require('es-abstract/helpers/forEach'); +var isObject = require('es-abstract/helpers/isObject'); +var ownKeys = require('es-abstract/helpers/OwnPropertyKeys'); + +var gOPD = require('gopd'); + +module.exports = function zipKeyed(iterables) { + if (this instanceof zipKeyed) { + throw new $TypeError('`Iterator.zip` is not a constructor'); + } + + if (!isObject(iterables)) { + throw new $TypeError('`iterables` must be an Object'); // step 1 + } + + var options = GetOptionsObject(arguments.length > 1 ? arguments[1] : undefined); // step 2 + + var mode = Get(options, 'mode'); // step 3 + + if (typeof mode === 'undefined') { + mode = 'shortest'; // step 4 + } + + if (mode !== 'shortest' && mode !== 'longest' && mode !== 'strict') { + throw new $TypeError('`mode` must be one of "shortest", "longest", or "strict"'); // step 5 + } + + var paddingOption; // step 6 + + if (mode === 'longest') { // step 7 + paddingOption = Get(options, 'padding'); // step 7.a + if (typeof paddingOption !== 'undefined' && !isObject(paddingOption)) { + throw new $TypeError('`padding` option must be an Object'); // step 7.b + } + } + + var iters = []; // step 8 + + var padding = []; // step 9 + + var allKeys = ownKeys(iterables); // step 10 + + var keys = []; // step 11 + + forEach(allKeys, function (key) { // step 12 + var desc; + try { + desc = ToPropertyDescriptor(gOPD(iterables, key)); // step 12.a + } catch (e) { + IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 12.b + } + + if (typeof desc !== 'undefined' && desc['[[Enumerable]]'] === true) { // step 12.c + var value; // step 12.c.i + if (IsDataDescriptor(desc)) { // step 12.c.ii + value = desc['[[Value]]']; // step 12.c.ii.1 + } else { + if (!IsAccessorDescriptor(desc)) { + throw new $TypeError('Assertion failed: IsAccessorDescriptor(desc) is not true'); // step 12.c.ii.1 + } + var getter = desc['[[Get]]']; // step 12.c.iii.2 + if (typeof getter !== 'undefined') { // step 12.c.iii.3 + var getterResult; + try { + getterResult = Call(getter, iterables); // step 12.c.iii.3.a + } catch (e) { + // step 12.c.iii.3.b + // 2. IfAbruptCloseIterators(e, iters). + } + value = getterResult; // step 12.c.iii.3.c + } + } + if (typeof value !== 'undefined') { // step 12.c.iv + keys[keys.length] = key; // step 12.c.iv.1 + var iter; + try { + iter = GetIteratorFlattenable(value, 'REJECT-PRIMITIVES'); // step 12.c.iv.2 + } catch (e) { + IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 12.c.iv.3 + } + iters[iters.length] = iter; // step 12.c.iv.4 + } + } + }); + + var iterCount = iters.length; // step 13 + + if (mode === 'longest') { // step 14 + if (typeof paddingOption === 'undefined') { // step 14.a + for (var j = 0; j < iterCount; j += 1) { // step 14.a.i + padding[padding.length] = void undefined; // step 14.a.i.1 + } + } else { // step 14.b + forEach(keys, function (key) { // step 14.b.i + var value; + try { + value = Get(paddingOption, key); // step 14.b.i.1 + } catch (e) { + IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 14.b.i.2 + } + padding[padding.length] = value; // step 14.b.i.3 + }); + } + } + + // eslint-disable-next-line no-sequences + var finishResults = (0, function (results) { // step 15 + var obj = OrdinaryObjectCreate(null); // step 15.a + for (var i = 0; i < iterCount; i += 1) { // step 15.b + CreateDataPropertyOrThrow(obj, keys[i], results[i]); // step 15.b.i + } + return obj; // step 15.c + }); + + return IteratorZip(iters, mode, padding, finishResults); // step 16 +}; diff --git a/node_modules/es-iterator-helpers/Iterator.zipKeyed/index.js b/node_modules/es-iterator-helpers/Iterator.zipKeyed/index.js new file mode 100644 index 0000000000000000000000000000000000000000..76c40662de4ff69f1d275489df0bd4a6c16f5c29 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.zipKeyed/index.js @@ -0,0 +1,5 @@ +'use strict'; + +var getPolyfill = require('./polyfill'); + +module.exports = getPolyfill(); diff --git a/node_modules/es-iterator-helpers/Iterator.zipKeyed/polyfill.js b/node_modules/es-iterator-helpers/Iterator.zipKeyed/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..13d934e04744e70917a7a4973d1c371911f62485 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.zipKeyed/polyfill.js @@ -0,0 +1,9 @@ +'use strict'; + +var implementation = require('./implementation'); + +var $Iterator = require('../Iterator'); + +module.exports = function getPolyfill() { + return typeof $Iterator.zipKeyed === 'function' ? $Iterator.zipKeyed : implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator.zipKeyed/shim.js b/node_modules/es-iterator-helpers/Iterator.zipKeyed/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..18409987f215f6d8b97d896b33f1b29845bbb02e --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator.zipKeyed/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var getPolyfill = require('./polyfill'); +var define = require('define-properties'); + +var getIteratorPolyfill = require('../Iterator/polyfill'); + +module.exports = function shimIteratorZipKeyed() { + var $Iterator = getIteratorPolyfill(); + var polyfill = getPolyfill(); + define( + $Iterator, + { zipKeyed: polyfill }, + { zipKeyed: function () { return $Iterator.zipKeyed !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/Iterator/auto.js b/node_modules/es-iterator-helpers/Iterator/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/Iterator/implementation.js b/node_modules/es-iterator-helpers/Iterator/implementation.js new file mode 100644 index 0000000000000000000000000000000000000000..a8c711138832d63a89b6c1d2624ab07c2bc596de --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator/implementation.js @@ -0,0 +1,30 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var hasPropertyDescriptors = require('has-property-descriptors')(); + +var $TypeError = require('es-errors/type'); + +var $defineProperty = hasPropertyDescriptors && GetIntrinsic('%Object.defineProperty%', true); + +var iterProto = require('iterator.prototype'); +var callBound = require('call-bound'); + +var $isPrototypeOf = callBound('Object.prototype.isPrototypeOf'); + +var $Iterator = typeof Iterator === 'function' ? Iterator : function Iterator() { + if ( + !(this instanceof Iterator) + || this.constructor === Iterator + || !$isPrototypeOf(Iterator, this.constructor) + ) { + throw new $TypeError('`Iterator` can not be called or constructed directly'); + } +}; + +if ($Iterator.prototype !== iterProto) { + $Iterator.prototype = iterProto; +} +$defineProperty($Iterator, 'prototype', { writable: false }); + +module.exports = $Iterator; diff --git a/node_modules/es-iterator-helpers/Iterator/index.js b/node_modules/es-iterator-helpers/Iterator/index.js new file mode 100644 index 0000000000000000000000000000000000000000..751f5fbcd6066e19a6586c91ce09d75bfa0f79bf --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var callBind = require('call-bind'); + +var implementation = require('./implementation'); +var getPolyfill = require('./polyfill'); +var shim = require('./shim'); + +var polyfill = callBind(getPolyfill()); + +define(polyfill, { + getPolyfill: getPolyfill, + implementation: implementation, + shim: shim +}); + +module.exports = polyfill; diff --git a/node_modules/es-iterator-helpers/Iterator/polyfill.js b/node_modules/es-iterator-helpers/Iterator/polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..e89c026dba8ce6ab2facf2d1ccafcfdaffa75fdd --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator/polyfill.js @@ -0,0 +1,8 @@ +'use strict'; + +var globalThis = require('globalthis')(); +var implementation = require('./implementation'); + +module.exports = function getPolyfill() { + return typeof globalThis.Iterator === 'function' ? globalThis.Iterator : implementation; +}; diff --git a/node_modules/es-iterator-helpers/Iterator/shim.js b/node_modules/es-iterator-helpers/Iterator/shim.js new file mode 100644 index 0000000000000000000000000000000000000000..be51a070c0774cb2f467476355b2136ebfd03b6a --- /dev/null +++ b/node_modules/es-iterator-helpers/Iterator/shim.js @@ -0,0 +1,18 @@ +'use strict'; + +var define = require('define-properties'); +var globalThis = require('globalthis')(); + +var getPolyfill = require('./polyfill'); + +module.exports = function shimIterator() { + var polyfill = getPolyfill(); + + define( + globalThis, + { Iterator: polyfill }, + { Iterator: function () { return Iterator !== polyfill; } } + ); + + return polyfill; +}; diff --git a/node_modules/es-iterator-helpers/IteratorHelperPrototype/index.js b/node_modules/es-iterator-helpers/IteratorHelperPrototype/index.js new file mode 100644 index 0000000000000000000000000000000000000000..0491845e72bd951bc45c8014ba3341208d882f65 --- /dev/null +++ b/node_modules/es-iterator-helpers/IteratorHelperPrototype/index.js @@ -0,0 +1,54 @@ +'use strict'; + +var setToStringTag = require('es-set-tostringtag'); +var hasProto = require('has-proto')(); +var iterProto = require('../Iterator.prototype/implementation'); +var SLOT = require('internal-slot'); + +var CreateIteratorResultObject = require('es-abstract/2025/CreateIteratorResultObject'); +var GeneratorResume = require('es-abstract/2025/GeneratorResume'); +var GeneratorResumeAbrupt = require('../aos/GeneratorResumeAbrupt'); +var IteratorCloseAll = require('../aos/IteratorCloseAll'); +var ReturnCompletion = require('es-abstract/2025/ReturnCompletion'); + +var implementation; +var o = { // in an object, for name inference + 'return': function () { + var O = this; // step 1 + + SLOT.assert(O, '[[UnderlyingIterators]]'); // step 2 + + SLOT.assert(O, '[[GeneratorState]]'); // step 3 + + if (SLOT.get(O, '[[GeneratorState]]') === 'SUSPENDED-START') { // step 4 + SLOT.set(O, '[[GeneratorState]]', 'COMPLETED'); // step 4.a + IteratorCloseAll(SLOT.get(O, '[[UnderlyingIterators]]'), ReturnCompletion(void undefined)); // step 4.c + return CreateIteratorResultObject(void undefined, true); // step 4.d + } + + var C = ReturnCompletion(void undefined); // step 5 + + return GeneratorResumeAbrupt(O, C, 'Iterator Helper'); // step 6 + } +}; +if (hasProto) { + implementation = { + __proto__: iterProto, + next: function next() { + return GeneratorResume(this, void undefined, 'Iterator Helper'); + }, + 'return': o['return'] + }; + setToStringTag(implementation, 'Iterator Helper'); +} else { + var IteratorHelper = function IteratorHelper() {}; + IteratorHelper.prototype = iterProto; + implementation = new IteratorHelper(); + delete implementation.constructor; + implementation.next = function next() { + return GeneratorResume(this, void undefined, 'Iterator Helper'); + }; + implementation['return'] = o['return']; +} + +module.exports = implementation; diff --git a/node_modules/es-iterator-helpers/LICENSE b/node_modules/es-iterator-helpers/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..c2a8460a3c4c3b8de391983485f26f4bce0ba5a6 --- /dev/null +++ b/node_modules/es-iterator-helpers/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 ECMAScript Shims + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/es-iterator-helpers/README.md b/node_modules/es-iterator-helpers/README.md new file mode 100644 index 0000000000000000000000000000000000000000..92944d349040d1dab2c7256ade1a9a8c893562e2 --- /dev/null +++ b/node_modules/es-iterator-helpers/README.md @@ -0,0 +1,110 @@ +# es-iterator-helpers [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +An ESnext spec-compliant sync iterator helpers shim/polyfill/replacement that works as far down as ES3. + +This package implements the [es-shim API](https://github.com/es-shims/api) “multi” interface. It works in an ES3-supported environment and complies with the [iterator helpers spec](https://tc39.es/proposal-iterator-helpers/) and the [iterator sequencing spec](https://tc39.es/proposal-iterator-sequencing/). + +Because the `Iterator.prototype` methods depend on a receiver (the `this` value), the main export in each subdirectory takes the iterator to operate on as the first argument. + +The main export of the package itself is simply an array of the available directory names. It’s sole intended use is for build tooling and testing. + +## Supported things + + - [`Iterator` constructor](https://tc39.es/proposal-iterator-helpers/#sec-iterator-constructor) + - [`Iterator.prototype`](https://tc39.es/proposal-iterator-helpers/#sec-iterator.prototype) + - [`Iterator.concat`](https://tc39.es/proposal-iterator-sequencing/) + - [`Iterator.from`](https://tc39.es/proposal-iterator-helpers/#sec-iterator.from) + - [`Iterator.zip`](https://tc39.es/proposal-joint-iteration/#sec-iterator.zip) + - [`Iterator.zipKeyed`](https://tc39.es/proposal-joint-iteration/#sec-iterator.zipkeyed) + - [`Iterator.prototype.constructor`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.constructor) + - [`Iterator.prototype.drop`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.drop) + - [`Iterator.prototype.every`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.every) + - [`Iterator.prototype.filter`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.filter) + - [`Iterator.prototype.find`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.find) + - [`Iterator.prototype.flatMap`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.flatmap) + - [`Iterator.prototype.forEach`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.foreach) + - [`Iterator.prototype.map`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.map) + - [`Iterator.prototype.reduce`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.reduce) + - [`Iterator.prototype.some`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.some) + - [`Iterator.prototype.take`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.take) + - [`Iterator.prototype.toArray`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.toarray) + +## Environments where this is needed + + - node v22, Chrome >= v122: has a [bug](https://issues.chromium.org/issues/336839115) + - node < v22, Chrome < v122, Safari <= v17.1, Firefox <= v125: not implemented + - all environments lack Iterator.concat, Iterator.zip, Iterator.zipKeyed + +## Getting started + +```sh +npm install --save es-iterator-helpers +``` + +## Usage/Examples + +Using explicit imports: + +```js +const map = require('es-iterator-helpers/Iterator.prototype.map'); +const toArray = require('es-iterator-helpers/Iterator.prototype.toArray'); +const assert = require('assert'); + +const iterator = [1, 2, 3].values(); + +const mapped = map(iterator, (x) => x + 10); +assert.deepEqual( + mapped.next(), + { + done: false, + value: 11, + } +); +assert.deepEqual( + toArray(mapped), + [12, 13] +); +``` + +Shim using `require`: + +```js +require('es-iterator-helpers/auto'); // shim all of the methods + +require('es-iterator-helpers/Iterator.prototype.map/auto'); // shim the “map” method +``` + +Shim using `import` syntax: + +[](#preventEval) +```js +import 'es-iterator-helpers/auto'; // shim all of the methods + +import 'es-iterator-helpers/Iterator.prototype.map/auto'; // shim the “map” method +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/es-iterator-helpers +[npm-version-svg]: https://versionbadg.es/es-shims/iterator-helpers.svg +[deps-svg]: https://david-dm.org/es-shims/iterator-helpers.svg +[deps-url]: https://david-dm.org/es-shims/iterator-helpers +[dev-deps-svg]: https://david-dm.org/es-shims/iterator-helpers/dev-status.svg +[dev-deps-url]: https://david-dm.org/es-shims/iterator-helpers#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/es-iterator-helpers.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/es-iterator-helpers.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/es-iterator-helpers.svg +[downloads-url]: https://npm-stat.com/charts.html?package=es-iterator-helpers +[codecov-image]: https://codecov.io/gh/es-shims/iterator-helpers/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/es-shims/iterator-helpers/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/es-shims/iterator-helpers +[actions-url]: https://github.com/es-shims/iterator-helpers/actions diff --git a/node_modules/es-iterator-helpers/WrapForValidIteratorPrototype/index.js b/node_modules/es-iterator-helpers/WrapForValidIteratorPrototype/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b1df3558f4df658ecfe6d307eba7351b8595d5e8 --- /dev/null +++ b/node_modules/es-iterator-helpers/WrapForValidIteratorPrototype/index.js @@ -0,0 +1,47 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var Call = require('es-abstract/2025/Call'); +var CreateIteratorResultObject = require('es-abstract/2025/CreateIteratorResultObject'); +var GetMethod = require('es-abstract/2025/GetMethod'); + +var isObject = require('es-abstract/helpers/isObject'); + +var SLOT = require('internal-slot'); +var iterProto = require('../Iterator.prototype/implementation'); + +// https://tc39.es/proposal-iterator-helpers/#sec-wrapforvaliditeratorprototype-object + +module.exports = /* GetIntrinsic('%WrapForValidIteratorPrototype%', true) || */ { + __proto__: iterProto, + next: function next() { + var O = this; // step 1 + + // RequireInternalSlot(O, [[Iterated]]); // step 2 + SLOT.assert(O, '[[Iterated]]'); + + var iteratorRecord = SLOT.get(O, '[[Iterated]]'); // step 3 + + return Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]']); // step 4 + }, + 'return': function () { + var O = this; // step 1 + + // RequireInternalSlot(O, [[Iterated]]); // step 2 + SLOT.assert(O, '[[Iterated]]'); + + var iterator = SLOT.get(O, '[[Iterated]]')['[[Iterator]]']; // step 3 + + if (!isObject(iterator)) { + throw new $TypeError('iterator must be an Object'); // step 4 + } + + var returnMethod = GetMethod(iterator, 'return'); // step 5 + + if (typeof returnMethod === 'undefined') { // step 6 + return CreateIteratorResultObject(undefined, true); // step 6.a + } + return Call(returnMethod, iterator); // step 7 + } +}; diff --git a/node_modules/es-iterator-helpers/aos/GeneratorResumeAbrupt.js b/node_modules/es-iterator-helpers/aos/GeneratorResumeAbrupt.js new file mode 100644 index 0000000000000000000000000000000000000000..e3043427a7c2200b13f222c3e38f37fbba0cc5ac --- /dev/null +++ b/node_modules/es-iterator-helpers/aos/GeneratorResumeAbrupt.js @@ -0,0 +1,57 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CompletionRecord = require('es-abstract/2025/CompletionRecord'); +var CreateIteratorResultObject = require('es-abstract/2025/CreateIteratorResultObject'); +var GeneratorValidate = require('es-abstract/2025/GeneratorValidate'); +var NormalCompletion = require('es-abstract/2025/NormalCompletion'); + +var SLOT = require('internal-slot'); + +// https://tc39.es/ecma262/#sec-generatorresumeabrupt + +module.exports = function GeneratorResumeAbrupt(generator, abruptCompletion, generatorBrand) { + if ( + !(abruptCompletion instanceof CompletionRecord) + || (abruptCompletion.type() !== 'return' && abruptCompletion.type() !== 'throw') + ) { + throw new $TypeError('Assertion failed: abruptCompletion must be a `return` or `throw` Completion Record'); + } + + var state = GeneratorValidate(generator, generatorBrand); // step 1 + + if (state === 'SUSPENDED-START') { // step 2 + SLOT.set(generator, '[[GeneratorState]]', 'COMPLETED'); // step 2.a + SLOT.set(generator, '[[GeneratorContext]]', null); // step 2.b + state = 'COMPLETED'; // step 2.c + } + + var value = abruptCompletion.value(); + + if (state === 'COMPLETED') { // step 3 + if (abruptCompletion.type() === 'return') { // step 3.a + return CreateIteratorResultObject(value, true); // step 3.a.i + } + return abruptCompletion['?'](); // step 3.b - throw + } + + if (state !== 'SUSPENDED-YIELD') { + throw new $TypeError('Assertion failed: generator state is unexpected: ' + state); // step 4 + } + + var genContext = SLOT.get(generator, '[[GeneratorContext]]'); // step 5 + + SLOT.set(generator, '[[GeneratorState]]', 'EXECUTING'); // step 8 + + if (abruptCompletion.type() === 'return') { + // due to representing `GeneratorContext` as a function, we can't safely re-invoke it, so we can't support sending it a return completion + var closeResult = SLOT.get(generator, '[[CloseIfAbrupt]]')(NormalCompletion(value)); + SLOT.set(generator, '[[GeneratorState]]', 'COMPLETED'); // step 10 + return CreateIteratorResultObject(closeResult, true); + } + + var result = genContext(value); // steps 6-7, 9-11 + + return result; // step 12 +}; diff --git a/node_modules/es-iterator-helpers/aos/GetOptionsObject.js b/node_modules/es-iterator-helpers/aos/GetOptionsObject.js new file mode 100644 index 0000000000000000000000000000000000000000..e4872205c59908037baac843ae8f3195dd1547ff --- /dev/null +++ b/node_modules/es-iterator-helpers/aos/GetOptionsObject.js @@ -0,0 +1,20 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +// var OrdinaryObjectCreate = require('es-abstract/2025/OrdinaryObjectCreate'); +var isObject = require('es-abstract/helpers/isObject'); + +// https://tc39.es/proposal-joint-iteration/#sec-getoptionsobject + +module.exports = function GetOptionsObject(options) { + if (typeof options === 'undefined') { // step 1 + // return OrdinaryObjectCreate(null); // step 1.a + return { __proto__: null }; // step 1.a + } + if (isObject(options)) { // step 2 + return options; // step 2.a + } + + throw new $TypeError('`options` must be an Object or undefined'); // step 3 +}; diff --git a/node_modules/es-iterator-helpers/aos/IfAbruptCloseIterators.js b/node_modules/es-iterator-helpers/aos/IfAbruptCloseIterators.js new file mode 100644 index 0000000000000000000000000000000000000000..0da21f5b7fd0c0a0b30e7301142d72a6a49bde8e --- /dev/null +++ b/node_modules/es-iterator-helpers/aos/IfAbruptCloseIterators.js @@ -0,0 +1,19 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CompletionRecord = require('es-abstract/2025/CompletionRecord'); +var IteratorCloseAll = require('./IteratorCloseAll'); + +// https://tc39.es/proposal-joint-iteration/#sec-ifabruptcloseiterators + +module.exports = function IfAbruptCloseIterators(value, iteratorRecords) { + if (!(value instanceof CompletionRecord)) { + throw new $TypeError('Assertion failed: `value` must be a Completion Record'); // step 1 + } + if (value.type() === 'throw') { + return IteratorCloseAll(iteratorRecords, value); // step 2 + } + + return value['!'](); // step +}; diff --git a/node_modules/es-iterator-helpers/aos/IteratorCloseAll.js b/node_modules/es-iterator-helpers/aos/IteratorCloseAll.js new file mode 100644 index 0000000000000000000000000000000000000000..d8f1e193af9d72a5b6d899fe6103ee489548c23a --- /dev/null +++ b/node_modules/es-iterator-helpers/aos/IteratorCloseAll.js @@ -0,0 +1,34 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CompletionRecord = require('es-abstract/2025/CompletionRecord'); +var IteratorClose = require('es-abstract/2025/IteratorClose'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); + +var IsArray = require('es-abstract/helpers/IsArray'); +var every = require('es-abstract/helpers/every'); + +var isIteratorRecord = require('es-abstract/helpers/records/iterator-record'); + +// https://tc39.es/proposal-joint-iteration/#sec-closeall + +module.exports = function IteratorCloseAll(iters, completion) { + if (!IsArray(iters) || !every(iters, isIteratorRecord)) { + throw new $TypeError('Assertion failed: `iters` must be a List of IteratorRecords'); + } + if (!(completion instanceof CompletionRecord)) { + throw new $TypeError('Assertion failed: `completion` must be a Completion Record'); + } + + for (var i = iters.length - 1; i >= 0; i -= 1) { // step 1 + try { + IteratorClose(iters[i], completion); // step 1.a + } catch (e) { + // eslint-disable-next-line no-param-reassign + completion = ThrowCompletion(e); // step 1.a + } + } + + return completion['?'](); // step 2 +}; diff --git a/node_modules/es-iterator-helpers/aos/IteratorZip.js b/node_modules/es-iterator-helpers/aos/IteratorZip.js new file mode 100644 index 0000000000000000000000000000000000000000..5b8c906e817b4f0ac71b56deb053a94634c92133 --- /dev/null +++ b/node_modules/es-iterator-helpers/aos/IteratorZip.js @@ -0,0 +1,157 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +var CompletionRecord = require('es-abstract/2025/CompletionRecord'); +var CreateIteratorFromClosure = require('es-abstract/2025/CreateIteratorFromClosure'); +var IteratorCloseAll = require('./IteratorCloseAll'); +var IteratorStep = require('es-abstract/2025/IteratorStep'); +var IteratorStepValue = require('es-abstract/2025/IteratorStepValue'); +var NormalCompletion = require('es-abstract/2025/NormalCompletion'); +var ThrowCompletion = require('es-abstract/2025/ThrowCompletion'); + +var isAbstractClosure = require('es-abstract/helpers/isAbstractClosure'); +var IsArray = require('es-abstract/helpers/IsArray'); +var isIteratorRecord = require('es-abstract/helpers/records/iterator-record'); +var every = require('es-abstract/helpers/every'); + +var callBound = require('call-bound'); + +var $indexOf = callBound('Array.prototype.indexOf'); +var $slice = callBound('Array.prototype.slice'); +var $splice = callBound('Array.prototype.splice'); + +var iterHelperProto = require('../IteratorHelperPrototype'); + +var SLOT = require('internal-slot'); + +// https://tc39.es/proposal-joint-iteration/#sec-IteratorZip + +module.exports = function IteratorZip(iters, mode, padding, finishResults) { + if (!IsArray(iters) || !every(iters, isIteratorRecord)) { + throw new $TypeError('`iters` must be a List of IteratorRecords'); + } + + if (mode !== 'shortest' && mode !== 'longest' && mode !== 'strict') { + throw new $TypeError('`mode` must be one of "shortest", "longest", or "strict"'); + } + + if (!IsArray(padding)) { + throw new $TypeError('`padding` must be a List'); + } + + if (!isAbstractClosure(finishResults)) { + throw new $TypeError('`finishResults` must be an Abstract Closure'); + } + + var iterCount = iters.length; // step 1 + + var openIters = $slice(iters); // step 2 + + var closeIfAbrupt = function (abruptCompletion) { + if (!(abruptCompletion instanceof CompletionRecord)) { + throw new $TypeError('`abruptCompletion` must be a Completion Record'); + } + IteratorCloseAll(openIters, abruptCompletion); + }; + + var sentinel = {}; + var closure = function () { + if (iterCount === 0) { + // 1. If iterCount = 0, return ReturnCompletion(undefined). + return sentinel; // step 1 + } + // while (true) { + { // eslint-disable-line no-lone-blocks + var results = []; // step 3.b.i + if (openIters.length === 0) { + throw new $TypeError('Assertion failed: `openIters` is empty'); // step 3.b.ii + } + for (var i = 0; i < iterCount; ++i) { // step 3.b.iii + // for (var i = 0; i < iterCount; i += 1) { // step 3.b.iii + var result; + + var iter = iters[i]; + if (iter === null) { // step 3.b.iii.1 + if (mode !== 'longest') { + throw new $TypeError('Assertion failed: `mode` is not "longest"'); // step 3.b.iii.1.a + } + result = padding[i]; // step 3.b.iii.1.b + } else { // step 2 + try { + result = IteratorStepValue(iter); // step 3.b.iii.2.a, 3.b.iii.2.c + } catch (e) { // step 3.b.iii.2.b + $splice(openIters, $indexOf(openIters, iter), 1); // step 3.b.iii.2.b.i + return IteratorCloseAll(openIters, ThrowCompletion(e)); // step 3.b.iii.2.b.ii + } + if (iter['[[Done]]']) { // step 3.b.iii.2.d + $splice(openIters, $indexOf(openIters, iter), 1); // step 3.b.iii.2.d.i + if (mode === 'shortest') { // step 3.b.iii.2.d.ii + IteratorCloseAll(openIters, NormalCompletion(undefined)); // step 3.b.iii.2.d.ii.i + return sentinel; + } else if (mode === 'strict') { // step 3.b.iii.2.d.iii + if (i !== 0) { // step 3.b.iii.2.d.iii.i + return IteratorCloseAll( + openIters, + ThrowCompletion(new $TypeError('Assertion failed: `i` is not 0')) + ); // step 3.b.iii.2.d.iii.i.i + } + for (var k = 1; k < iterCount; k += 1) { // step 3.b.iii.2.d.iii.ii + if (iters[k] === null) { + throw new $TypeError('Assertion failed: `iters[k]` is `null`'); // step 3.b.iii.2.d.iii.ii.i + } + try { + result = IteratorStep(iters[k]); // step 3.b.iii.2.d.iii.ii.ii, 3.b.iii.2.d.iii.ii.iii.ii.iv + } catch (e) { // step 3.b.iii.2.d.iii.ii.iii + return IteratorCloseAll(openIters, ThrowCompletion(e)); // step 3.b.iii.2.d.iii.ii.iii.ii + } + + // if (open === false) { // step 3.b.iii.2.d.iii.ii.v + if (iters[k]['[[Done]]']) { // step 3.b.iii.2.d.iii.ii.v + $splice(openIters, $indexOf(openIters, iters[k]), 1); // step 3.b.iii.2.d.iii.ii.v.i + } else { // step 3.b.iii.2.d.iii.ii.vi + return IteratorCloseAll( + openIters, + ThrowCompletion(new $TypeError('Assertion failed: `open` is not `false`')) + ); // step 3.b.iii.2.d.iii.ii.vi.i + } + } + return sentinel; // step 3.b.iii.2.d.iii.iii - all iterators done in strict mode + } + + // step 3.b.iii.2.d.iv + if (mode !== 'longest') { + throw new $TypeError('Assertion failed: `mode` is not "longest"'); // step 3.b.iii.2.d.iv.i + } + + if (openIters.length === 0) { + return sentinel; // ReturnCompletion(undefined); // step 3.b.iii.2.d.iv.ii + } + + // eslint-disable-next-line no-param-reassign + iters[i] = null; // step 3.b.iii.2.d.iv.iii + // i += 1; + + result = padding[i]; // step 3.b.iii.2.d.iv.iv + } + } + + results[results.length] = result; // step 3.b.iii.3 + + // 5. Let completion be Completion(Yield(results)). + // 6. If completion is an abrupt completion, then + // 1. Return ? IteratorCloseAll(openIters, completion). + } + } + + return finishResults(results); // step 3.b.iv + }; + SLOT.set(closure, '[[Sentinel]]', sentinel); // for the userland implementation + SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation + + var gen = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 4 + + SLOT.set(gen, '[[UnderlyingIterators]]', openIters); // step 5 + + return gen; // step 6 +}; diff --git a/node_modules/es-iterator-helpers/auto.js b/node_modules/es-iterator-helpers/auto.js new file mode 100644 index 0000000000000000000000000000000000000000..8ebf606cb02ff3a8c6ef786afa37d21a19254f46 --- /dev/null +++ b/node_modules/es-iterator-helpers/auto.js @@ -0,0 +1,3 @@ +'use strict'; + +require('./shim')(); diff --git a/node_modules/es-iterator-helpers/eslint.config.mjs b/node_modules/es-iterator-helpers/eslint.config.mjs new file mode 100644 index 0000000000000000000000000000000000000000..e16adfa1c6f555cdc3ee257c7dfbf4044919ffb9 --- /dev/null +++ b/node_modules/es-iterator-helpers/eslint.config.mjs @@ -0,0 +1,179 @@ +import ljharbConfig from '@ljharb/eslint-config/flat'; +import importPlugin from 'eslint-plugin-import'; + +export default [ + ...ljharbConfig, + { + plugins: { + import: importPlugin, + }, + settings: { + 'import/resolver': { + node: { + extensions: ['.mjs', '.js', '.json'], + }, + }, + 'import/extensions': [ + '.js', + '.mjs', + '.jsx', + ], + 'import/core-modules': [ + ], + 'import/ignore': [ + 'node_modules', + ], + }, + + rules: { + 'import/no-unresolved': ['error', { commonjs: true, caseSensitive: true }], + + 'import/named': 'error', + 'import/export': 'error', + 'import/no-named-as-default': 'error', + 'import/no-named-as-default-member': 'error', + // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-deprecated.md + 'import/no-deprecated': 'error', + + 'import/no-extraneous-dependencies': ['error', { + devDependencies: [ + 'eslint.config.mjs', + 'test/**', + ], + optionalDependencies: false, + }], + 'import/no-mutable-exports': 'error', + 'import/no-commonjs': 'off', + 'import/no-amd': 'error', + 'import/first': 'error', + 'import/no-duplicates': 'error', + 'import/no-namespace': 'error', + + // Ensure consistent use of file extension within the import path + // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/extensions.md + 'import/extensions': ['error', 'ignorePackages', { + json: 'never', + js: 'never', + mjs: 'never', + jsx: 'never', + }], + 'import/order': ['warn', { groups: [['builtin', 'external', 'internal']] }], + 'import/newline-after-import': 'error', + 'import/prefer-default-export': 'error', + 'import/no-restricted-paths': 'off', + 'import/max-dependencies': ['off', { max: 10 }], + 'import/no-absolute-path': 'error', + 'import/no-dynamic-require': 'error', + 'import/no-internal-modules': ['off', { + allow: [], + }], + 'import/no-webpack-loader-syntax': 'error', + 'import/no-unassigned-import': 'off', + 'import/no-named-default': 'error', + 'import/no-anonymous-default-export': ['off', { + allowArray: false, + allowArrowFunction: false, + allowAnonymousClass: false, + allowAnonymousFunction: false, + allowLiteral: false, + allowObject: false, + }], + 'import/exports-last': 'error', + 'import/group-exports': 'off', + 'import/no-default-export': 'off', + 'import/no-named-export': 'off', + 'import/no-self-import': 'error', + 'import/no-cycle': ['error', { commonjs: true, maxDepth: '∞' }], + 'import/no-useless-path-segments': ['error', { commonjs: true }], + 'import/no-relative-parent-imports': 'off', + // TODO: enable once it works for flat config + 'import/no-unused-modules': ['off', { + commonjs: true, + ignoreExports: [], + missingExports: true, + unusedExports: true, + }], + 'import/no-import-module-exports': ['error', { + exceptions: [], + }], + 'import/no-relative-packages': 'error', + }, + }, + { + languageOptions: { + globals: { + Iterator: false, + }, + }, + rules: { + 'array-bracket-newline': 'off', + 'func-name-matching': 'off', + 'id-length': 'off', + 'max-lines-per-function': 'off', + 'max-statements': 'off', + 'multiline-comment-style': 'off', + 'new-cap': ['error', { + capIsNewExceptions: [ + 'Call', + 'CreateDataPropertyOrThrow', + 'CreateIteratorFromClosure', + 'CreateIteratorResultObject', + 'GeneratorResume', + 'GeneratorResumeAbrupt', + 'GeneratorValidate', + 'Get', + 'GetIntrinsic', + 'GetIterator', + 'GetIteratorDirect', + 'GetIteratorFlattenable', + 'GetMethod', + 'GetOptionsObject', + 'IfAbruptCloseIterators', + 'IsAccessorDescriptor', + 'IsArray', + 'IsCallable', + 'IsDataDescriptor', + 'IteratorClose', + 'IteratorCloseAll', + 'IteratorStep', + 'IteratorStepValue', + 'IteratorZip', + 'NormalCompletion', + 'OrdinaryHasInstance', + 'OrdinaryObjectCreate', + 'ReturnCompletion', + 'StringToCodePoints', + 'ThrowCompletion', + 'ToBoolean', + 'ToIntegerOrInfinity', + 'ToNumber', + 'ToPropertyDescriptor', + ], + }], + 'no-negated-condition': 'warn', + 'object-curly-newline': 'off', + 'sort-keys': 'off', + }, + }, + { + files: ['test/**'], + rules: { + eqeqeq: ['error', 'allow-null'], + 'func-style': 'off', + }, + }, + { + files: ['Iterator.zip*/implementation.js'], + rules: { + complexity: 'off', + 'max-depth': 'off', + }, + }, + { + files: ['aos/IteratorZip.js'], + rules: { + 'max-depth': 'off', + 'max-params': 'off', + }, + }, +];