| // 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 |
| ---*/ |
| |
| const WellKnownIntrinsicObjects = [ |
| { |
| intrinsicName: "%Array%", |
| globalNameOrSource: "Array" |
| }, |
| { |
| intrinsicName: "%ArrayBuffer%", |
| globalNameOrSource: "ArrayBuffer" |
| }, |
| { |
| intrinsicName: "%ArrayBufferPrototype%", |
| globalNameOrSource: "ArrayBuffer.prototype" |
| }, |
| { |
| intrinsicName: "%ArrayIteratorPrototype%", |
| globalNameOrSource: "Object.getPrototypeOf([][Symbol.iterator]())" |
| }, |
| { |
| intrinsicName: "%ArrayPrototype%", |
| globalNameOrSource: "Array.prototype" |
| }, |
| { |
| intrinsicName: "%ArrayProto_entries%", |
| globalNameOrSource: "Array.prototype.entries" |
| }, |
| { |
| intrinsicName: "%ArrayProto_forEach%", |
| globalNameOrSource: "Array.prototype.forEach" |
| }, |
| { |
| intrinsicName: "%ArrayProto_keys%", |
| globalNameOrSource: "Array.prototype.keys" |
| }, |
| { |
| intrinsicName: "%ArrayProto_values%", |
| globalNameOrSource: "Array.prototype.values" |
| }, |
| { |
| intrinsicName: "%AsyncFromSyncIteratorPrototype%", |
| globalNameOrSource: "undefined" |
| }, |
| { |
| intrinsicName: "%AsyncFunction%", |
| globalNameOrSource: "(async function() {}).constructor" |
| }, |
| { |
| intrinsicName: "%AsyncFunctionPrototype%", |
| globalNameOrSource: "(async function() {}).constructor.prototype" |
| }, |
| { |
| intrinsicName: "%AsyncGenerator%", |
| globalNameOrSource: "Object.getPrototypeOf((async function * () {})())" |
| }, |
| { |
| intrinsicName: "%AsyncGeneratorFunction%", |
| globalNameOrSource: "Object.getPrototypeOf(async function * () {})" |
| }, |
| { |
| intrinsicName: "%AsyncGeneratorPrototype%", |
| globalNameOrSource: "Object.getPrototypeOf(async function * () {}).prototype" |
| }, |
| { |
| intrinsicName: "%AsyncIteratorPrototype%", |
| globalNameOrSource: "((async function * () {})())[Symbol.asyncIterator]()" |
| }, |
| { |
| intrinsicName: "%Atomics%", |
| globalNameOrSource: "Atomics" |
| }, |
| { |
| intrinsicName: "%Boolean%", |
| globalNameOrSource: "Boolean" |
| }, |
| { |
| intrinsicName: "%BooleanPrototype%", |
| globalNameOrSource: "Boolean.prototype" |
| }, |
| { |
| intrinsicName: "%DataView%", |
| globalNameOrSource: "DataView" |
| }, |
| { |
| intrinsicName: "%DataViewPrototype%", |
| globalNameOrSource: "DataView.prototype" |
| }, |
| { |
| intrinsicName: "%Date%", |
| globalNameOrSource: "Date" |
| }, |
| { |
| intrinsicName: "%DatePrototype%", |
| globalNameOrSource: "Date.prototype" |
| }, |
| { |
| intrinsicName: "%decodeURI%", |
| globalNameOrSource: "decodeURI" |
| }, |
| { |
| intrinsicName: "%decodeURIComponent%", |
| globalNameOrSource: "decodeURIComponent" |
| }, |
| { |
| intrinsicName: "%encodeURI%", |
| globalNameOrSource: "encodeURI" |
| }, |
| { |
| intrinsicName: "%encodeURIComponent%", |
| globalNameOrSource: "encodeURIComponent" |
| }, |
| { |
| intrinsicName: "%Error%", |
| globalNameOrSource: "Error" |
| }, |
| { |
| intrinsicName: "%ErrorPrototype%", |
| globalNameOrSource: "Error.prototype" |
| }, |
| { |
| intrinsicName: "%eval%", |
| globalNameOrSource: "eval" |
| }, |
| { |
| intrinsicName: "%EvalError%", |
| globalNameOrSource: "EvalError" |
| }, |
| { |
| intrinsicName: "%EvalErrorPrototype%", |
| globalNameOrSource: "EvalError.prototype" |
| }, |
| { |
| intrinsicName: "%Float32Array%", |
| globalNameOrSource: "Float32Array" |
| }, |
| { |
| intrinsicName: "%Float32ArrayPrototype%", |
| globalNameOrSource: "Float32Array.prototype" |
| }, |
| { |
| intrinsicName: "%Float64Array%", |
| globalNameOrSource: "Float64Array" |
| }, |
| { |
| intrinsicName: "%Float64ArrayPrototype%", |
| globalNameOrSource: "Float64Array.prototype" |
| }, |
| { |
| intrinsicName: "%Function%", |
| globalNameOrSource: "Function" |
| }, |
| { |
| intrinsicName: "%FunctionPrototype%", |
| globalNameOrSource: "Function.prototype" |
| }, |
| { |
| intrinsicName: "%Generator%", |
| globalNameOrSource: "Object.getPrototypeOf((function * () {})())" |
| }, |
| { |
| intrinsicName: "%GeneratorFunction%", |
| globalNameOrSource: "Object.getPrototypeOf(function * () {})" |
| }, |
| { |
| intrinsicName: "%GeneratorPrototype%", |
| globalNameOrSource: "Object.getPrototypeOf(function * () {}).prototype" |
| }, |
| { |
| intrinsicName: "%Int8Array%", |
| globalNameOrSource: "Int8Array" |
| }, |
| { |
| intrinsicName: "%Int8ArrayPrototype%", |
| globalNameOrSource: "Int8Array.prototype" |
| }, |
| { |
| intrinsicName: "%Int16Array%", |
| globalNameOrSource: "Int16Array" |
| }, |
| { |
| intrinsicName: "%Int16ArrayPrototype%", |
| globalNameOrSource: "Int16Array.prototype" |
| }, |
| { |
| intrinsicName: "%Int32Array%", |
| globalNameOrSource: "Int32Array" |
| }, |
| { |
| intrinsicName: "%Int32ArrayPrototype%", |
| globalNameOrSource: "Int32Array.prototype" |
| }, |
| { |
| intrinsicName: "%isFinite%", |
| globalNameOrSource: "isFinite" |
| }, |
| { |
| intrinsicName: "%isNaN%", |
| globalNameOrSource: "isNaN" |
| }, |
| { |
| intrinsicName: "%IteratorPrototype%", |
| globalNameOrSource: "Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))" |
| }, |
| { |
| intrinsicName: "%JSON%", |
| globalNameOrSource: "JSON" |
| }, |
| { |
| intrinsicName: "%JSONParse%", |
| globalNameOrSource: "JSON.parse" |
| }, |
| { |
| intrinsicName: "%Map%", |
| globalNameOrSource: "Map" |
| }, |
| { |
| intrinsicName: "%MapIteratorPrototype%", |
| globalNameOrSource: "Object.getPrototypeOf(new Map()[Symbol.iterator]())" |
| }, |
| { |
| intrinsicName: "%MapPrototype%", |
| globalNameOrSource: "Map.prototype" |
| }, |
| { |
| intrinsicName: "%Math%", |
| globalNameOrSource: "Math" |
| }, |
| { |
| intrinsicName: "%Number%", |
| globalNameOrSource: "Number" |
| }, |
| { |
| intrinsicName: "%NumberPrototype%", |
| globalNameOrSource: "Number.prototype" |
| }, |
| { |
| intrinsicName: "%Object%", |
| globalNameOrSource: "Object" |
| }, |
| { |
| intrinsicName: "%ObjectPrototype%", |
| globalNameOrSource: "Object.prototype" |
| }, |
| { |
| intrinsicName: "%ObjProto_toString%", |
| globalNameOrSource: "Object.prototype.toString" |
| }, |
| { |
| intrinsicName: "%ObjProto_valueOf%", |
| globalNameOrSource: "Object.prototype.valueOf" |
| }, |
| { |
| intrinsicName: "%parseFloat%", |
| globalNameOrSource: "parseFloat" |
| }, |
| { |
| intrinsicName: "%parseInt%", |
| globalNameOrSource: "parseInt" |
| }, |
| { |
| intrinsicName: "%Promise%", |
| globalNameOrSource: "Promise" |
| }, |
| { |
| intrinsicName: "%PromisePrototype%", |
| globalNameOrSource: "Promise.prototype" |
| }, |
| { |
| intrinsicName: "%PromiseProto_then%", |
| globalNameOrSource: "Promise.prototype.then" |
| }, |
| { |
| intrinsicName: "%Promise_all%", |
| globalNameOrSource: "Promise.all" |
| }, |
| { |
| intrinsicName: "%Promise_reject%", |
| globalNameOrSource: "Promise.reject" |
| }, |
| { |
| intrinsicName: "%Promise_resolve%", |
| globalNameOrSource: "Promise.resolve" |
| }, |
| { |
| intrinsicName: "%Proxy%", |
| globalNameOrSource: "Proxy" |
| }, |
| { |
| intrinsicName: "%RangeError%", |
| globalNameOrSource: "RangeError" |
| }, |
| { |
| intrinsicName: "%RangeErrorPrototype%", |
| globalNameOrSource: "RangeError.prototype" |
| }, |
| { |
| intrinsicName: "%ReferenceError%", |
| globalNameOrSource: "ReferenceError" |
| }, |
| { |
| intrinsicName: "%ReferenceErrorPrototype%", |
| globalNameOrSource: "ReferenceError.prototype" |
| }, |
| { |
| intrinsicName: "%Reflect%", |
| globalNameOrSource: "Reflect" |
| }, |
| { |
| intrinsicName: "%RegExp%", |
| globalNameOrSource: "RegExp" |
| }, |
| { |
| intrinsicName: "%RegExpPrototype%", |
| globalNameOrSource: "RegExp.prototype" |
| }, |
| { |
| intrinsicName: "%Set%", |
| globalNameOrSource: "Set" |
| }, |
| { |
| intrinsicName: "%SetIteratorPrototype%", |
| globalNameOrSource: "Object.getPrototypeOf(new Set()[Symbol.iterator]())" |
| }, |
| { |
| intrinsicName: "%SetPrototype%", |
| globalNameOrSource: "Set.prototype" |
| }, |
| { |
| intrinsicName: "%SharedArrayBuffer%", |
| globalNameOrSource: "SharedArrayBuffer" |
| }, |
| { |
| intrinsicName: "%SharedArrayBufferPrototype%", |
| globalNameOrSource: "SharedArrayBuffer.prototype" |
| }, |
| { |
| intrinsicName: "%String%", |
| globalNameOrSource: "String" |
| }, |
| { |
| intrinsicName: "%StringIteratorPrototype%", |
| globalNameOrSource: "Object.getPrototypeOf(new String()[Symbol.iterator]())" |
| }, |
| { |
| intrinsicName: "%StringPrototype%", |
| globalNameOrSource: "String.prototype" |
| }, |
| { |
| intrinsicName: "%Symbol%", |
| globalNameOrSource: "Symbol" |
| }, |
| { |
| intrinsicName: "%SymbolPrototype%", |
| globalNameOrSource: "Symbol.prototype" |
| }, |
| { |
| intrinsicName: "%SyntaxError%", |
| globalNameOrSource: "SyntaxError" |
| }, |
| { |
| intrinsicName: "%SyntaxErrorPrototype%", |
| globalNameOrSource: "SyntaxError.prototype" |
| }, |
| { |
| intrinsicName: "%ThrowTypeError%", |
| globalNameOrSource: "(function() { 'use strict'; return Object.getOwnPropertyDescriptor(arguments, 'callee').get })()" |
| }, |
| { |
| intrinsicName: "%TypedArray%", |
| globalNameOrSource: "Object.getPrototypeOf(Uint8Array)" |
| }, |
| { |
| intrinsicName: "%TypedArrayPrototype%", |
| globalNameOrSource: "Object.getPrototypeOf(Uint8Array).prototype" |
| }, |
| { |
| intrinsicName: "%TypeError%", |
| globalNameOrSource: "TypeError" |
| }, |
| { |
| intrinsicName: "%TypeErrorPrototype%", |
| globalNameOrSource: "TypeError.prototype" |
| }, |
| { |
| intrinsicName: "%Uint8Array%", |
| globalNameOrSource: "Uint8Array" |
| }, |
| { |
| intrinsicName: "%Uint8ArrayPrototype%", |
| globalNameOrSource: "Uint8Array.prototype" |
| }, |
| { |
| intrinsicName: "%Uint8ClampedArray%", |
| globalNameOrSource: "Uint8ClampedArray" |
| }, |
| { |
| intrinsicName: "%Uint8ClampedArrayPrototype%", |
| globalNameOrSource: "Uint8ClampedArray.prototype" |
| }, |
| { |
| intrinsicName: "%Uint16Array%", |
| globalNameOrSource: "Uint16Array" |
| }, |
| { |
| intrinsicName: "%Uint16ArrayPrototype%", |
| globalNameOrSource: "Uint16Array.prototype" |
| }, |
| { |
| intrinsicName: "%Uint32Array%", |
| globalNameOrSource: "Uint32Array" |
| }, |
| { |
| intrinsicName: "%Uint32ArrayPrototype%", |
| globalNameOrSource: "Uint32Array.prototype" |
| }, |
| { |
| intrinsicName: "%URIError%", |
| globalNameOrSource: "URIError" |
| }, |
| { |
| intrinsicName: "%URIErrorPrototype%", |
| globalNameOrSource: "URIError.prototype" |
| }, |
| { |
| intrinsicName: "%WeakMap%", |
| globalNameOrSource: "WeakMap" |
| }, |
| { |
| intrinsicName: "%WeakMapPrototype%", |
| globalNameOrSource: "WeakMap.prototype" |
| }, |
| { |
| intrinsicName: "%WeakSet%", |
| globalNameOrSource: "WeakSet" |
| }, |
| { |
| intrinsicName: "%WeakSetPrototype%", |
| globalNameOrSource: "WeakSet.prototype" |
| } |
| ]; |
| |
| |
| WellKnownIntrinsicObjects.forEach(wkio => { |
| var actual; |
| |
| try { |
| actual = new Function("return " + wkio.globalNameOrSource)(); |
| } catch (exception) { |
| // Nothing to do here. |
| } |
| |
| wkio.reference = actual; |
| }); |