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
JavaScript
"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