UNPKG

prepack

Version:

Execute a JS bundle, serialize global state and side effects to a snapshot that can be quickly restored.

476 lines (342 loc) 23.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initialize = initialize; var _index = require("../domains/index.js"); var _index2 = require("../values/index.js"); var _singletons = require("../singletons.js"); var _Object = _interopRequireDefault(require("./ecma262/Object.js")); var _ObjectPrototype = _interopRequireDefault(require("./ecma262/ObjectPrototype.js")); var _Error = _interopRequireDefault(require("./ecma262/Error.js")); var _ErrorPrototype = _interopRequireDefault(require("./ecma262/ErrorPrototype.js")); var _TypeError = _interopRequireDefault(require("./ecma262/TypeError.js")); var _TypeErrorPrototype = _interopRequireDefault(require("./ecma262/TypeErrorPrototype.js")); var _RangeError = _interopRequireDefault(require("./ecma262/RangeError.js")); var _RangeErrorPrototype = _interopRequireDefault(require("./ecma262/RangeErrorPrototype.js")); var _ReferenceError = _interopRequireDefault(require("./ecma262/ReferenceError.js")); var _ReferenceErrorPrototype = _interopRequireDefault(require("./ecma262/ReferenceErrorPrototype.js")); var _SyntaxError = _interopRequireDefault(require("./ecma262/SyntaxError.js")); var _SyntaxErrorPrototype = _interopRequireDefault(require("./ecma262/SyntaxErrorPrototype.js")); var _URIError = _interopRequireDefault(require("./ecma262/URIError.js")); var _URIErrorPrototype = _interopRequireDefault(require("./ecma262/URIErrorPrototype.js")); var _EvalError = _interopRequireDefault(require("./ecma262/EvalError.js")); var _EvalErrorPrototype = _interopRequireDefault(require("./ecma262/EvalErrorPrototype.js")); var _Function = _interopRequireDefault(require("./ecma262/Function.js")); var _FunctionPrototype = _interopRequireDefault(require("./ecma262/FunctionPrototype.js")); var _Generator = _interopRequireDefault(require("./ecma262/Generator.js")); var _GeneratorFunction = _interopRequireDefault(require("./ecma262/GeneratorFunction.js")); var _GeneratorPrototype = _interopRequireDefault(require("./ecma262/GeneratorPrototype.js")); var _Array = _interopRequireDefault(require("./ecma262/Array.js")); var _ArrayPrototype = _interopRequireDefault(require("./ecma262/ArrayPrototype.js")); var _Date = _interopRequireDefault(require("./ecma262/Date.js")); var _DatePrototype = _interopRequireDefault(require("./ecma262/DatePrototype.js")); var _RegExp = _interopRequireDefault(require("./ecma262/RegExp.js")); var _RegExpPrototype = _interopRequireDefault(require("./ecma262/RegExpPrototype.js")); var _Symbol = _interopRequireDefault(require("./ecma262/Symbol.js")); var _SymbolPrototype = _interopRequireDefault(require("./ecma262/SymbolPrototype.js")); var _String = _interopRequireDefault(require("./ecma262/String.js")); var _StringPrototype = _interopRequireDefault(require("./ecma262/StringPrototype.js")); var _Number = _interopRequireDefault(require("./ecma262/Number.js")); var _NumberPrototype = _interopRequireDefault(require("./ecma262/NumberPrototype.js")); var _Boolean = _interopRequireDefault(require("./ecma262/Boolean.js")); var _BooleanPrototype = _interopRequireDefault(require("./ecma262/BooleanPrototype.js")); var _DataView = _interopRequireDefault(require("./ecma262/DataView.js")); var _DataViewPrototype = _interopRequireDefault(require("./ecma262/DataViewPrototype.js")); var _TypedArray = _interopRequireDefault(require("./ecma262/TypedArray.js")); var _TypedArrayPrototype = _interopRequireDefault(require("./ecma262/TypedArrayPrototype.js")); var _Float32Array = _interopRequireDefault(require("./ecma262/Float32Array.js")); var _Float32ArrayPrototype = _interopRequireDefault(require("./ecma262/Float32ArrayPrototype.js")); var _Float64Array = _interopRequireDefault(require("./ecma262/Float64Array.js")); var _Float64ArrayPrototype = _interopRequireDefault(require("./ecma262/Float64ArrayPrototype.js")); var _Int8Array = _interopRequireDefault(require("./ecma262/Int8Array.js")); var _Int8ArrayPrototype = _interopRequireDefault(require("./ecma262/Int8ArrayPrototype.js")); var _Int16Array = _interopRequireDefault(require("./ecma262/Int16Array.js")); var _Int16ArrayPrototype = _interopRequireDefault(require("./ecma262/Int16ArrayPrototype.js")); var _Int32Array = _interopRequireDefault(require("./ecma262/Int32Array.js")); var _Int32ArrayPrototype = _interopRequireDefault(require("./ecma262/Int32ArrayPrototype.js")); var _Map = _interopRequireDefault(require("./ecma262/Map.js")); var _MapPrototype = _interopRequireDefault(require("./ecma262/MapPrototype.js")); var _WeakMap = _interopRequireDefault(require("./ecma262/WeakMap.js")); var _WeakMapPrototype = _interopRequireDefault(require("./ecma262/WeakMapPrototype.js")); var _Set = _interopRequireDefault(require("./ecma262/Set.js")); var _SetPrototype = _interopRequireDefault(require("./ecma262/SetPrototype.js")); var _Promise = _interopRequireDefault(require("./ecma262/Promise.js")); var _PromisePrototype = _interopRequireDefault(require("./ecma262/PromisePrototype.js")); var _Uint8Array = _interopRequireDefault(require("./ecma262/Uint8Array.js")); var _Uint8ArrayPrototype = _interopRequireDefault(require("./ecma262/Uint8ArrayPrototype.js")); var _Uint8ClampedArray = _interopRequireDefault(require("./ecma262/Uint8ClampedArray.js")); var _Uint8ClampedArrayPrototype = _interopRequireDefault(require("./ecma262/Uint8ClampedArrayPrototype.js")); var _Uint16Array = _interopRequireDefault(require("./ecma262/Uint16Array.js")); var _Uint16ArrayPrototype = _interopRequireDefault(require("./ecma262/Uint16ArrayPrototype.js")); var _Uint32Array = _interopRequireDefault(require("./ecma262/Uint32Array.js")); var _Uint32ArrayPrototype = _interopRequireDefault(require("./ecma262/Uint32ArrayPrototype.js")); var _WeakSet = _interopRequireDefault(require("./ecma262/WeakSet.js")); var _WeakSetPrototype = _interopRequireDefault(require("./ecma262/WeakSetPrototype.js")); var _ArrayBuffer = _interopRequireDefault(require("./ecma262/ArrayBuffer.js")); var _ArrayBufferPrototype = _interopRequireDefault(require("./ecma262/ArrayBufferPrototype.js")); var _JSON = _interopRequireDefault(require("./ecma262/JSON.js")); var _Reflect = _interopRequireDefault(require("./ecma262/Reflect.js")); var _Math = _interopRequireDefault(require("./ecma262/Math.js")); var _Proxy = _interopRequireDefault(require("./ecma262/Proxy.js")); var _parseInt = _interopRequireDefault(require("./ecma262/parseInt.js")); var _parseFloat = _interopRequireDefault(require("./ecma262/parseFloat.js")); var _isFinite = _interopRequireDefault(require("./ecma262/isFinite.js")); var _decodeURI = _interopRequireDefault(require("./ecma262/decodeURI.js")); var _decodeURIComponent = _interopRequireDefault(require("./ecma262/decodeURIComponent.js")); var _encodeURI = _interopRequireDefault(require("./ecma262/encodeURI.js")); var _encodeURIComponent = _interopRequireDefault(require("./ecma262/encodeURIComponent.js")); var _eval = _interopRequireDefault(require("./ecma262/eval.js")); var _isNaN = _interopRequireDefault(require("./ecma262/isNaN.js")); var _ArrayIteratorPrototype = _interopRequireDefault(require("./ecma262/ArrayIteratorPrototype.js")); var _StringIteratorPrototype = _interopRequireDefault(require("./ecma262/StringIteratorPrototype.js")); var _MapIteratorPrototype = _interopRequireDefault(require("./ecma262/MapIteratorPrototype.js")); var _SetIteratorPrototype = _interopRequireDefault(require("./ecma262/SetIteratorPrototype.js")); var _IteratorPrototype = _interopRequireDefault(require("./ecma262/IteratorPrototype.js")); var _ArrayProto_values = _interopRequireDefault(require("./ecma262/ArrayProto_values.js")); var _ArrayProto_toString = _interopRequireDefault(require("./ecma262/ArrayProto_toString.js")); var _ObjectProto_toString = _interopRequireDefault(require("./ecma262/ObjectProto_toString.js")); var _TypedArrayProto_values = _interopRequireDefault(require("./ecma262/TypedArrayProto_values.js")); var _ThrowTypeError = _interopRequireDefault(require("./ecma262/ThrowTypeError.js")); var _IntrospectionError = _interopRequireDefault(require("./prepack/__IntrospectionError.js")); var _IntrospectionErrorPrototype = _interopRequireDefault(require("./prepack/__IntrospectionErrorPrototype.js")); var _descriptors = require("../descriptors.js"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Copyright (c) 2017-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ /* strict-local */ function initialize(i, realm) { i.undefined = new _index2.UndefinedValue(realm); i.empty = new _index2.EmptyValue(realm); i.null = new _index2.NullValue(realm); i.false = new _index2.BooleanValue(realm, false); i.true = new _index2.BooleanValue(realm, true); i.NaN = new _index2.NumberValue(realm, NaN); i.negativeInfinity = new _index2.NumberValue(realm, -Infinity); i.Infinity = new _index2.NumberValue(realm, +Infinity); i.negativeZero = new _index2.NumberValue(realm, -0); i.zero = new _index2.NumberValue(realm, +0); i.emptyString = new _index2.StringValue(realm, ""); // i.ObjectPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Object.prototype"); i.FunctionPrototype = i.ObjectPrototype; i.FunctionPrototype = new _index2.NativeFunctionValue(realm, "Function.prototype", "", 0, context => i.undefined, false); i.parseFloat = (0, _parseFloat.default)(realm); i.parseInt = (0, _parseInt.default)(realm); i.SymbolPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Symbol.prototype"); // initialize common symbols i.SymbolIsConcatSpreadable = new _index2.SymbolValue(realm, new _index2.StringValue(realm, "Symbol.isConcatSpreadable"), "Symbol.isConcatSpreadable"); i.SymbolSpecies = new _index2.SymbolValue(realm, new _index2.StringValue(realm, "Symbol.species"), "Symbol.species"); i.SymbolReplace = new _index2.SymbolValue(realm, new _index2.StringValue(realm, "Symbol.replace"), "Symbol.replace"); i.SymbolIterator = new _index2.SymbolValue(realm, new _index2.StringValue(realm, "Symbol.iterator"), "Symbol.iterator"); i.SymbolHasInstance = new _index2.SymbolValue(realm, new _index2.StringValue(realm, "Symbol.hasInstance"), "Symbol.hasInstance"); i.SymbolToPrimitive = new _index2.SymbolValue(realm, new _index2.StringValue(realm, "Symbol.toPrimitive"), "Symbol.toPrimitive"); i.SymbolToStringTag = new _index2.SymbolValue(realm, new _index2.StringValue(realm, "Symbol.toStringTag"), "Symbol.toStringTag"); i.SymbolMatch = new _index2.SymbolValue(realm, new _index2.StringValue(realm, "Symbol.match"), "Symbol.match"); i.SymbolSplit = new _index2.SymbolValue(realm, new _index2.StringValue(realm, "Symbol.split"), "Symbol.split"); i.SymbolSearch = new _index2.SymbolValue(realm, new _index2.StringValue(realm, "Symbol.search"), "Symbol.search"); i.SymbolUnscopables = new _index2.SymbolValue(realm, new _index2.StringValue(realm, "Symbol.unscopables"), "Symbol.unscopables"); // i.ArrayProto_values = (0, _ArrayProto_values.default)(realm); i.ArrayProto_toString = (0, _ArrayProto_toString.default)(realm); // i.ObjectProto_toString = (0, _ObjectProto_toString.default)(realm); // if (!realm.isCompatibleWith(realm.MOBILE_JSC_VERSION) && !realm.isCompatibleWith("mobile")) i.TypedArrayProto_values = (0, _TypedArrayProto_values.default)(realm); // i.ArrayPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Array.prototype"); i.RegExpPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "RegExp.prototype"); i.DatePrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Date.prototype"); i.StringPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "String.prototype"); i.BooleanPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Boolean.prototype"); i.NumberPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Number.prototype"); i.DataViewPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "DataView.prototype"); i.PromisePrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Promise.prototype"); i.ArrayBufferPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "ArrayBuffer.prototype"); // error prototypes i.ErrorPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Error.prototype"); i.RangeErrorPrototype = new _index2.ObjectValue(realm, i.ErrorPrototype, "RangeError.prototype"); i.TypeErrorPrototype = new _index2.ObjectValue(realm, i.ErrorPrototype, "TypeError.prototype"); i.ReferenceErrorPrototype = new _index2.ObjectValue(realm, i.ErrorPrototype, "ReferenceError.prototype"); i.URIErrorPrototype = new _index2.ObjectValue(realm, i.ErrorPrototype, "URIError.prototype"); i.EvalErrorPrototype = new _index2.ObjectValue(realm, i.ErrorPrototype, "EvalError.prototype"); i.SyntaxErrorPrototype = new _index2.ObjectValue(realm, i.ErrorPrototype, "SyntaxError.prototype"); i.__IntrospectionErrorPrototype = new _index2.ObjectValue(realm, i.ErrorPrototype, "__IntrospectionError.prototype"); // collection prototypes i.MapPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Map.prototype"); i.SetPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Set.prototype"); i.WeakMapPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "WeakMap.prototype"); if (!realm.isCompatibleWith(realm.MOBILE_JSC_VERSION) && !realm.isCompatibleWith("mobile")) { i.WeakSetPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "WeakSet.prototype"); } // typed array prototypes if (!realm.isCompatibleWith(realm.MOBILE_JSC_VERSION) && !realm.isCompatibleWith("mobile")) i.TypedArrayPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "TypedArray.prototype", /* refuseSerialization */ true); i.Float32ArrayPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Float32Array.prototype"); i.Float64ArrayPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Float64Array.prototype"); i.Int8ArrayPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Int8Array.prototype"); i.Int16ArrayPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Int16Array.prototype"); i.Int32ArrayPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Int32Array.prototype"); i.Uint8ArrayPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Uint8Array.prototype"); i.Uint8ClampedArrayPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Uint8ClampedArray.prototype"); i.Uint16ArrayPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Uint16Array.prototype"); i.Uint32ArrayPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "Uint32Array.prototype"); // iterator prototypes i.IteratorPrototype = new _index2.ObjectValue(realm, i.ObjectPrototype, "([][Symbol.iterator]().__proto__.__proto__)"); i.MapIteratorPrototype = new _index2.ObjectValue(realm, i.IteratorPrototype, "(new Map()[Symbol.iterator]().__proto__)"); i.SetIteratorPrototype = new _index2.ObjectValue(realm, i.IteratorPrototype, "(new Set()[Symbol.iterator]().__proto__)"); i.ArrayIteratorPrototype = new _index2.ObjectValue(realm, i.IteratorPrototype, "([][Symbol.iterator]().__proto__)"); i.StringIteratorPrototype = new _index2.ObjectValue(realm, i.IteratorPrototype, '(""[Symbol.iterator]().__proto__)'); // (0, _ObjectPrototype.default)(realm, i.ObjectPrototype); (0, _FunctionPrototype.default)(realm, i.FunctionPrototype); (0, _ArrayPrototype.default)(realm, i.ArrayPrototype); (0, _DatePrototype.default)(realm, i.DatePrototype); (0, _RegExpPrototype.default)(realm, i.RegExpPrototype); (0, _StringPrototype.default)(realm, i.StringPrototype); (0, _BooleanPrototype.default)(realm, i.BooleanPrototype); (0, _NumberPrototype.default)(realm, i.NumberPrototype); (0, _SymbolPrototype.default)(realm, i.SymbolPrototype); (0, _ErrorPrototype.default)(realm, i.ErrorPrototype); (0, _TypeErrorPrototype.default)(realm, i.TypeErrorPrototype); (0, _RangeErrorPrototype.default)(realm, i.RangeErrorPrototype); (0, _ReferenceErrorPrototype.default)(realm, i.ReferenceErrorPrototype); (0, _URIErrorPrototype.default)(realm, i.URIErrorPrototype); (0, _EvalErrorPrototype.default)(realm, i.EvalErrorPrototype); (0, _SyntaxErrorPrototype.default)(realm, i.SyntaxErrorPrototype); (0, _IntrospectionErrorPrototype.default)(realm, i.__IntrospectionErrorPrototype); (0, _DataViewPrototype.default)(realm, i.DataViewPrototype); (0, _WeakMapPrototype.default)(realm, i.WeakMapPrototype); if (!realm.isCompatibleWith(realm.MOBILE_JSC_VERSION) && !realm.isCompatibleWith("mobile")) { (0, _TypedArrayPrototype.default)(realm, i.TypedArrayPrototype); (0, _WeakSetPrototype.default)(realm, i.WeakSetPrototype); } (0, _Float32ArrayPrototype.default)(realm, i.Float32ArrayPrototype); (0, _Float64ArrayPrototype.default)(realm, i.Float64ArrayPrototype); (0, _Int8ArrayPrototype.default)(realm, i.Int8ArrayPrototype); (0, _Int16ArrayPrototype.default)(realm, i.Int16ArrayPrototype); (0, _Int32ArrayPrototype.default)(realm, i.Int32ArrayPrototype); (0, _MapPrototype.default)(realm, i.MapPrototype); (0, _SetPrototype.default)(realm, i.SetPrototype); (0, _PromisePrototype.default)(realm, i.PromisePrototype); (0, _Uint8ArrayPrototype.default)(realm, i.Uint8ArrayPrototype); (0, _Uint8ClampedArrayPrototype.default)(realm, i.Uint8ClampedArrayPrototype); (0, _Uint16ArrayPrototype.default)(realm, i.Uint16ArrayPrototype); (0, _Uint32ArrayPrototype.default)(realm, i.Uint32ArrayPrototype); (0, _ArrayBufferPrototype.default)(realm, i.ArrayBufferPrototype); // iterator prototypes (0, _IteratorPrototype.default)(realm, i.IteratorPrototype); (0, _ArrayIteratorPrototype.default)(realm, i.ArrayIteratorPrototype); (0, _StringIteratorPrototype.default)(realm, i.StringIteratorPrototype); (0, _MapIteratorPrototype.default)(realm, i.MapIteratorPrototype); (0, _SetIteratorPrototype.default)(realm, i.SetIteratorPrototype); // i.Object = (0, _Object.default)(realm); i.Function = (0, _Function.default)(realm); i.Array = (0, _Array.default)(realm); i.RegExp = (0, _RegExp.default)(realm); i.Date = (0, _Date.default)(realm); i.String = (0, _String.default)(realm); i.Math = (0, _Math.default)(realm); i.Boolean = (0, _Boolean.default)(realm); i.Number = (0, _Number.default)(realm); i.Symbol = (0, _Symbol.default)(realm); i.JSON = (0, _JSON.default)(realm); i.Proxy = (0, _Proxy.default)(realm); if (!realm.isCompatibleWith(realm.MOBILE_JSC_VERSION) && !realm.isCompatibleWith("mobile")) i.Reflect = (0, _Reflect.default)(realm); i.Promise = (0, _Promise.default)(realm); i.DataView = (0, _DataView.default)(realm); // collections i.Set = (0, _Set.default)(realm); i.Map = (0, _Map.default)(realm); i.WeakMap = (0, _WeakMap.default)(realm); if (!realm.isCompatibleWith(realm.MOBILE_JSC_VERSION) && !realm.isCompatibleWith("mobile")) { i.WeakSet = (0, _WeakSet.default)(realm); } i.ArrayBuffer = (0, _ArrayBuffer.default)(realm); // typed arrays if (!realm.isCompatibleWith(realm.MOBILE_JSC_VERSION) && !realm.isCompatibleWith("mobile")) i.TypedArray = (0, _TypedArray.default)(realm); i.Float32Array = (0, _Float32Array.default)(realm); i.Float64Array = (0, _Float64Array.default)(realm); i.Int8Array = (0, _Int8Array.default)(realm); i.Int16Array = (0, _Int16Array.default)(realm); i.Int32Array = (0, _Int32Array.default)(realm); i.Uint8Array = (0, _Uint8Array.default)(realm); i.Uint8ClampedArray = (0, _Uint8ClampedArray.default)(realm); i.Uint16Array = (0, _Uint16Array.default)(realm); i.Uint32Array = (0, _Uint32Array.default)(realm); // i.Error = (0, _Error.default)(realm); i.TypeError = (0, _TypeError.default)(realm); i.RangeError = (0, _RangeError.default)(realm); i.ReferenceError = (0, _ReferenceError.default)(realm); i.URIError = (0, _URIError.default)(realm); i.EvalError = (0, _EvalError.default)(realm); i.SyntaxError = (0, _SyntaxError.default)(realm); i.__IntrospectionError = (0, _IntrospectionError.default)(realm); // let builtins = ["Object", "Function", "Symbol", "String", "Array", "Boolean", "RegExp", "Date", "Error", "Number", "TypeError", "RangeError", "ReferenceError", "SyntaxError", "URIError", "EvalError", "DataView", "Float32Array", "Float64Array", "Int8Array", "Int16Array", "Int32Array", "Map", "Set", "WeakMap", "Promise", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "ArrayBuffer"]; if (!realm.isCompatibleWith(realm.MOBILE_JSC_VERSION) && !realm.isCompatibleWith("mobile")) { builtins = builtins.concat(["WeakSet", "TypedArray"]); } for (let name of builtins) { let fn = i[name]; let proto = i[`${name}Prototype`]; proto.$DefineOwnProperty("constructor", new _descriptors.PropertyDescriptor({ value: fn, writable: true, enumerable: false, configurable: true })); fn.$DefineOwnProperty("prototype", new _descriptors.PropertyDescriptor({ value: proto, writable: false, enumerable: false, configurable: false })); fn.$DefineOwnProperty("constructor", new _descriptors.PropertyDescriptor({ value: i.Function, writable: true, enumerable: false, configurable: true })); } // i.GeneratorPrototype = new _index2.ObjectValue(realm, i.FunctionPrototype, "Generator.prototype"); (0, _GeneratorPrototype.default)(realm, i.GeneratorPrototype); i.Generator = new _index2.ObjectValue(realm, i.FunctionPrototype, "Generator"); (0, _Generator.default)(realm, i.Generator); i.GeneratorFunction = (0, _GeneratorFunction.default)(realm); i.Generator.$DefineOwnProperty("prototype", new _descriptors.PropertyDescriptor({ value: i.GeneratorPrototype, writable: false, enumerable: false, configurable: true })); i.GeneratorPrototype.$DefineOwnProperty("constructor", new _descriptors.PropertyDescriptor({ value: i.Generator, writable: false, enumerable: false, configurable: true })); i.GeneratorFunction.$DefineOwnProperty("prototype", new _descriptors.PropertyDescriptor({ value: i.Generator, writable: false, enumerable: false, configurable: false })); i.Generator.$DefineOwnProperty("constructor", new _descriptors.PropertyDescriptor({ value: i.GeneratorFunction, writable: false, enumerable: false, configurable: true })); // i.isNaN = (0, _isNaN.default)(realm); i.isFinite = (0, _isFinite.default)(realm); i.decodeURI = (0, _decodeURI.default)(realm); i.decodeURIComponent = (0, _decodeURIComponent.default)(realm); i.encodeURI = (0, _encodeURI.default)(realm); i.encodeURIComponent = (0, _encodeURIComponent.default)(realm); i.ThrowTypeError = (0, _ThrowTypeError.default)(realm); i.eval = (0, _eval.default)(realm); // 8.2.2, step 12 _singletons.Functions.AddRestrictedFunctionProperties(i.FunctionPrototype, realm); // if (realm.useAbstractInterpretation) { _index.TypesDomain.topVal = new _index.TypesDomain(undefined); _index.ValuesDomain.topVal = new _index.ValuesDomain(undefined); i.__topValue = new _index2.AbstractValue(realm, _index.TypesDomain.topVal, _index.ValuesDomain.topVal, Number.MAX_SAFE_INTEGER, []); _index.TypesDomain.bottomVal = new _index.TypesDomain(_index2.EmptyValue); _index.ValuesDomain.bottomVal = new _index.ValuesDomain(new Set()); i.__bottomValue = new _index2.AbstractValue(realm, _index.TypesDomain.bottomVal, _index.ValuesDomain.bottomVal, Number.MIN_SAFE_INTEGER, []); } return i; } //# sourceMappingURL=index.js.map