UNPKG

prepack

Version:

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

72 lines (50 loc) 3.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; var _realm = require("./realm.js"); var _initializeSingletons = _interopRequireDefault(require("./initialize-singletons.js")); var _index = require("./intrinsics/index.js"); var _global = _interopRequireDefault(require("./intrinsics/ecma262/global.js")); var _statistics = require("./statistics.js"); var evaluators = _interopRequireWildcard(require("./evaluators/index.js")); var _singletons = require("./singletons.js"); var _index3 = require("./values/index.js"); var _Debugger = require("./debugger/server/Debugger.js"); var _simplifier = _interopRequireDefault(require("./utils/simplifier.js")); var _invariant = _interopRequireDefault(require("./invariant.js")); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } 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 _default(opts = {}, debuggerConfigArgs, statistics = undefined, debugReproArgs) { (0, _initializeSingletons.default)(); let r = new _realm.Realm(opts, statistics || new _statistics.RealmStatistics()); // Presence of debugChannel indicates we wish to use debugger. if (debuggerConfigArgs) { let debugChannel = debuggerConfigArgs.debugChannel; if (debugChannel) { (0, _invariant.default)(debugChannel.debuggerIsAttached(), "Debugger intends to be used but is not attached."); r.debuggerInstance = new _Debugger.DebugServer(debugChannel, r, debuggerConfigArgs); } } if (debugReproArgs !== undefined) r.debugReproManager = _singletons.DebugReproManager.construct(debugReproArgs); let i = r.intrinsics; (0, _index.initialize)(i, r); // TODO: Find a way to let different environments initialize their own global // object for special magic host objects such as the window object in the DOM. r.$GlobalObject = new _index3.ObjectValue(r, i.ObjectPrototype, "global"); (0, _global.default)(r); for (let name in evaluators) r.evaluators[name] = evaluators[name]; r.simplifyAndRefineAbstractValue = _simplifier.default.bind(null, r, false); r.simplifyAndRefineAbstractCondition = _simplifier.default.bind(null, r, true); r.$GlobalEnv = _singletons.Environment.NewGlobalEnvironment(r, r.$GlobalObject, r.$GlobalObject); return r; } //# sourceMappingURL=construct_realm.js.map