src: refactor bootstrap to use bootstrap object · nodejs/node@ba17c9e
@@ -10,10 +10,19 @@
1010// process.binding(), process._linkedBinding(), internalBinding() and
1111// NativeModule. And then { internalBinding, NativeModule } will be passed
1212// into this bootstrapper to bootstrap Node.js core.
13-1413'use strict';
151416-(function bootstrapNodeJSCore(process, { internalBinding, NativeModule }) {
15+(function bootstrapNodeJSCore(process,
16+// bootstrapper properties... destructured to
17+// avoid retaining a reference to the bootstrap
18+// object.
19+{ _setupProcessObject, _setupNextTick,
20+ _setupPromises, _chdir, _cpuUsage,
21+ _hrtime, _memoryUsage, _rawDebug,
22+ _umask, _initgroups, _setegid, _seteuid,
23+ _setgid, _setuid, _setgroups,
24+ _shouldAbortOnUncaughtToggle },
25+{ internalBinding, NativeModule }) {
1726const exceptionHandlerState = { captureFn: null };
18271928function startup() {
@@ -36,11 +45,24 @@
3645const _process = NativeModule.require('internal/process');
3746_process.setupConfig(NativeModule._source);
3847_process.setupSignalHandlers();
39-_process.setupUncaughtExceptionCapture(exceptionHandlerState);
48+_process.setupUncaughtExceptionCapture(exceptionHandlerState,
49+_shouldAbortOnUncaughtToggle);
4050NativeModule.require('internal/process/warning').setup();
41-NativeModule.require('internal/process/next_tick').setup();
51+NativeModule.require('internal/process/next_tick').setup(_setupNextTick,
52+_setupPromises);
4253NativeModule.require('internal/process/stdio').setup();
43-NativeModule.require('internal/process/methods').setup();
54+NativeModule.require('internal/process/methods').setup(_chdir,
55+_cpuUsage,
56+_hrtime,
57+_memoryUsage,
58+_rawDebug,
59+_umask,
60+_initgroups,
61+_setegid,
62+_seteuid,
63+_setgid,
64+_setuid,
65+_setgroups);
44664567const perf = process.binding('performance');
4668const {
@@ -55,9 +77,9 @@
5577NODE_PERFORMANCE_MILESTONE_PRELOAD_MODULE_LOAD_END
5678} = perf.constants;
577958-_process.setup_hrtime();
59-_process.setup_cpuUsage();
60-_process.setupMemoryUsage();
80+_process.setup_hrtime(_hrtime);
81+_process.setup_cpuUsage(_cpuUsage);
82+_process.setupMemoryUsage(_memoryUsage);
6183_process.setupKillAndExit();
6284if (global.__coverage__)
6385NativeModule.require('internal/process/write-coverage').setup();
@@ -79,7 +101,7 @@
79101}
8010281103_process.setupChannel();
82-_process.setupRawDebug();
104+_process.setupRawDebug(_rawDebug);
8310584106const browserGlobals = !process._noBrowserGlobals;
85107if (browserGlobals) {
294316}
295317296318function setupProcessObject() {
297-process._setupProcessObject(pushValueToArray);
319+_setupProcessObject(pushValueToArray);
298320299321function pushValueToArray() {
300322for (var i = 0; i < arguments.length; i++)