Update checked-in dependencies

This commit is contained in:
github-actions[bot] 2024-09-16 17:29:58 +00:00
parent 1afca056e3
commit 6989ba7bd2
3942 changed files with 55190 additions and 132206 deletions

6
node_modules/es-abstract/.eslintrc generated vendored
View file

@ -84,5 +84,11 @@
}],
},
},
{
"files": "./*/GetSubstitution.js",
"rules": {
"max-depth": "off",
},
},
],
}

View file

@ -3,7 +3,7 @@
var GetIntrinsic = require('get-intrinsic');
var $Number = GetIntrinsic('%Number%');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $isNaN = require('../helpers/isNaN');
var $isFinite = require('../helpers/isFinite');
@ -11,13 +11,12 @@ var isPrefixOf = require('../helpers/isPrefixOf');
var ToNumber = require('./ToNumber');
var ToPrimitive = require('./ToPrimitive');
var Type = require('./Type');
// 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 (Type(LeftFirst) !== 'Boolean') {
if (typeof LeftFirst !== 'boolean') {
throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean');
}
var px;
@ -29,7 +28,7 @@ module.exports = function AbstractRelationalComparison(x, y, LeftFirst) {
py = ToPrimitive(y, $Number);
px = ToPrimitive(x, $Number);
}
var bothStrings = Type(px) === 'String' && Type(py) === 'String';
var bothStrings = typeof px === 'string' && typeof py === 'string';
if (!bothStrings) {
var nx = ToNumber(px);
var ny = ToNumber(py);

View file

@ -1,28 +1,24 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var Type = require('./Type');
var isInteger = require('../helpers/isInteger');
var isLeadingSurrogate = require('../helpers/isLeadingSurrogate');
var isTrailingSurrogate = require('../helpers/isTrailingSurrogate');
var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $charCodeAt = require('call-bind/callBound')('String.prototype.charCodeAt');
// https://262.ecma-international.org/6.0/#sec-advancestringindex
module.exports = function AdvanceStringIndex(S, index, unicode) {
if (Type(S) !== 'String') {
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 (Type(unicode) !== 'Boolean') {
if (typeof unicode !== 'boolean') {
throw new $TypeError('Assertion failed: `unicode` must be a Boolean');
}
if (!unicode) {

View file

@ -3,9 +3,9 @@
var GetIntrinsic = require('get-intrinsic');
var $ArrayPrototype = GetIntrinsic('%Array.prototype%');
var $RangeError = GetIntrinsic('%RangeError%');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $TypeError = GetIntrinsic('%TypeError%');
var $RangeError = require('es-errors/range');
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var isInteger = require('../helpers/isInteger');

View file

@ -1,23 +1,19 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $RangeError = GetIntrinsic('%RangeError%');
var $TypeError = GetIntrinsic('%TypeError%');
var $RangeError = require('es-errors/range');
var $TypeError = require('es-errors/type');
var assign = require('object.assign');
var isPropertyDescriptor = require('../helpers/isPropertyDescriptor');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
var IsArray = require('./IsArray');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty');
var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty');
var ToNumber = require('./ToNumber');
var ToString = require('./ToString');
var ToUint32 = require('./ToUint32');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-arraysetlength
@ -26,11 +22,7 @@ module.exports = function ArraySetLength(A, Desc) {
if (!IsArray(A)) {
throw new $TypeError('Assertion failed: A must be an Array');
}
if (!isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, Desc)) {
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: Desc must be a Property Descriptor');
}
if (!('[[Value]]' in Desc)) {

View file

@ -4,7 +4,7 @@ var GetIntrinsic = require('get-intrinsic');
var $Array = GetIntrinsic('%Array%');
var $species = GetIntrinsic('%Symbol.species%', true);
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var Get = require('./Get');
var IsArray = require('./IsArray');

View file

@ -3,7 +3,7 @@
var GetIntrinsic = require('get-intrinsic');
var callBound = require('call-bind/callBound');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var IsArray = require('./IsArray');

View file

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

View file

@ -1,27 +1,23 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var callBound = require('call-bind/callBound');
var has = require('has');
var hasOwn = require('hasown');
var $charCodeAt = callBound('String.prototype.charCodeAt');
var $toUpperCase = callBound('String.prototype.toUpperCase');
var Type = require('./Type');
var caseFolding = require('../helpers/caseFolding');
var caseFolding = require('../helpers/caseFolding.json');
// https://262.ecma-international.org/6.0/#sec-runtime-semantics-canonicalize-ch
module.exports = function Canonicalize(ch, IgnoreCase, Unicode) {
if (Type(ch) !== 'String') {
if (typeof ch !== 'string') {
throw new $TypeError('Assertion failed: `ch` must be a character');
}
if (Type(IgnoreCase) !== 'Boolean' || Type(Unicode) !== 'Boolean') {
if (typeof IgnoreCase !== 'boolean' || typeof Unicode !== 'boolean') {
throw new $TypeError('Assertion failed: `IgnoreCase` and `Unicode` must be Booleans');
}
@ -30,10 +26,10 @@ module.exports = function Canonicalize(ch, IgnoreCase, Unicode) {
}
if (Unicode) { // step 2
if (has(caseFolding.C, ch)) {
if (hasOwn(caseFolding.C, ch)) {
return caseFolding.C[ch];
}
if (has(caseFolding.S, ch)) {
if (hasOwn(caseFolding.S, ch)) {
return caseFolding.S[ch];
}
return ch; // step 2.b

View file

@ -4,7 +4,7 @@ var GetIntrinsic = require('get-intrinsic');
var callBound = require('call-bind/callBound');
var $fromCharCode = GetIntrinsic('%String.fromCharCode%');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $charCodeAt = callBound('String.prototype.charCodeAt');
var $push = callBound('Array.prototype.push');

View file

@ -1,38 +1,42 @@
'use strict';
var has = require('has');
var $TypeError = require('es-errors/type');
var assertRecord = require('../helpers/assertRecord');
var hasOwn = require('hasown');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsGenericDescriptor = require('./IsGenericDescriptor');
var Type = require('./Type');
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 */
assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) {
if (!has(Desc, '[[Value]]')) {
if (!hasOwn(Desc, '[[Value]]')) {
Desc['[[Value]]'] = void 0;
}
if (!has(Desc, '[[Writable]]')) {
if (!hasOwn(Desc, '[[Writable]]')) {
Desc['[[Writable]]'] = false;
}
} else {
if (!has(Desc, '[[Get]]')) {
if (!hasOwn(Desc, '[[Get]]')) {
Desc['[[Get]]'] = void 0;
}
if (!has(Desc, '[[Set]]')) {
if (!hasOwn(Desc, '[[Set]]')) {
Desc['[[Set]]'] = void 0;
}
}
if (!has(Desc, '[[Enumerable]]')) {
if (!hasOwn(Desc, '[[Enumerable]]')) {
Desc['[[Enumerable]]'] = false;
}
if (!has(Desc, '[[Configurable]]')) {
if (!hasOwn(Desc, '[[Configurable]]')) {
Desc['[[Configurable]]'] = false;
}
return Desc;

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $SyntaxError = require('es-errors/syntax');
var SLOT = require('internal-slot');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var IsPropertyKey = require('./IsPropertyKey');
var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var CreateDataProperty = require('./CreateDataProperty');
var IsPropertyKey = require('./IsPropertyKey');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var callBound = require('call-bind/callBound');
@ -10,12 +8,11 @@ var $replace = callBound('String.prototype.replace');
var RequireObjectCoercible = require('./RequireObjectCoercible');
var ToString = require('./ToString');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-createhtml
module.exports = function CreateHTML(string, tag, attribute, value) {
if (Type(tag) !== 'String' || Type(attribute) !== 'String') {
if (typeof tag !== 'string' || typeof attribute !== 'string') {
throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings');
}
var str = RequireObjectCoercible(string);

View file

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

View file

@ -1,10 +1,8 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var callBound = require('call-bind/callBound');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf');
var $push = callBound('Array.prototype.push');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var DefineOwnProperty = require('../helpers/DefineOwnProperty');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $EvalError = GetIntrinsic('%EvalError%');
var $EvalError = require('es-errors/eval');
var DayWithinYear = require('./DayWithinYear');
var InLeapYear = require('./InLeapYear');

View file

@ -1,14 +1,11 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = require('es-errors/type');
var $TypeError = GetIntrinsic('%TypeError%');
var isPropertyDescriptor = require('../helpers/isPropertyDescriptor');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
var DefineOwnProperty = require('../helpers/DefineOwnProperty');
var FromPropertyDescriptor = require('./FromPropertyDescriptor');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsPropertyKey = require('./IsPropertyKey');
var SameValue = require('./SameValue');
@ -26,16 +23,8 @@ module.exports = function DefinePropertyOrThrow(O, P, desc) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
var Desc = isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, desc) ? desc : ToPropertyDescriptor(desc);
if (!isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, Desc)) {
var Desc = isPropertyDescriptor(desc) ? desc : ToPropertyDescriptor(desc);
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor');
}

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');

View file

@ -1,12 +1,12 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $TypeError = GetIntrinsic('%TypeError%');
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var isArrayBuffer = require('is-array-buffer');
var IsDetachedBuffer = require('./IsDetachedBuffer');
var MessageChannel;
try {
// eslint-disable-next-line global-require
@ -21,14 +21,18 @@ module.exports = function DetachArrayBuffer(arrayBuffer) {
if (!isArrayBuffer(arrayBuffer)) {
throw new $TypeError('Assertion failed: `arrayBuffer` must be an Object with an [[ArrayBufferData]] internal slot');
}
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');
if (!IsDetachedBuffer(arrayBuffer)) { // node v21.0.0+ throws when you structuredClone a detached buffer
if (typeof structuredClone === 'function') {
structuredClone(arrayBuffer, { transfer: [arrayBuffer] });
} else if (typeof postMessage === 'function') {
postMessage('', '/', [arrayBuffer]); // TODO: see if this might trigger listeners
} else if (MessageChannel) {
(new MessageChannel()).port1.postMessage(null, [arrayBuffer]);
} else {
throw new $SyntaxError('DetachArrayBuffer is not supported in this environment');
}
}
return null;
};

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var keys = require('object-keys');

View file

@ -1,15 +1,15 @@
'use strict';
var assertRecord = require('../helpers/assertRecord');
var fromPropertyDescriptor = require('../helpers/fromPropertyDescriptor');
var $TypeError = require('es-errors/type');
var Type = require('./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') {
assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
if (typeof Desc !== 'undefined' && !isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: `Desc` must be a Property Descriptor');
}
return fromPropertyDescriptor(Desc);

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var inspect = require('object-inspect');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var getIteratorMethod = require('../helpers/getIteratorMethod');
var AdvanceStringIndex = require('./AdvanceStringIndex');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var GetV = require('./GetV');
var IsCallable = require('./IsCallable');

View file

@ -4,7 +4,7 @@ var GetIntrinsic = require('get-intrinsic');
var hasSymbols = require('has-symbols')();
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true);
var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%', true);

View file

@ -3,8 +3,8 @@
var GetIntrinsic = require('get-intrinsic');
var $Function = GetIntrinsic('%Function%');
var $TypeError = GetIntrinsic('%TypeError%');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $TypeError = require('es-errors/type');
var $SyntaxError = require('es-errors/syntax');
var Get = require('./Get');
var IsConstructor = require('./IsConstructor');

View file

@ -3,7 +3,7 @@
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $parseInt = GetIntrinsic('%parseInt%');
var inspect = require('object-inspect');
@ -18,21 +18,20 @@ var $charAt = callBound('String.prototype.charAt');
var $strSlice = callBound('String.prototype.slice');
var IsArray = require('./IsArray');
var Type = require('./Type');
var isInteger = require('../helpers/isInteger');
var isStringOrHole = require('../helpers/isStringOrHole');
var isStringOrUndefined = require('../helpers/isStringOrUndefined');
// https://262.ecma-international.org/6.0/#sec-getsubstitution
// eslint-disable-next-line max-statements, max-lines-per-function
module.exports = function GetSubstitution(matched, str, position, captures, replacement) {
if (Type(matched) !== 'String') {
if (typeof matched !== 'string') {
throw new $TypeError('Assertion failed: `matched` must be a String');
}
var matchLength = matched.length;
if (Type(str) !== 'String') {
if (typeof str !== 'string') {
throw new $TypeError('Assertion failed: `str` must be a String');
}
var stringLength = str.length;
@ -41,11 +40,11 @@ module.exports = function GetSubstitution(matched, str, position, captures, repl
throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position));
}
if (!IsArray(captures) || !every(captures, isStringOrHole)) {
if (!IsArray(captures) || !every(captures, isStringOrUndefined)) {
throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures));
}
if (Type(replacement) !== 'String') {
if (typeof replacement !== 'string') {
throw new $TypeError('Assertion failed: `replacement` must be a String');
}
@ -78,14 +77,14 @@ module.exports = function GetSubstitution(matched, str, position, captures, repl
// $1 through $9, and not followed by a digit
var n = $parseInt(next, 10);
// if (n > m, impl-defined)
result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1];
result += n <= m && typeof captures[n - 1] === 'undefined' ? '' : captures[n - 1];
i += 1;
} else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) {
// $00 through $99
var nn = next + nextNext;
var nnI = $parseInt(nn, 10) - 1;
// if nn === '00' or nn > m, impl-defined
result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI];
result += nn <= m && typeof captures[nnI] === 'undefined' ? '' : captures[nnI];
i += 2;
} else {
result += '$';

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var inspect = require('object-inspect');

View file

@ -2,7 +2,7 @@
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $Uint8Array = GetIntrinsic('%Uint8Array%', true);
var callBound = require('call-bind/callBound');
@ -22,18 +22,7 @@ var IsDetachedBuffer = require('./IsDetachedBuffer');
var isArrayBuffer = require('is-array-buffer');
var safeConcat = require('safe-array-concat');
var table49 = {
__proto__: null,
$Int8: 1,
$Uint8: 1,
$Uint8C: 1,
$Int16: 2,
$Uint16: 2,
$Int32: 4,
$Uint32: 4,
$Float32: 4,
$Float64: 8
};
var tableTAO = require('./tables/typed-array-objects');
var isUnsignedElementType = function isUnsignedElementType(type) { return $charAt(type, 0) === 'U'; };
@ -68,7 +57,7 @@ module.exports = function GetValueFromBuffer(arrayBuffer, byteIndex, type) {
// 4. Let block be arrayBuffers [[ArrayBufferData]] internal slot.
var elementSize = table49['$' + type]; // step 5
var elementSize = tableTAO.size['$' + type]; // step 5
if (!elementSize) {
throw new $TypeError('Assertion failed: `type` must be one of "Int8", "Uint8", "Uint8C", "Int16", "Uint16", "Int32", "Uint32", "Float32", or "Float64"');
}

View file

@ -1,10 +1,8 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = require('es-errors/type');
var $TypeError = GetIntrinsic('%TypeError%');
var has = require('has');
var hasOwn = require('hasown');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
@ -18,5 +16,5 @@ module.exports = function HasOwnProperty(O, P) {
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: `P` must be a Property Key');
}
return has(O, P);
return hasOwn(O, P);
};

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $EvalError = GetIntrinsic('%EvalError%');
var $EvalError = require('es-errors/eval');
var DaysInYear = require('./DaysInYear');
var YearFromTime = require('./YearFromTime');

View file

@ -2,7 +2,7 @@
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $hasInstance = GetIntrinsic('Symbol.hasInstance', true);

View file

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

View file

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

View file

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

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var Call = require('./Call');
var IsArray = require('./IsArray');

View file

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

View file

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

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $byteLength = require('array-buffer-byte-length');

View file

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

View file

@ -2,18 +2,10 @@
// TODO, semver-major: delete this
var isPropertyDescriptor = require('../helpers/isPropertyDescriptor');
var Type = require('./Type');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
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({
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor,
Type: Type
}, Desc);
return isPropertyDescriptor(Desc);
};

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var IsArray = require('./IsArray');
var IsInteger = require('./IsInteger');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var Call = require('./Call');
var CompletionRecord = require('./CompletionRecord');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var Get = require('./Get');
var ToBoolean = require('./ToBoolean');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var Invoke = require('./Invoke');
var Type = require('./Type');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var Get = require('./Get');
var Type = require('./Type');

View file

@ -1,11 +1,9 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = require('es-errors/type');
var $TypeError = GetIntrinsic('%TypeError%');
var IsCallable = require('es-abstract/2022/IsCallable');
var IsConstructor = require('es-abstract/2022/IsConstructor');
var IsCallable = require('./IsCallable');
var IsConstructor = require('./IsConstructor');
// https://262.ecma-international.org/6.0/#sec-newpromisecapability

View file

@ -3,8 +3,8 @@
var GetIntrinsic = require('get-intrinsic');
var $ObjectCreate = GetIntrinsic('%Object.create%', true);
var $TypeError = GetIntrinsic('%TypeError%');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $TypeError = require('es-errors/type');
var $SyntaxError = require('es-errors/syntax');
var IsArray = require('./IsArray');
var Type = require('./Type');

View file

@ -1,7 +1,7 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor');
var IsArray = require('./IsArray');

View file

@ -1,15 +1,12 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $gOPD = require('gopd');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $TypeError = GetIntrinsic('%TypeError%');
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var isPropertyDescriptor = require('../helpers/isPropertyDescriptor');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsExtensible = require('./IsExtensible');
var IsPropertyKey = require('./IsPropertyKey');
var ToPropertyDescriptor = require('./ToPropertyDescriptor');
@ -26,11 +23,7 @@ module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) {
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: P must be a Property Key');
}
if (!isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, Desc)) {
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: Desc must be a Property Descriptor');
}
if (!$gOPD) {

View file

@ -1,15 +1,13 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $gOPD = require('gopd');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var callBound = require('call-bind/callBound');
var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
var has = require('has');
var hasOwn = require('hasown');
var IsArray = require('./IsArray');
var IsPropertyKey = require('./IsPropertyKey');
@ -26,7 +24,7 @@ module.exports = function OrdinaryGetOwnProperty(O, P) {
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: P must be a Property Key');
}
if (!has(O, P)) {
if (!hasOwn(O, P)) {
return void 0;
}
if (!$gOPD) {

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var Get = require('./Get');
var IsCallable = require('./IsCallable');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var callBound = require('call-bind/callBound');
var forEach = require('../helpers/forEach');
@ -13,8 +11,6 @@ var $toLowerCase = callBound('String.prototype.toLowerCase');
var $strSlice = callBound('String.prototype.slice');
var $strSplit = callBound('String.prototype.split');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-quotejsonstring
var escapes = {
@ -26,7 +22,7 @@ var escapes = {
};
module.exports = function QuoteJSONString(value) {
if (Type(value) !== 'String') {
if (typeof value !== 'string') {
throw new $TypeError('Assertion failed: `value` must be a String');
}
var product = '"';

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var regexExec = require('call-bind/callBound')('RegExp.prototype.exec');
@ -17,13 +15,13 @@ module.exports = function RegExpExec(R, S) {
if (Type(R) !== 'Object') {
throw new $TypeError('Assertion failed: `R` must be an Object');
}
if (Type(S) !== 'String') {
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 || Type(result) === 'Object') {
if (typeof result === 'object') {
return result;
}
throw new $TypeError('"exec" method must return `null` or an Object');

View file

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

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var IsPropertyKey = require('./IsPropertyKey');
var SameValue = require('./SameValue');
@ -27,7 +25,7 @@ module.exports = function Set(O, P, V, Throw) {
if (!IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: `P` must be a Property Key');
}
if (Type(Throw) !== 'Boolean') {
if (typeof Throw !== 'boolean') {
throw new $TypeError('Assertion failed: `Throw` must be a Boolean');
}
if (Throw) {

View file

@ -1,16 +1,13 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var hasOwn = require('hasown');
var has = require('has');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var getSymbolDescription = require('get-symbol-description');
var DefinePropertyOrThrow = require('./DefinePropertyOrThrow');
var IsExtensible = require('./IsExtensible');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-setfunctionname
@ -18,14 +15,13 @@ module.exports = function SetFunctionName(F, name) {
if (typeof F !== 'function') {
throw new $TypeError('Assertion failed: `F` must be a function');
}
if (!IsExtensible(F) || has(F, 'name')) {
if (!IsExtensible(F) || hasOwn(F, 'name')) {
throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property');
}
var nameType = Type(name);
if (nameType !== 'Symbol' && nameType !== 'String') {
if (typeof name !== 'symbol' && typeof name !== 'string') {
throw new $TypeError('Assertion failed: `name` must be a Symbol or a String');
}
if (nameType === 'Symbol') {
if (typeof name === 'symbol') {
var description = getSymbolDescription(name);
// eslint-disable-next-line no-param-reassign
name = typeof description === 'undefined' ? '' : '[' + description + ']';

View file

@ -2,8 +2,8 @@
var GetIntrinsic = require('get-intrinsic');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $TypeError = GetIntrinsic('%TypeError%');
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var $preventExtensions = GetIntrinsic('%Object.preventExtensions%', true);
var $gOPD = require('gopd');
var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true);

View file

@ -2,7 +2,8 @@
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $Uint8Array = GetIntrinsic('%Uint8Array%', true);
var isInteger = require('../helpers/isInteger');
@ -16,20 +17,9 @@ var ToUint8 = require('./ToUint8');
var ToUint8Clamp = require('./ToUint8Clamp');
var isArrayBuffer = require('is-array-buffer');
var has = require('has');
var hasOwn = require('hasown');
var table49 = {
__proto__: null,
Int8: 1,
Uint8: 1,
Uint8C: 1,
Int16: 2,
Uint16: 2,
Int32: 4,
Uint32: 4,
Float32: 4,
Float64: 8
};
var tableTAO = require('./tables/typed-array-objects');
var TypeToAO = {
__proto__: null,
@ -59,7 +49,7 @@ module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value)
throw new $TypeError('Assertion failed: `byteIndex` must be an integer');
}
if (typeof type !== 'string' || !has(table49, type)) {
if (typeof type !== 'string' || !hasOwn(tableTAO.size, '$' + type)) {
throw new $TypeError('Assertion failed: `type` must be a Typed Array Element Type');
}
@ -87,7 +77,7 @@ module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value)
// 6. Assert: block is not undefined.
var elementSize = table49[type]; // step 7
var elementSize = tableTAO.size['$' + type]; // step 7
if (!elementSize) {
throw new $TypeError('Assertion failed: `type` must be one of "Int8", "Uint8", "Uint8C", "Int16", "Uint16", "Int32", "Uint32", "Float32", or "Float64"');
}
@ -101,7 +91,7 @@ module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value)
} else if (type === 'Float64') { // step 2
rawBytes = valueToFloat64Bytes(value, isLittleEndian);
} else {
var n = table49[type]; // step 3.a
var n = elementSize; // step 3.a
var convOp = TypeToAO[type]; // step 3.b
@ -111,7 +101,7 @@ module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value)
}
// 12. Store the individual bytes of rawBytes into block, in order, starting at block[byteIndex].
var arr = new Uint8Array(arrayBuffer, byteIndex, elementSize);
var arr = new $Uint8Array(arrayBuffer, byteIndex, elementSize);
forEach(rawBytes, function (rawByte, i) {
arr[i] = rawByte;
});

View file

@ -3,7 +3,7 @@
var GetIntrinsic = require('get-intrinsic');
var $species = GetIntrinsic('%Symbol.species%', true);
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var IsConstructor = require('./IsConstructor');
var Type = require('./Type');

View file

@ -1,11 +1,8 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var callBound = require('call-bind/callBound');
var $TypeError = GetIntrinsic('%TypeError%');
var Type = require('./Type');
var $TypeError = require('es-errors/type');
var isInteger = require('../helpers/isInteger');
@ -14,13 +11,13 @@ var $charAt = callBound('String.prototype.charAt');
// https://262.ecma-international.org/6.0/#sec-splitmatch
module.exports = function SplitMatch(S, q, R) {
if (Type(S) !== 'String') {
if (typeof S !== 'string') {
throw new $TypeError('Assertion failed: `S` must be a String');
}
if (!isInteger(q)) {
throw new $TypeError('Assertion failed: `q` must be an integer');
}
if (Type(R) !== 'String') {
if (typeof R !== 'string') {
throw new $TypeError('Assertion failed: `R` must be a String');
}
var r = R.length;

View file

@ -2,20 +2,19 @@
var GetIntrinsic = require('get-intrinsic');
var $Object = GetIntrinsic('%Object%');
var $Object = require('es-object-atoms');
var $StringPrototype = GetIntrinsic('%String.prototype%');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $TypeError = GetIntrinsic('%TypeError%');
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var DefinePropertyOrThrow = require('./DefinePropertyOrThrow');
var Type = require('./Type');
var setProto = require('../helpers/setProto');
// https://262.ecma-international.org/6.0/#sec-stringcreate
module.exports = function StringCreate(value, prototype) {
if (Type(value) !== 'String') {
if (typeof value !== 'string') {
throw new $TypeError('Assertion failed: `S` must be a String');
}

View file

@ -1,9 +1,8 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var callBound = require('call-bind/callBound');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $charAt = callBound('String.prototype.charAt');
@ -14,7 +13,6 @@ var unbox = require('unbox-primitive');
var CanonicalNumericIndexString = require('./CanonicalNumericIndexString');
var IsInteger = require('./IsInteger');
var IsPropertyKey = require('./IsPropertyKey');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-stringgetindexproperty
@ -26,7 +24,7 @@ module.exports = function StringGetIndexProperty(S, P) {
throw new $TypeError('Assertion failed: `P` must be a Property Key');
}
if (Type(P) !== 'String') {
if (typeof P !== 'string') {
return void undefined;
}

View file

@ -1,19 +1,15 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var callBound = require('call-bind/callBound');
var $SymbolToString = callBound('Symbol.prototype.toString', true);
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-symboldescriptivestring
module.exports = function SymbolDescriptiveString(sym) {
if (Type(sym) !== 'Symbol') {
if (typeof sym !== 'symbol') {
throw new $TypeError('Assertion failed: `sym` must be a Symbol');
}
return $SymbolToString(sym);

View file

@ -1,9 +1,7 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $gOPD = require('gopd');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var every = require('../helpers/every');
var OwnPropertyKeys = require('../helpers/OwnPropertyKeys');

View file

@ -2,18 +2,16 @@
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $Date = GetIntrinsic('%Date%');
var $String = GetIntrinsic('%String%');
var $isNaN = require('../helpers/isNaN');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-todatestring
module.exports = function ToDateString(tv) {
if (Type(tv) !== 'Number') {
if (typeof tv !== 'number') {
throw new $TypeError('Assertion failed: `tv` must be a Number');
}
if ($isNaN(tv)) {

View file

@ -2,7 +2,7 @@
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $Number = GetIntrinsic('%Number%');
var $RegExp = GetIntrinsic('%RegExp%');
var $parseInteger = GetIntrinsic('%parseInt%');

View file

@ -1,14 +1,5 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $Object = GetIntrinsic('%Object%');
var RequireObjectCoercible = require('./RequireObjectCoercible');
// https://262.ecma-international.org/6.0/#sec-toobject
module.exports = function ToObject(value) {
RequireObjectCoercible(value);
return $Object(value);
};
module.exports = require('es-object-atoms/ToObject');

View file

@ -1,10 +1,8 @@
'use strict';
var has = require('has');
var hasOwn = require('hasown');
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var Type = require('./Type');
var ToBoolean = require('./ToBoolean');
@ -18,26 +16,26 @@ module.exports = function ToPropertyDescriptor(Obj) {
}
var desc = {};
if (has(Obj, 'enumerable')) {
if (hasOwn(Obj, 'enumerable')) {
desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable);
}
if (has(Obj, 'configurable')) {
if (hasOwn(Obj, 'configurable')) {
desc['[[Configurable]]'] = ToBoolean(Obj.configurable);
}
if (has(Obj, 'value')) {
if (hasOwn(Obj, 'value')) {
desc['[[Value]]'] = Obj.value;
}
if (has(Obj, 'writable')) {
if (hasOwn(Obj, 'writable')) {
desc['[[Writable]]'] = ToBoolean(Obj.writable);
}
if (has(Obj, 'get')) {
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 (has(Obj, 'set')) {
if (hasOwn(Obj, 'set')) {
var setter = Obj.set;
if (typeof setter !== 'undefined' && !IsCallable(setter)) {
throw new $TypeError('setter must be a function');
@ -45,7 +43,7 @@ module.exports = function ToPropertyDescriptor(Obj) {
desc['[[Set]]'] = setter;
}
if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {
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;

View file

@ -3,7 +3,7 @@
var GetIntrinsic = require('get-intrinsic');
var $String = GetIntrinsic('%String%');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
// https://262.ecma-international.org/6.0/#sec-tostring

View file

@ -1,11 +1,9 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var DefineOwnProperty = require('../helpers/DefineOwnProperty');
var isPropertyDescriptor = require('../helpers/isPropertyDescriptor');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor');
var FromPropertyDescriptor = require('./FromPropertyDescriptor');
@ -26,27 +24,19 @@ module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, D
if (oType !== 'Undefined' && oType !== 'Object') {
throw new $TypeError('Assertion failed: O must be undefined or an Object');
}
if (Type(extensible) !== 'Boolean') {
if (typeof extensible !== 'boolean') {
throw new $TypeError('Assertion failed: extensible must be a Boolean');
}
if (!isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, Desc)) {
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: Desc must be a Property Descriptor');
}
if (Type(current) !== 'Undefined' && !isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, current)) {
if (typeof current !== 'undefined' && !isPropertyDescriptor(current)) {
throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined');
}
if (oType !== 'Undefined' && !IsPropertyKey(P)) {
throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key');
}
if (Type(current) === 'Undefined') {
if (typeof current === 'undefined') {
if (!extensible) {
return false;
}

View file

@ -1,30 +1,28 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var callBound = require('call-bind/callBound');
var $taSome = callBound('TypedArray.prototype.some', true);
var $TypeError = require('es-errors/type');
var IsDetachedBuffer = require('./IsDetachedBuffer');
var Type = require('./Type');
var isTypedArray = require('is-typed-array');
var typedArrayBuffer = require('typed-array-buffer');
// https://262.ecma-international.org/6.0/#sec-validatetypedarray
module.exports = function ValidateTypedArray(O) {
if (Type(O) !== 'Object') {
throw new $TypeError('Assertion failed: O must be an Object');
throw new $TypeError('Assertion failed: `O` must be an Object'); // step 1
}
if (!isTypedArray(O)) {
throw new $TypeError('Assertion failed: O must be a TypedArray');
throw new $TypeError('Assertion failed: `O` must be a Typed Array'); // steps 2 - 3
}
// without `.some` (like in node 0.10), there's no way to check buffer detachment, but also no way to be detached
if ($taSome) {
$taSome(O, function () { return true; });
var buffer = typedArrayBuffer(O); // step 4
if (IsDetachedBuffer(buffer)) {
throw new $TypeError('`O` must be backed by a non-detached buffer'); // step 5
}
return O.buffer;
return buffer; // step 6
};

View file

@ -0,0 +1,31 @@
'use strict';
// https://262.ecma-international.org/6.0/#table-49
module.exports = {
__proto__: null,
name: {
__proto__: null,
$Int8Array: 'Int8',
$Uint8Array: 'Uint8',
$Uint8ClampedArray: 'Uint8C',
$Int16Array: 'Int16',
$Uint16Array: 'Uint16',
$Int32Array: 'Int32',
$Uint32Array: 'Uint32',
$Float32Array: 'Float32',
$Float64Array: 'Float64'
},
size: {
__proto__: null,
$Int8: 1,
$Uint8: 1,
$Uint8C: 1,
$Int16: 2,
$Uint16: 2,
$Int32: 4,
$Uint32: 4,
$Float32: 4,
$Float64: 8
}
};

View file

@ -2,12 +2,10 @@
var $BooleanValueOf = require('call-bind/callBound')('Boolean.prototype.valueOf');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-properties-of-the-boolean-prototype-object
module.exports = function thisBooleanValue(value) {
if (Type(value) === 'Boolean') {
if (typeof value === 'boolean') {
return value;
}

View file

@ -2,14 +2,12 @@
var callBound = require('call-bind/callBound');
var Type = require('./Type');
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 (Type(value) === 'Number') {
if (typeof value === 'number') {
return value;
}

View file

@ -2,12 +2,10 @@
var $StringValueOf = require('call-bind/callBound')('String.prototype.valueOf');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-properties-of-the-string-prototype-object
module.exports = function thisStringValue(value) {
if (Type(value) === 'String') {
if (typeof value === 'string') {
return value;
}

View file

@ -3,7 +3,7 @@
var GetIntrinsic = require('get-intrinsic');
var $Number = GetIntrinsic('%Number%');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $isNaN = require('../helpers/isNaN');
var $isFinite = require('../helpers/isFinite');
@ -11,13 +11,12 @@ var isPrefixOf = require('../helpers/isPrefixOf');
var ToNumber = require('./ToNumber');
var ToPrimitive = require('./ToPrimitive');
var Type = require('./Type');
// 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 (Type(LeftFirst) !== 'Boolean') {
if (typeof LeftFirst !== 'boolean') {
throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean');
}
var px;
@ -29,7 +28,7 @@ module.exports = function AbstractRelationalComparison(x, y, LeftFirst) {
py = ToPrimitive(y, $Number);
px = ToPrimitive(x, $Number);
}
var bothStrings = Type(px) === 'String' && Type(py) === 'String';
var bothStrings = typeof px === 'string' && typeof py === 'string';
if (!bothStrings) {
var nx = ToNumber(px);
var ny = ToNumber(py);

View file

@ -1,28 +1,24 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var Type = require('./Type');
var isInteger = require('../helpers/isInteger');
var isLeadingSurrogate = require('../helpers/isLeadingSurrogate');
var isTrailingSurrogate = require('../helpers/isTrailingSurrogate');
var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $charCodeAt = require('call-bind/callBound')('String.prototype.charCodeAt');
// https://262.ecma-international.org/6.0/#sec-advancestringindex
module.exports = function AdvanceStringIndex(S, index, unicode) {
if (Type(S) !== 'String') {
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 (Type(unicode) !== 'Boolean') {
if (typeof unicode !== 'boolean') {
throw new $TypeError('Assertion failed: `unicode` must be a Boolean');
}
if (!unicode) {

View file

@ -3,9 +3,9 @@
var GetIntrinsic = require('get-intrinsic');
var $ArrayPrototype = GetIntrinsic('%Array.prototype%');
var $RangeError = GetIntrinsic('%RangeError%');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $TypeError = GetIntrinsic('%TypeError%');
var $RangeError = require('es-errors/range');
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var isInteger = require('../helpers/isInteger');

View file

@ -1,23 +1,19 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $RangeError = GetIntrinsic('%RangeError%');
var $TypeError = GetIntrinsic('%TypeError%');
var $RangeError = require('es-errors/range');
var $TypeError = require('es-errors/type');
var assign = require('object.assign');
var isPropertyDescriptor = require('../helpers/isPropertyDescriptor');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
var IsArray = require('./IsArray');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty');
var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty');
var ToNumber = require('./ToNumber');
var ToString = require('./ToString');
var ToUint32 = require('./ToUint32');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-arraysetlength
@ -26,11 +22,7 @@ module.exports = function ArraySetLength(A, Desc) {
if (!IsArray(A)) {
throw new $TypeError('Assertion failed: A must be an Array');
}
if (!isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, Desc)) {
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: Desc must be a Property Descriptor');
}
if (!('[[Value]]' in Desc)) {

View file

@ -4,7 +4,7 @@ var GetIntrinsic = require('get-intrinsic');
var $Array = GetIntrinsic('%Array%');
var $species = GetIntrinsic('%Symbol.species%', true);
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var Get = require('./Get');
var IsArray = require('./IsArray');

View file

@ -3,7 +3,7 @@
var GetIntrinsic = require('get-intrinsic');
var callBound = require('call-bind/callBound');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var IsArray = require('./IsArray');

View file

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

View file

@ -1,27 +1,23 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var callBound = require('call-bind/callBound');
var has = require('has');
var hasOwn = require('hasown');
var $charCodeAt = callBound('String.prototype.charCodeAt');
var $toUpperCase = callBound('String.prototype.toUpperCase');
var Type = require('./Type');
var caseFolding = require('../helpers/caseFolding');
var caseFolding = require('../helpers/caseFolding.json');
// https://262.ecma-international.org/6.0/#sec-runtime-semantics-canonicalize-ch
module.exports = function Canonicalize(ch, IgnoreCase, Unicode) {
if (Type(ch) !== 'String') {
if (typeof ch !== 'string') {
throw new $TypeError('Assertion failed: `ch` must be a character');
}
if (Type(IgnoreCase) !== 'Boolean' || Type(Unicode) !== 'Boolean') {
if (typeof IgnoreCase !== 'boolean' || typeof Unicode !== 'boolean') {
throw new $TypeError('Assertion failed: `IgnoreCase` and `Unicode` must be Booleans');
}
@ -30,10 +26,10 @@ module.exports = function Canonicalize(ch, IgnoreCase, Unicode) {
}
if (Unicode) { // step 2
if (has(caseFolding.C, ch)) {
if (hasOwn(caseFolding.C, ch)) {
return caseFolding.C[ch];
}
if (has(caseFolding.S, ch)) {
if (hasOwn(caseFolding.S, ch)) {
return caseFolding.S[ch];
}
return ch; // step 2.b

View file

@ -4,7 +4,7 @@ var GetIntrinsic = require('get-intrinsic');
var callBound = require('call-bind/callBound');
var $fromCharCode = GetIntrinsic('%String.fromCharCode%');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $charCodeAt = callBound('String.prototype.charCodeAt');
var $push = callBound('Array.prototype.push');

View file

@ -1,38 +1,42 @@
'use strict';
var has = require('has');
var $TypeError = require('es-errors/type');
var assertRecord = require('../helpers/assertRecord');
var hasOwn = require('hasown');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsGenericDescriptor = require('./IsGenericDescriptor');
var Type = require('./Type');
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 */
assertRecord(Type, 'Property Descriptor', 'Desc', Desc);
if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) {
if (!has(Desc, '[[Value]]')) {
if (!hasOwn(Desc, '[[Value]]')) {
Desc['[[Value]]'] = void 0;
}
if (!has(Desc, '[[Writable]]')) {
if (!hasOwn(Desc, '[[Writable]]')) {
Desc['[[Writable]]'] = false;
}
} else {
if (!has(Desc, '[[Get]]')) {
if (!hasOwn(Desc, '[[Get]]')) {
Desc['[[Get]]'] = void 0;
}
if (!has(Desc, '[[Set]]')) {
if (!hasOwn(Desc, '[[Set]]')) {
Desc['[[Set]]'] = void 0;
}
}
if (!has(Desc, '[[Enumerable]]')) {
if (!hasOwn(Desc, '[[Enumerable]]')) {
Desc['[[Enumerable]]'] = false;
}
if (!has(Desc, '[[Configurable]]')) {
if (!hasOwn(Desc, '[[Configurable]]')) {
Desc['[[Configurable]]'] = false;
}
return Desc;

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $SyntaxError = GetIntrinsic('%SyntaxError%');
var $SyntaxError = require('es-errors/syntax');
var SLOT = require('internal-slot');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var IsPropertyKey = require('./IsPropertyKey');
var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var CreateDataProperty = require('./CreateDataProperty');
var IsPropertyKey = require('./IsPropertyKey');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var callBound = require('call-bind/callBound');
@ -10,12 +8,11 @@ var $replace = callBound('String.prototype.replace');
var RequireObjectCoercible = require('./RequireObjectCoercible');
var ToString = require('./ToString');
var Type = require('./Type');
// https://262.ecma-international.org/6.0/#sec-createhtml
module.exports = function CreateHTML(string, tag, attribute, value) {
if (Type(tag) !== 'String' || Type(attribute) !== 'String') {
if (typeof tag !== 'string' || typeof attribute !== 'string') {
throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings');
}
var str = RequireObjectCoercible(string);

View file

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

View file

@ -1,10 +1,8 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var callBound = require('call-bind/callBound');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf');
var $push = callBound('Array.prototype.push');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
var $TypeError = require('es-errors/type');
var DefineOwnProperty = require('../helpers/DefineOwnProperty');

View file

@ -1,8 +1,6 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $EvalError = GetIntrinsic('%EvalError%');
var $EvalError = require('es-errors/eval');
var DayWithinYear = require('./DayWithinYear');
var InLeapYear = require('./InLeapYear');

View file

@ -1,14 +1,11 @@
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $TypeError = require('es-errors/type');
var $TypeError = GetIntrinsic('%TypeError%');
var isPropertyDescriptor = require('../helpers/isPropertyDescriptor');
var isPropertyDescriptor = require('../helpers/records/property-descriptor');
var DefineOwnProperty = require('../helpers/DefineOwnProperty');
var FromPropertyDescriptor = require('./FromPropertyDescriptor');
var IsAccessorDescriptor = require('./IsAccessorDescriptor');
var IsDataDescriptor = require('./IsDataDescriptor');
var IsPropertyKey = require('./IsPropertyKey');
var SameValue = require('./SameValue');
@ -26,16 +23,8 @@ module.exports = function DefinePropertyOrThrow(O, P, desc) {
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
}
var Desc = isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, desc) ? desc : ToPropertyDescriptor(desc);
if (!isPropertyDescriptor({
Type: Type,
IsDataDescriptor: IsDataDescriptor,
IsAccessorDescriptor: IsAccessorDescriptor
}, Desc)) {
var Desc = isPropertyDescriptor(desc) ? desc : ToPropertyDescriptor(desc);
if (!isPropertyDescriptor(Desc)) {
throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor');
}

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