Spaces:
Build error
Build error
| ; | |
| var undefined; | |
| var $SyntaxError = SyntaxError; | |
| var $Function = Function; | |
| var $TypeError = TypeError; | |
| // eslint-disable-next-line consistent-return | |
| var getEvalledConstructor = function (expressionSyntax) { | |
| try { | |
| return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); | |
| } catch (e) {} | |
| }; | |
| var $gOPD = Object.getOwnPropertyDescriptor; | |
| if ($gOPD) { | |
| try { | |
| $gOPD({}, ''); | |
| } catch (e) { | |
| $gOPD = null; // this is IE 8, which has a broken gOPD | |
| } | |
| } | |
| 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 hasProto = require('has-proto')(); | |
| var getProto = Object.getPrototypeOf || ( | |
| hasProto | |
| ? function (x) { return x.__proto__; } // eslint-disable-line no-proto | |
| : null | |
| ); | |
| var needsEval = {}; | |
| var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array); | |
| var INTRINSICS = { | |
| '%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, | |
| '%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, | |
| '%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 | |
| }; | |
| 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 = { | |
| '%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(Function.call, Array.prototype.concat); | |
| var $spliceApply = bind.call(Function.apply, Array.prototype.splice); | |
| var $replace = bind.call(Function.call, String.prototype.replace); | |
| var $strSlice = bind.call(Function.call, String.prototype.slice); | |
| var $exec = bind.call(Function.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; | |
| }; | |