diff --git a/lib/internal/util/debuglog.js b/lib/internal/util/debuglog.js index b1f82b957b162a..17b3980d423bc0 100644 --- a/lib/internal/util/debuglog.js +++ b/lib/internal/util/debuglog.js @@ -1,11 +1,10 @@ 'use strict'; const { - FunctionPrototypeBind, ObjectCreate, ObjectDefineProperty, RegExp, - RegExpPrototypeTest, + RegExpPrototypeExec, SafeArrayIterator, StringPrototypeToLowerCase, StringPrototypeToUpperCase, @@ -17,20 +16,19 @@ const { inspect, format, formatWithOptions } = require('internal/util/inspect'); // debuglog() before initializeDebugEnv() is called will throw. let debugImpls; -let debugEnvRegex = /^$/; -let testEnabled; +let testEnabled = () => false; // `debugEnv` is initial value of process.env.NODE_DEBUG function initializeDebugEnv(debugEnv) { debugImpls = ObjectCreate(null); if (debugEnv) { + // This is run before any user code, it's OK not to use primordials. debugEnv = debugEnv.replace(/[|\\{}()[\]^$+?.]/g, '\\$&') - .replace(/\*/g, '.*') - .replace(/,/g, '$|^') - .toUpperCase(); - debugEnvRegex = new RegExp(`^${debugEnv}$`, 'i'); + .replaceAll('*', '.*') + .replaceAll(',', '$|^'); + const debugEnvRegex = new RegExp(`^${debugEnv}$`, 'i'); + testEnabled = (str) => RegExpPrototypeExec(debugEnvRegex, str) !== null; } - testEnabled = FunctionPrototypeBind(RegExpPrototypeTest, null, debugEnvRegex); } // Emits warning when user sets