| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 94dcdfb commit ba17c9e
9 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -10,10 +10,19 @@ | |||
| 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,11 +45,24 @@ | |||
| 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,9 +77,9 @@ | |||
| 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,7 +101,7 @@ | |||
| 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,7 +316,7 @@ | |||
| 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++) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -25,10 +25,7 @@ process.assert = deprecate( | |||
| 25 | 25 | 'DEP0100'); | |
| 26 | 26 | ||
| 27 | 27 | // Set up the process.cpuUsage() function. | |
| 28 | - function setup_cpuUsage() { | ||
| 29 | - // Get the native function, which will be replaced with a JS version. | ||
| 30 | - const _cpuUsage = process.cpuUsage; | ||
| 31 | - | ||
| 28 | + function setup_cpuUsage(_cpuUsage) { | ||
| 32 | 29 | // Create the argument array that will be passed to the native function. | |
| 33 | 30 | const cpuValues = new Float64Array(2); | |
| 34 | 31 | ||
@@ -92,8 +89,7 @@ function setup_cpuUsage() { | |||
| 92 | 89 | // The 3 entries filled in by the original process.hrtime contains | |
| 93 | 90 | // the upper/lower 32 bits of the second part of the value, | |
| 94 | 91 | // and the remaining nanoseconds of the value. | |
| 95 | - function setup_hrtime() { | ||
| 96 | - const _hrtime = process.hrtime; | ||
| 92 | + function setup_hrtime(_hrtime) { | ||
| 97 | 93 | const hrValues = new Uint32Array(3); | |
| 98 | 94 | ||
| 99 | 95 | process.hrtime = function hrtime(time) { | |
@@ -120,12 +116,11 @@ function setup_hrtime() { | |||
| 120 | 116 | }; | |
| 121 | 117 | } | |
| 122 | 118 | ||
| 123 | - function setupMemoryUsage() { | ||
| 124 | - const memoryUsage_ = process.memoryUsage; | ||
| 119 | + function setupMemoryUsage(_memoryUsage) { | ||
| 125 | 120 | const memValues = new Float64Array(4); | |
| 126 | 121 | ||
| 127 | 122 | process.memoryUsage = function memoryUsage() { | |
| 128 | - memoryUsage_(memValues); | ||
| 123 | + _memoryUsage(memValues); | ||
| 129 | 124 | return { | |
| 130 | 125 | rss: memValues[0], | |
| 131 | 126 | heapTotal: memValues[1], | |
@@ -245,18 +240,17 @@ function setupChannel() { | |||
| 245 | 240 | } | |
| 246 | 241 | ||
| 247 | 242 | ||
| 248 | - function setupRawDebug() { | ||
| 249 | - const rawDebug = process._rawDebug; | ||
| 243 | + function setupRawDebug(_rawDebug) { | ||
| 250 | 244 | process._rawDebug = function() { | |
| 251 | - rawDebug(util.format.apply(null, arguments)); | ||
| 245 | + _rawDebug(util.format.apply(null, arguments)); | ||
| 252 | 246 | }; | |
| 253 | 247 | } | |
| 254 | 248 | ||
| 255 | 249 | ||
| 256 | - function setupUncaughtExceptionCapture(exceptionHandlerState) { | ||
| 257 | - // This is a typed array for faster communication with JS. | ||
| 258 | - const shouldAbortOnUncaughtToggle = process._shouldAbortOnUncaughtToggle; | ||
| 259 | - delete process._shouldAbortOnUncaughtToggle; | ||
| 250 | + function setupUncaughtExceptionCapture(exceptionHandlerState, | ||
| 251 | + shouldAbortOnUncaughtToggle) { | ||
| 252 | + // shouldAbortOnUncaughtToggle is a typed array for faster | ||
| 253 | + // communication with JS. | ||
| 260 | 254 | ||
| 261 | 255 | process.setUncaughtExceptionCaptureCallback = function(fn) { | |
| 262 | 256 | if (fn === null) { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,65 +1,49 @@ | |||
| 1 | 1 | 'use strict'; | |
| 2 | 2 | ||
| 3 | - function setupProcessMethods() { | ||
| 3 | + function setupProcessMethods(_chdir, _cpuUsage, _hrtime, _memoryUsage, | ||
| 4 | + _rawDebug, _umask, _initgroups, _setegid, | ||
| 5 | + _seteuid, _setgid, _setuid, _setgroups) { | ||
| 4 | 6 | // Non-POSIX platforms like Windows don't have certain methods. | |
| 5 | - if (process.setgid !== undefined) { | ||
| 6 | - setupPosixMethods(); | ||
| 7 | + if (_setgid !== undefined) { | ||
| 8 | + setupPosixMethods(_initgroups, _setegid, _seteuid, | ||
| 9 | + _setgid, _setuid, _setgroups); | ||
| 7 | 10 | } | |
| 8 | 11 | ||
| 9 | - const { chdir: _chdir, umask: _umask } = process; | ||
| 10 | - | ||
| 11 | - process.chdir = chdir; | ||
| 12 | - process.umask = umask; | ||
| 13 | - | ||
| 14 | - function chdir(...args) { | ||
| 12 | + process.chdir = function chdir(...args) { | ||
| 15 | 13 | return _chdir(...args); | |
| 16 | - } | ||
| 14 | + }; | ||
| 17 | 15 | ||
| 18 | - function umask(...args) { | ||
| 16 | + process.umask = function umask(...args) { | ||
| 19 | 17 | return _umask(...args); | |
| 20 | - } | ||
| 18 | + }; | ||
| 21 | 19 | } | |
| 22 | 20 | ||
| 23 | - function setupPosixMethods() { | ||
| 24 | - const { | ||
| 25 | - initgroups: _initgroups, | ||
| 26 | - setegid: _setegid, | ||
| 27 | - seteuid: _seteuid, | ||
| 28 | - setgid: _setgid, | ||
| 29 | - setuid: _setuid, | ||
| 30 | - setgroups: _setgroups | ||
| 31 | - } = process; | ||
| 32 | - | ||
| 33 | - process.initgroups = initgroups; | ||
| 34 | - process.setegid = setegid; | ||
| 35 | - process.seteuid = seteuid; | ||
| 36 | - process.setgid = setgid; | ||
| 37 | - process.setuid = setuid; | ||
| 38 | - process.setgroups = setgroups; | ||
| 21 | + function setupPosixMethods(_initgroups, _setegid, _seteuid, | ||
| 22 | + _setgid, _setuid, _setgroups) { | ||
| 39 | 23 | ||
| 40 | - function initgroups(...args) { | ||
| 24 | + process.initgroups = function initgroups(...args) { | ||
| 41 | 25 | return _initgroups(...args); | |
| 42 | - } | ||
| 26 | + }; | ||
| 43 | 27 | ||
| 44 | - function setegid(...args) { | ||
| 28 | + process.setegid = function setegid(...args) { | ||
| 45 | 29 | return _setegid(...args); | |
| 46 | - } | ||
| 30 | + }; | ||
| 47 | 31 | ||
| 48 | - function seteuid(...args) { | ||
| 32 | + process.seteuid = function seteuid(...args) { | ||
| 49 | 33 | return _seteuid(...args); | |
| 50 | - } | ||
| 34 | + }; | ||
| 51 | 35 | ||
| 52 | - function setgid(...args) { | ||
| 36 | + process.setgid = function setgid(...args) { | ||
| 53 | 37 | return _setgid(...args); | |
| 54 | - } | ||
| 38 | + }; | ||
| 55 | 39 | ||
| 56 | - function setuid(...args) { | ||
| 40 | + process.setuid = function setuid(...args) { | ||
| 57 | 41 | return _setuid(...args); | |
| 58 | - } | ||
| 42 | + }; | ||
| 59 | 43 | ||
| 60 | - function setgroups(...args) { | ||
| 44 | + process.setgroups = function setgroups(...args) { | ||
| 61 | 45 | return _setgroups(...args); | |
| 62 | - } | ||
| 46 | + }; | ||
| 63 | 47 | } | |
| 64 | 48 | ||
| 65 | 49 | exports.setup = setupProcessMethods; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -2,7 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | 3 | exports.setup = setupNextTick; | |
| 4 | 4 | ||
| 5 | - function setupNextTick() { | ||
| 5 | + function setupNextTick(_setupNextTick, _setupPromises) { | ||
| 6 | 6 | const { | |
| 7 | 7 | getDefaultTriggerAsyncId, | |
| 8 | 8 | newAsyncId, | |
@@ -14,10 +14,10 @@ function setupNextTick() { | |||
| 14 | 14 | emitDestroy, | |
| 15 | 15 | symbols: { async_id_symbol, trigger_async_id_symbol } | |
| 16 | 16 | } = require('internal/async_hooks'); | |
| 17 | - const promises = require('internal/process/promises'); | ||
| 17 | + const emitPromiseRejectionWarnings = | ||
| 18 | + require('internal/process/promises').setup(_setupPromises); | ||
| 18 | 19 | const { ERR_INVALID_CALLBACK } = require('internal/errors').codes; | |
| 19 | 20 | const FixedQueue = require('internal/fixed_queue'); | |
| 20 | - const { emitPromiseRejectionWarnings } = promises; | ||
| 21 | 21 | ||
| 22 | 22 | // tickInfo is used so that the C++ code in src/node.cc can | |
| 23 | 23 | // have easy access to our nextTick state, and avoid unnecessary | |
@@ -26,7 +26,7 @@ function setupNextTick() { | |||
| 26 | 26 | const [ | |
| 27 | 27 | tickInfo, | |
| 28 | 28 | runMicrotasks | |
| 29 | - ] = process._setupNextTick(_tickCallback); | ||
| 29 | + ] = _setupNextTick(_tickCallback); | ||
| 30 | 30 | ||
| 31 | 31 | // *Must* match Environment::TickInfo::Fields in src/env.h. | |
| 32 | 32 | const kHasScheduled = 0; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -7,11 +7,12 @@ const pendingUnhandledRejections = []; | |||
| 7 | 7 | const asyncHandledRejections = []; | |
| 8 | 8 | let lastPromiseId = 0; | |
| 9 | 9 | ||
| 10 | - module.exports = { | ||
| 11 | - emitPromiseRejectionWarnings | ||
| 12 | - }; | ||
| 10 | + exports.setup = setupPromises; | ||
| 13 | 11 | ||
| 14 | - process._setupPromises(unhandledRejection, handledRejection); | ||
| 12 | + function setupPromises(_setupPromises) { | ||
| 13 | + _setupPromises(unhandledRejection, handledRejection); | ||
| 14 | + return emitPromiseRejectionWarnings; | ||
| 15 | + } | ||
| 15 | 16 | ||
| 16 | 17 | function unhandledRejection(promise, reason) { | |
| 17 | 18 | maybeUnhandledPromises.set(promise, { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -308,6 +308,7 @@ | |||
| 308 | 308 | ||
| 309 | 309 | 'sources': [ | |
| 310 | 310 | 'src/async_wrap.cc', | |
| 311 | + 'src/bootstrapper.cc', | ||
| 311 | 312 | 'src/callback_scope.cc', | |
| 312 | 313 | 'src/cares_wrap.cc', | |
| 313 | 314 | 'src/connection_wrap.cc', | |
| Back | FazBrowse Home | New Git URL |
0 commit comments