UNPKG

3.17 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = _default;
7
8var _realm = require("./realm.js");
9
10var _initializeSingletons = _interopRequireDefault(require("./initialize-singletons.js"));
11
12var _index = require("./intrinsics/index.js");
13
14var _global = _interopRequireDefault(require("./intrinsics/ecma262/global.js"));
15
16var _statistics = require("./statistics.js");
17
18var evaluators = _interopRequireWildcard(require("./evaluators/index.js"));
19
20var partialEvaluators = _interopRequireWildcard(require("./partial-evaluators/index.js"));
21
22var _singletons = require("./singletons.js");
23
24var _index4 = require("./values/index.js");
25
26var _Debugger = require("./debugger/server/Debugger.js");
27
28var _simplifier = _interopRequireDefault(require("./utils/simplifier.js"));
29
30var _invariant = _interopRequireDefault(require("./invariant.js"));
31
32function _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; } }
33
34function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
36/**
37 * Copyright (c) 2017-present, Facebook, Inc.
38 * All rights reserved.
39 *
40 * This source code is licensed under the BSD-style license found in the
41 * LICENSE file in the root directory of this source tree. An additional grant
42 * of patent rights can be found in the PATENTS file in the same directory.
43 */
44
45/* strict-local */
46function _default(opts = {}, debuggerConfigArgs, statistics = undefined) {
47 (0, _initializeSingletons.default)();
48 let r = new _realm.Realm(opts, statistics || new _statistics.RealmStatistics()); // Presence of debugChannel indicates we wish to use debugger.
49
50 if (debuggerConfigArgs) {
51 let debugChannel = debuggerConfigArgs.debugChannel;
52
53 if (debugChannel) {
54 (0, _invariant.default)(debugChannel.debuggerIsAttached(), "Debugger intends to be used but is not attached.");
55 r.debuggerInstance = new _Debugger.DebugServer(debugChannel, r, debuggerConfigArgs);
56 }
57 }
58
59 let i = r.intrinsics;
60 (0, _index.initialize)(i, r); // TODO: Find a way to let different environments initialize their own global
61 // object for special magic host objects such as the window object in the DOM.
62
63 r.$GlobalObject = new _index4.ObjectValue(r, i.ObjectPrototype, "global");
64 (0, _global.default)(r);
65
66 for (let name in evaluators) r.evaluators[name] = evaluators[name];
67
68 for (let name in partialEvaluators) r.partialEvaluators[name] = partialEvaluators[name];
69
70 r.simplifyAndRefineAbstractValue = _simplifier.default.bind(null, r, false);
71 r.simplifyAndRefineAbstractCondition = _simplifier.default.bind(null, r, true);
72 r.$GlobalEnv = _singletons.Environment.NewGlobalEnvironment(r, r.$GlobalObject, r.$GlobalObject);
73 return r;
74}
75//# sourceMappingURL=construct_realm.js.map
\No newline at end of file