diff --git a/lib/console.js b/lib/console.js index 8480ccfd468..654b5b8280e 100644 --- a/lib/console.js +++ b/lib/console.js @@ -52,7 +52,7 @@ function Console(stdout, stderr, ignoreErrors = true) { Object.defineProperty(this, '_stdout', prop); prop.value = stderr; Object.defineProperty(this, '_stderr', prop); - prop.value = ignoreErrors; + prop.value = Boolean(ignoreErrors); Object.defineProperty(this, '_ignoreErrors', prop); prop.value = new Map(); Object.defineProperty(this, '_times', prop); @@ -80,7 +80,7 @@ function createWriteErrorHandler(stream) { // This conditional evaluates to true if and only if there was an error // that was not already emitted (which happens when the _write callback // is invoked asynchronously). - if (err && !stream._writableState.errorEmitted) { + if (err !== null && !stream._writableState.errorEmitted) { // If there was an error, it will be emitted on `stream` as // an `error` event. Adding a `once` listener will keep that error // from becoming an uncaught exception, but since the handler is @@ -102,7 +102,7 @@ function write(ignoreErrors, stream, string, errorhandler, groupIndent) { } string += '\n'; - if (!ignoreErrors) return stream.write(string); + if (ignoreErrors === false) return stream.write(string); // There may be an error occurring synchronously (e.g. for files or TTYs // on POSIX systems) or asynchronously (e.g. pipes on POSIX systems), so