|
10 | 10 | // process.binding(), process._linkedBinding(), internalBinding() and
|
11 | 11 | // NativeModule. And then { internalBinding, NativeModule } will be passed
|
12 | 12 | // into this bootstrapper to bootstrap Node.js core.
|
13 |
| - |
14 | 13 | 'use strict';
|
15 | 14 |
|
16 |
| -(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 }) { |
17 | 26 | const exceptionHandlerState = { captureFn: null };
|
18 | 27 |
|
19 | 28 | function startup() {
|
|
36 | 45 | const _process = NativeModule.require('internal/process');
|
37 | 46 | _process.setupConfig(NativeModule._source);
|
38 | 47 | _process.setupSignalHandlers();
|
39 |
| - _process.setupUncaughtExceptionCapture(exceptionHandlerState); |
| 48 | + _process.setupUncaughtExceptionCapture(exceptionHandlerState, |
| 49 | + _shouldAbortOnUncaughtToggle); |
40 | 50 | NativeModule.require('internal/process/warning').setup();
|
41 |
| - NativeModule.require('internal/process/next_tick').setup(); |
| 51 | + NativeModule.require('internal/process/next_tick').setup(_setupNextTick, |
| 52 | + _setupPromises); |
42 | 53 | NativeModule.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); |
44 | 66 |
|
45 | 67 | const perf = process.binding('performance');
|
46 | 68 | const {
|
|
55 | 77 | NODE_PERFORMANCE_MILESTONE_PRELOAD_MODULE_LOAD_END
|
56 | 78 | } = perf.constants;
|
57 | 79 |
|
58 |
| - _process.setup_hrtime(); |
59 |
| - _process.setup_cpuUsage(); |
60 |
| - _process.setupMemoryUsage(); |
| 80 | + _process.setup_hrtime(_hrtime); |
| 81 | + _process.setup_cpuUsage(_cpuUsage); |
| 82 | + _process.setupMemoryUsage(_memoryUsage); |
61 | 83 | _process.setupKillAndExit();
|
62 | 84 | if (global.__coverage__)
|
63 | 85 | NativeModule.require('internal/process/write-coverage').setup();
|
|
79 | 101 | }
|
80 | 102 |
|
81 | 103 | _process.setupChannel();
|
82 |
| - _process.setupRawDebug(); |
| 104 | + _process.setupRawDebug(_rawDebug); |
83 | 105 |
|
84 | 106 | const browserGlobals = !process._noBrowserGlobals;
|
85 | 107 | if (browserGlobals) {
|
|
294 | 316 | }
|
295 | 317 |
|
296 | 318 | function setupProcessObject() {
|
297 |
| - process._setupProcessObject(pushValueToArray); |
| 319 | + _setupProcessObject(pushValueToArray); |
298 | 320 |
|
299 | 321 | function pushValueToArray() {
|
300 | 322 | for (var i = 0; i < arguments.length; i++)
|
|
0 commit comments