Browse Source

console: fixup `console.dir()` error handling

Apply the `console: do not emit error events` changes properly
to `console.dir()`.

This was overlooked in f18e08d820
(https://github.com/nodejs/node/pull/9744).

Ref: f18e08d820 (commitcomment-20934407)
PR-URL: https://github.com/nodejs/node/pull/11443
Reviewed-By: James M Snell <jasnell@gmail.com>
v6
Anna Henningsen 8 years ago
parent
commit
c969047d62
No known key found for this signature in database GPG Key ID: D8B9F5AEAE84E4CF
  1. 5
      lib/console.js
  2. 4
      test/parallel/test-console-async-write-error.js
  3. 8
      test/parallel/test-console-sync-write-error.js

5
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);
};

4
test/parallel/test-console-async-write-error.js

@ -4,6 +4,7 @@ const { Console } = require('console');
const { Writable } = require('stream');
const assert = require('assert');
for (const method of ['dir', 'log', 'warn']) {
const out = new Writable({
write: common.mustCall((chunk, enc, callback) => {
process.nextTick(callback, new Error('foobar'));
@ -13,5 +14,6 @@ const out = new Writable({
const c = new Console(out, out, true);
assert.doesNotThrow(() => {
c.log('abc');
c[method]('abc');
});
}

8
test/parallel/test-console-sync-write-error.js

@ -4,6 +4,7 @@ const { Console } = require('console');
const { Writable } = require('stream');
const assert = require('assert');
for (const method of ['dir', 'log', 'warn']) {
{
const out = new Writable({
write: common.mustCall((chunk, enc, callback) => {
@ -14,7 +15,7 @@ const assert = require('assert');
const c = new Console(out, out, true);
assert.doesNotThrow(() => {
c.log('abc');
c[method]('abc');
});
}
@ -28,7 +29,7 @@ const assert = require('assert');
const c = new Console(out, out, true);
assert.doesNotThrow(() => {
c.log('abc');
c[method]('abc');
});
}
@ -42,6 +43,7 @@ const assert = require('assert');
const c = new Console(out, out, true);
assert.doesNotThrow(() => {
c.log('abc');
c[method]('abc');
});
}
}

Loading…
Cancel
Save