diff --git a/lib/console.js b/lib/console.js index 7c4e4bb786e180..6de9d43ef3359c 100644 --- a/lib/console.js +++ b/lib/console.js @@ -103,7 +103,10 @@ Console.prototype.error = Console.prototype.warn; Console.prototype.dir = function dir(object, options) { options = Object.assign({customInspect: false}, options); - write(this._ignoreErrors, this._stdout, `${util.inspect(object, options)}\n`); + write(this._ignoreErrors, + this._stdout, + `${util.inspect(object, options)}\n`, + this._stdoutErrorHandler); }; diff --git a/test/parallel/test-console-async-write-error.js b/test/parallel/test-console-async-write-error.js index 0fcd72868ab090..63e8bfbc881e4c 100644 --- a/test/parallel/test-console-async-write-error.js +++ b/test/parallel/test-console-async-write-error.js @@ -4,14 +4,16 @@ const { Console } = require('console'); const { Writable } = require('stream'); const assert = require('assert'); -const out = new Writable({ - write: common.mustCall((chunk, enc, callback) => { - process.nextTick(callback, new Error('foobar')); - }) -}); +for (const method of ['dir', 'log', 'warn']) { + const out = new Writable({ + write: common.mustCall((chunk, enc, callback) => { + process.nextTick(callback, new Error('foobar')); + }) + }); -const c = new Console(out, out, true); + const c = new Console(out, out, true); -assert.doesNotThrow(() => { - c.log('abc'); -}); + assert.doesNotThrow(() => { + c[method]('abc'); + }); +} diff --git a/test/parallel/test-console-sync-write-error.js b/test/parallel/test-console-sync-write-error.js index 34ff8bad8c9f3d..fb350d463bb35d 100644 --- a/test/parallel/test-console-sync-write-error.js +++ b/test/parallel/test-console-sync-write-error.js @@ -4,44 +4,46 @@ const { Console } = require('console'); const { Writable } = require('stream'); const assert = require('assert'); -{ - const out = new Writable({ - write: common.mustCall((chunk, enc, callback) => { - callback(new Error('foobar')); - }) - }); - - const c = new Console(out, out, true); - - assert.doesNotThrow(() => { - c.log('abc'); - }); -} - -{ - const out = new Writable({ - write: common.mustCall((chunk, enc, callback) => { - throw new Error('foobar'); - }) - }); - - const c = new Console(out, out, true); - - assert.doesNotThrow(() => { - c.log('abc'); - }); -} - -{ - const out = new Writable({ - write: common.mustCall((chunk, enc, callback) => { - setImmediate(() => callback(new Error('foobar'))); - }) - }); - - const c = new Console(out, out, true); - - assert.doesNotThrow(() => { - c.log('abc'); - }); +for (const method of ['dir', 'log', 'warn']) { + { + const out = new Writable({ + write: common.mustCall((chunk, enc, callback) => { + callback(new Error('foobar')); + }) + }); + + const c = new Console(out, out, true); + + assert.doesNotThrow(() => { + c[method]('abc'); + }); + } + + { + const out = new Writable({ + write: common.mustCall((chunk, enc, callback) => { + throw new Error('foobar'); + }) + }); + + const c = new Console(out, out, true); + + assert.doesNotThrow(() => { + c[method]('abc'); + }); + } + + { + const out = new Writable({ + write: common.mustCall((chunk, enc, callback) => { + setImmediate(() => callback(new Error('foobar'))); + }) + }); + + const c = new Console(out, out, true); + + assert.doesNotThrow(() => { + c[method]('abc'); + }); + } }