// Copyright (C) 2018 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- description: | An Array of all representable Well-Known Intrinsic Objects defines: [WellKnownIntrinsicObjects] ---*/ const WellKnownIntrinsicObjects = [ { name: '%AggregateError%', source: 'AggregateError', }, { name: '%Array%', source: 'Array', }, { name: '%ArrayBuffer%', source: 'ArrayBuffer', }, { name: '%ArrayIteratorPrototype%', source: 'Object.getPrototypeOf([][Symbol.iterator]())', }, { name: '%AsyncFromSyncIteratorPrototype%', source: 'undefined', }, { name: '%AsyncFunction%', source: '(async function() {}).constructor', }, { name: '%AsyncGeneratorFunction%', source: 'Object.getPrototypeOf(async function * () {})', }, { name: '%AsyncIteratorPrototype%', source: '((async function * () {})())[Symbol.asyncIterator]()', }, { name: '%Atomics%', source: 'Atomics', }, { name: '%BigInt%', source: 'BigInt', }, { name: '%BigInt64Array%', source: 'BigInt64Array', }, { name: '%BigUint64Array%', source: 'BigUint64Array', }, { name: '%Boolean%', source: 'Boolean', }, { name: '%DataView%', source: 'DataView', }, { name: '%Date%', source: 'Date', }, { name: '%decodeURI%', source: 'decodeURI', }, { name: '%decodeURIComponent%', source: 'decodeURIComponent', }, { name: '%encodeURI%', source: 'encodeURI', }, { name: '%encodeURIComponent%', source: 'encodeURIComponent', }, { name: '%Error%', source: 'Error', }, { name: '%eval%', source: 'eval', }, { name: '%EvalError%', source: 'EvalError', }, { name: '%FinalizationRegistry%', source: 'FinalizationRegistry', }, { name: '%Float32Array%', source: 'Float32Array', }, { name: '%Float64Array%', source: 'Float64Array', }, { name: '%ForInIteratorPrototype%', source: '', }, { name: '%Function%', source: 'Function', }, { name: '%GeneratorFunction%', source: 'Object.getPrototypeOf(function * () {})', }, { name: '%Int8Array%', source: 'Int8Array', }, { name: '%Int16Array%', source: 'Int16Array', }, { name: '%Int32Array%', source: 'Int32Array', }, { name: '%isFinite%', source: 'isFinite', }, { name: '%isNaN%', source: 'isNaN', }, { name: '%IteratorPrototype%', source: 'Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))', }, { name: '%JSON%', source: 'JSON', }, { name: '%Map%', source: 'Map', }, { name: '%MapIteratorPrototype%', source: 'Object.getPrototypeOf(new Map()[Symbol.iterator]())', }, { name: '%Math%', source: 'Math', }, { name: '%Number%', source: 'Number', }, { name: '%Object%', source: 'Object', }, { name: '%parseFloat%', source: 'parseFloat', }, { name: '%parseInt%', source: 'parseInt', }, { name: '%Promise%', source: 'Promise', }, { name: '%Proxy%', source: 'Proxy', }, { name: '%RangeError%', source: 'RangeError', }, { name: '%ReferenceError%', source: 'ReferenceError', }, { name: '%Reflect%', source: 'Reflect', }, { name: '%RegExp%', source: 'RegExp', }, { name: '%RegExpStringIteratorPrototype%', source: 'RegExp.prototype[Symbol.matchAll]("")', }, { name: '%Set%', source: 'Set', }, { name: '%SetIteratorPrototype%', source: 'Object.getPrototypeOf(new Set()[Symbol.iterator]())', }, { name: '%SharedArrayBuffer%', source: 'SharedArrayBuffer', }, { name: '%String%', source: 'String', }, { name: '%StringIteratorPrototype%', source: 'Object.getPrototypeOf(new String()[Symbol.iterator]())', }, { name: '%Symbol%', source: 'Symbol', }, { name: '%SyntaxError%', source: 'SyntaxError', }, { name: '%ThrowTypeError%', source: '(function() { "use strict"; return Object.getOwnPropertyDescriptor(arguments, "callee").get })()', }, { name: '%TypedArray%', source: 'Object.getPrototypeOf(Uint8Array)', }, { name: '%TypeError%', source: 'TypeError', }, { name: '%Uint8Array%', source: 'Uint8Array', }, { name: '%Uint8ClampedArray%', source: 'Uint8ClampedArray', }, { name: '%Uint16Array%', source: 'Uint16Array', }, { name: '%Uint32Array%', source: 'Uint32Array', }, { name: '%URIError%', source: 'URIError', }, { name: '%WeakMap%', source: 'WeakMap', }, { name: '%WeakRef%', source: 'WeakRef', }, { name: '%WeakSet%', source: 'WeakSet', }, ]; WellKnownIntrinsicObjects.forEach((wkio) => { var actual; try { actual = new Function("return " + wkio.source)(); } catch (exception) { // Nothing to do here. } wkio.value = actual; });