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