summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/_stream_readable.js9
-rw-r--r--lib/internal/main/worker_thread.js3
-rw-r--r--lib/internal/modules/cjs/loader.js9
-rw-r--r--lib/internal/stream_base_commons.js2
-rw-r--r--lib/internal/timers.js8
-rw-r--r--lib/internal/util/debuglog.js18
-rw-r--r--lib/internal/worker.js9
-rw-r--r--lib/internal/worker/io.js9
-rw-r--r--lib/timers.js9
9 files changed, 25 insertions, 51 deletions
diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js
index 1b6f2175ce..34118f4fbe 100644
--- a/lib/_stream_readable.js
+++ b/lib/_stream_readable.js
@@ -30,14 +30,7 @@ const EE = require('events');
const Stream = require('stream');
const { Buffer } = require('buffer');
-let debuglog;
-function debug(...args) {
- if (!debuglog) {
- debuglog = require('internal/util/debuglog').debuglog('stream');
- }
- debuglog(...args);
-}
-
+const debug = require('internal/util/debuglog').debuglog('stream');
const BufferList = require('internal/streams/buffer_list');
const destroyImpl = require('internal/streams/destroy');
const { getHighWaterMark } = require('internal/streams/state');
diff --git a/lib/internal/main/worker_thread.js b/lib/internal/main/worker_thread.js
index a06fda7a59..dd6a9426ff 100644
--- a/lib/internal/main/worker_thread.js
+++ b/lib/internal/main/worker_thread.js
@@ -44,6 +44,7 @@ const {
} = require('internal/process/execution');
const publicWorker = require('worker_threads');
+const debug = require('internal/util/debuglog').debuglog('worker');
const assert = require('internal/assert');
@@ -51,8 +52,6 @@ patchProcessObject();
setupInspectorHooks();
setupDebugEnv();
-const debug = require('internal/util/debuglog').debuglog('worker');
-
setupWarningHandler();
// Since worker threads cannot switch cwd, we do not need to
diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js
index 16940aa0c2..20ca6d113c 100644
--- a/lib/internal/modules/cjs/loader.js
+++ b/lib/internal/modules/cjs/loader.js
@@ -166,14 +166,7 @@ Object.defineProperty(Module, 'wrapper', {
}
});
-let debuglog;
-function debug(...args) {
- if (!debuglog) {
- debuglog = require('internal/util/debuglog').debuglog('module');
- }
- debuglog(...args);
-}
-
+const debug = require('internal/util/debuglog').debuglog('module');
Module._debug = deprecate(debug, 'Module._debug is deprecated.', 'DEP0077');
// Given a module name, and a list of paths to test, returns the first
diff --git a/lib/internal/stream_base_commons.js b/lib/internal/stream_base_commons.js
index 50eac42772..88896083f1 100644
--- a/lib/internal/stream_base_commons.js
+++ b/lib/internal/stream_base_commons.js
@@ -31,7 +31,7 @@ const kAfterAsyncWrite = Symbol('kAfterAsyncWrite');
const kHandle = Symbol('kHandle');
const kSession = Symbol('kSession');
-const debug = require('util').debuglog('stream');
+const debug = require('internal/util/debuglog').debuglog('stream');
function handleWriteReq(req, data, encoding) {
const { handle } = req;
diff --git a/lib/internal/timers.js b/lib/internal/timers.js
index aef099b4b9..566d7df036 100644
--- a/lib/internal/timers.js
+++ b/lib/internal/timers.js
@@ -107,13 +107,7 @@ const L = require('internal/linkedlist');
const PriorityQueue = require('internal/priority_queue');
const { inspect } = require('internal/util/inspect');
-let debuglog;
-function debug(...args) {
- if (!debuglog) {
- debuglog = require('internal/util/debuglog').debuglog('timer');
- }
- debuglog(...args);
-}
+const debug = require('internal/util/debuglog').debuglog('timer');
// *Must* match Environment::ImmediateInfo::Fields in src/env.h.
const kCount = 0;
diff --git a/lib/internal/util/debuglog.js b/lib/internal/util/debuglog.js
index e92f3ad2bd..11de25b6b4 100644
--- a/lib/internal/util/debuglog.js
+++ b/lib/internal/util/debuglog.js
@@ -31,7 +31,7 @@ function emitWarningIfNeeded(set) {
}
}
-function debuglog(set) {
+function debuglogImpl(set) {
set = set.toUpperCase();
if (!debugs[set]) {
if (debugEnvRegex.test(set)) {
@@ -48,6 +48,22 @@ function debuglog(set) {
return debugs[set];
}
+// debuglogImpl depends on process.pid and process.env.NODE_DEBUG,
+// so it needs to be called lazily in top scopes of internal modules
+// that may be loaded before these run time states are allowed to
+// be accessed.
+function debuglog(set) {
+ let debug;
+ return function(...args) {
+ if (!debug) {
+ // Only invokes debuglogImpl() when the debug function is
+ // called for the first time.
+ debug = debuglogImpl(set);
+ }
+ debug(...args);
+ };
+}
+
module.exports = {
debuglog,
initializeDebugEnv
diff --git a/lib/internal/worker.js b/lib/internal/worker.js
index 796d1713dd..e9d961f35a 100644
--- a/lib/internal/worker.js
+++ b/lib/internal/worker.js
@@ -48,14 +48,7 @@ const kOnErrorMessage = Symbol('kOnErrorMessage');
const kParentSideStdio = Symbol('kParentSideStdio');
const SHARE_ENV = Symbol.for('nodejs.worker_threads.SHARE_ENV');
-
-let debuglog;
-function debug(...args) {
- if (!debuglog) {
- debuglog = require('internal/util/debuglog').debuglog('worker');
- }
- debuglog(...args);
-}
+const debug = require('internal/util/debuglog').debuglog('worker');
class Worker extends EventEmitter {
constructor(filename, options = {}) {
diff --git a/lib/internal/worker/io.js b/lib/internal/worker/io.js
index 04f8f9ad59..8b7aedd39d 100644
--- a/lib/internal/worker/io.js
+++ b/lib/internal/worker/io.js
@@ -21,14 +21,7 @@ const {
const { Readable, Writable } = require('stream');
const EventEmitter = require('events');
const { inspect } = require('internal/util/inspect');
-
-let debuglog;
-function debug(...args) {
- if (!debuglog) {
- debuglog = require('internal/util/debuglog').debuglog('worker');
- }
- debuglog(...args);
-}
+const debug = require('internal/util/debuglog').debuglog('worker');
const kIncrementsPortRef = Symbol('kIncrementsPortRef');
const kName = Symbol('kName');
diff --git a/lib/timers.js b/lib/timers.js
index 85801face5..ddce43e749 100644
--- a/lib/timers.js
+++ b/lib/timers.js
@@ -50,14 +50,7 @@ const {
deprecate
} = require('internal/util');
const { ERR_INVALID_CALLBACK } = require('internal/errors').codes;
-
-let debuglog;
-function debug(...args) {
- if (!debuglog) {
- debuglog = require('internal/util/debuglog').debuglog('timer');
- }
- debuglog(...args);
-}
+const debug = require('internal/util/debuglog').debuglog('timer');
const {
destroyHooksExist,