util: improve debuglog performance

PR-URL: https://github.com/nodejs/node/pull/28956
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
This commit is contained in:
Brian White 2019-08-04 02:15:54 -04:00
parent bf692ce1e6
commit ef01d7cb66
No known key found for this signature in database
GPG Key ID: 606D7358F94DA209

View File

@ -33,7 +33,7 @@ function emitWarningIfNeeded(set) {
function debuglogImpl(set) {
set = set.toUpperCase();
if (!debugs[set]) {
if (debugs[set] === undefined) {
if (debugEnvRegex.test(set)) {
const pid = process.pid;
emitWarningIfNeeded(set);
@ -42,7 +42,7 @@ function debuglogImpl(set) {
process.stderr.write(format('%s %d: %s\n', set, pid, msg));
};
} else {
debugs[set] = function debug() {};
debugs[set] = null;
}
}
return debugs[set];
@ -55,12 +55,13 @@ function debuglogImpl(set) {
function debuglog(set) {
let debug;
return function(...args) {
if (!debug) {
if (debug === undefined) {
// Only invokes debuglogImpl() when the debug function is
// called for the first time.
debug = debuglogImpl(set);
}
debug(...args);
if (debug !== null)
debug(...args);
};
}