| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378 | 'use strict';var undefined;var $Object = require('es-object-atoms');var $Error = require('es-errors');var $EvalError = require('es-errors/eval');var $RangeError = require('es-errors/range');var $ReferenceError = require('es-errors/ref');var $SyntaxError = require('es-errors/syntax');var $TypeError = require('es-errors/type');var $URIError = require('es-errors/uri');var abs = require('math-intrinsics/abs');var floor = require('math-intrinsics/floor');var max = require('math-intrinsics/max');var min = require('math-intrinsics/min');var pow = require('math-intrinsics/pow');var round = require('math-intrinsics/round');var sign = require('math-intrinsics/sign');var $Function = Function;// eslint-disable-next-line consistent-returnvar getEvalledConstructor = function (expressionSyntax) {	try {		return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')();	} catch (e) {}};var $gOPD = require('gopd');var $defineProperty = require('es-define-property');var throwTypeError = function () {	throw new $TypeError();};var ThrowTypeError = $gOPD	? (function () {		try {			// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties			arguments.callee; // IE 8 does not throw here			return throwTypeError;		} catch (calleeThrows) {			try {				// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')				return $gOPD(arguments, 'callee').get;			} catch (gOPDthrows) {				return throwTypeError;			}		}	}())	: throwTypeError;var hasSymbols = require('has-symbols')();var getProto = require('get-proto');var $ObjectGPO = require('get-proto/Object.getPrototypeOf');var $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');var $apply = require('call-bind-apply-helpers/functionApply');var $call = require('call-bind-apply-helpers/functionCall');var needsEval = {};var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);var INTRINSICS = {	__proto__: null,	'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,	'%Array%': Array,	'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,	'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,	'%AsyncFromSyncIteratorPrototype%': undefined,	'%AsyncFunction%': needsEval,	'%AsyncGenerator%': needsEval,	'%AsyncGeneratorFunction%': needsEval,	'%AsyncIteratorPrototype%': needsEval,	'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,	'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,	'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,	'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,	'%Boolean%': Boolean,	'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,	'%Date%': Date,	'%decodeURI%': decodeURI,	'%decodeURIComponent%': decodeURIComponent,	'%encodeURI%': encodeURI,	'%encodeURIComponent%': encodeURIComponent,	'%Error%': $Error,	'%eval%': eval, // eslint-disable-line no-eval	'%EvalError%': $EvalError,	'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,	'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,	'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,	'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,	'%Function%': $Function,	'%GeneratorFunction%': needsEval,	'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,	'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,	'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,	'%isFinite%': isFinite,	'%isNaN%': isNaN,	'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,	'%JSON%': typeof JSON === 'object' ? JSON : undefined,	'%Map%': typeof Map === 'undefined' ? undefined : Map,	'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),	'%Math%': Math,	'%Number%': Number,	'%Object%': $Object,	'%Object.getOwnPropertyDescriptor%': $gOPD,	'%parseFloat%': parseFloat,	'%parseInt%': parseInt,	'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,	'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,	'%RangeError%': $RangeError,	'%ReferenceError%': $ReferenceError,	'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,	'%RegExp%': RegExp,	'%Set%': typeof Set === 'undefined' ? undefined : Set,	'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),	'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,	'%String%': String,	'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,	'%Symbol%': hasSymbols ? Symbol : undefined,	'%SyntaxError%': $SyntaxError,	'%ThrowTypeError%': ThrowTypeError,	'%TypedArray%': TypedArray,	'%TypeError%': $TypeError,	'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,	'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,	'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,	'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,	'%URIError%': $URIError,	'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,	'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,	'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,	'%Function.prototype.call%': $call,	'%Function.prototype.apply%': $apply,	'%Object.defineProperty%': $defineProperty,	'%Object.getPrototypeOf%': $ObjectGPO,	'%Math.abs%': abs,	'%Math.floor%': floor,	'%Math.max%': max,	'%Math.min%': min,	'%Math.pow%': pow,	'%Math.round%': round,	'%Math.sign%': sign,	'%Reflect.getPrototypeOf%': $ReflectGPO};if (getProto) {	try {		null.error; // eslint-disable-line no-unused-expressions	} catch (e) {		// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229		var errorProto = getProto(getProto(e));		INTRINSICS['%Error.prototype%'] = errorProto;	}}var doEval = function doEval(name) {	var value;	if (name === '%AsyncFunction%') {		value = getEvalledConstructor('async function () {}');	} else if (name === '%GeneratorFunction%') {		value = getEvalledConstructor('function* () {}');	} else if (name === '%AsyncGeneratorFunction%') {		value = getEvalledConstructor('async function* () {}');	} else if (name === '%AsyncGenerator%') {		var fn = doEval('%AsyncGeneratorFunction%');		if (fn) {			value = fn.prototype;		}	} else if (name === '%AsyncIteratorPrototype%') {		var gen = doEval('%AsyncGenerator%');		if (gen && getProto) {			value = getProto(gen.prototype);		}	}	INTRINSICS[name] = value;	return value;};var LEGACY_ALIASES = {	__proto__: null,	'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],	'%ArrayPrototype%': ['Array', 'prototype'],	'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],	'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],	'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],	'%ArrayProto_values%': ['Array', 'prototype', 'values'],	'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],	'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],	'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],	'%BooleanPrototype%': ['Boolean', 'prototype'],	'%DataViewPrototype%': ['DataView', 'prototype'],	'%DatePrototype%': ['Date', 'prototype'],	'%ErrorPrototype%': ['Error', 'prototype'],	'%EvalErrorPrototype%': ['EvalError', 'prototype'],	'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],	'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],	'%FunctionPrototype%': ['Function', 'prototype'],	'%Generator%': ['GeneratorFunction', 'prototype'],	'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],	'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],	'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],	'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],	'%JSONParse%': ['JSON', 'parse'],	'%JSONStringify%': ['JSON', 'stringify'],	'%MapPrototype%': ['Map', 'prototype'],	'%NumberPrototype%': ['Number', 'prototype'],	'%ObjectPrototype%': ['Object', 'prototype'],	'%ObjProto_toString%': ['Object', 'prototype', 'toString'],	'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],	'%PromisePrototype%': ['Promise', 'prototype'],	'%PromiseProto_then%': ['Promise', 'prototype', 'then'],	'%Promise_all%': ['Promise', 'all'],	'%Promise_reject%': ['Promise', 'reject'],	'%Promise_resolve%': ['Promise', 'resolve'],	'%RangeErrorPrototype%': ['RangeError', 'prototype'],	'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],	'%RegExpPrototype%': ['RegExp', 'prototype'],	'%SetPrototype%': ['Set', 'prototype'],	'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],	'%StringPrototype%': ['String', 'prototype'],	'%SymbolPrototype%': ['Symbol', 'prototype'],	'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],	'%TypedArrayPrototype%': ['TypedArray', 'prototype'],	'%TypeErrorPrototype%': ['TypeError', 'prototype'],	'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],	'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],	'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],	'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],	'%URIErrorPrototype%': ['URIError', 'prototype'],	'%WeakMapPrototype%': ['WeakMap', 'prototype'],	'%WeakSetPrototype%': ['WeakSet', 'prototype']};var bind = require('function-bind');var hasOwn = require('hasown');var $concat = bind.call($call, Array.prototype.concat);var $spliceApply = bind.call($apply, Array.prototype.splice);var $replace = bind.call($call, String.prototype.replace);var $strSlice = bind.call($call, String.prototype.slice);var $exec = bind.call($call, RegExp.prototype.exec);/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */var stringToPath = function stringToPath(string) {	var first = $strSlice(string, 0, 1);	var last = $strSlice(string, -1);	if (first === '%' && last !== '%') {		throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');	} else if (last === '%' && first !== '%') {		throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');	}	var result = [];	$replace(string, rePropName, function (match, number, quote, subString) {		result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;	});	return result;};/* end adaptation */var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {	var intrinsicName = name;	var alias;	if (hasOwn(LEGACY_ALIASES, intrinsicName)) {		alias = LEGACY_ALIASES[intrinsicName];		intrinsicName = '%' + alias[0] + '%';	}	if (hasOwn(INTRINSICS, intrinsicName)) {		var value = INTRINSICS[intrinsicName];		if (value === needsEval) {			value = doEval(intrinsicName);		}		if (typeof value === 'undefined' && !allowMissing) {			throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');		}		return {			alias: alias,			name: intrinsicName,			value: value		};	}	throw new $SyntaxError('intrinsic ' + name + ' does not exist!');};module.exports = function GetIntrinsic(name, allowMissing) {	if (typeof name !== 'string' || name.length === 0) {		throw new $TypeError('intrinsic name must be a non-empty string');	}	if (arguments.length > 1 && typeof allowMissing !== 'boolean') {		throw new $TypeError('"allowMissing" argument must be a boolean');	}	if ($exec(/^%?[^%]*%?$/, name) === null) {		throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');	}	var parts = stringToPath(name);	var intrinsicBaseName = parts.length > 0 ? parts[0] : '';	var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);	var intrinsicRealName = intrinsic.name;	var value = intrinsic.value;	var skipFurtherCaching = false;	var alias = intrinsic.alias;	if (alias) {		intrinsicBaseName = alias[0];		$spliceApply(parts, $concat([0, 1], alias));	}	for (var i = 1, isOwn = true; i < parts.length; i += 1) {		var part = parts[i];		var first = $strSlice(part, 0, 1);		var last = $strSlice(part, -1);		if (			(				(first === '"' || first === "'" || first === '`')				|| (last === '"' || last === "'" || last === '`')			)			&& first !== last		) {			throw new $SyntaxError('property names with quotes must have matching quotes');		}		if (part === 'constructor' || !isOwn) {			skipFurtherCaching = true;		}		intrinsicBaseName += '.' + part;		intrinsicRealName = '%' + intrinsicBaseName + '%';		if (hasOwn(INTRINSICS, intrinsicRealName)) {			value = INTRINSICS[intrinsicRealName];		} else if (value != null) {			if (!(part in value)) {				if (!allowMissing) {					throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');				}				return void undefined;			}			if ($gOPD && (i + 1) >= parts.length) {				var desc = $gOPD(value, part);				isOwn = !!desc;				// By convention, when a data property is converted to an accessor				// property to emulate a data property that does not suffer from				// the override mistake, that accessor's getter is marked with				// an `originalValue` property. Here, when we detect this, we				// uphold the illusion by pretending to see that original data				// property, i.e., returning the value rather than the getter				// itself.				if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {					value = desc.get;				} else {					value = value[part];				}			} else {				isOwn = hasOwn(value, part);				value = value[part];			}			if (isOwn && !skipFurtherCaching) {				INTRINSICS[intrinsicRealName] = value;			}		}	}	return value;};
 |