node/test/parallel/test-event-emitter-no-error-provided-to-error-event.js
Ben Noordhuis 4f638f6fd7 domain,events: support non-object 'error' argument
Fix a TypeError when emitting an 'error' argument with a non-object
argument (like a string) when domains are active.

Fixes: https://github.com/nodejs/help/issues/501
PR-URL: https://github.com/nodejs/node/pull/11438
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-02-22 21:42:52 +01:00

36 lines
856 B
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
const events = require('events');
const domain = require('domain');
{
const e = new events.EventEmitter();
const d = domain.create();
d.add(e);
d.on('error', common.mustCall(function(er) {
assert(er instanceof Error, 'error created');
}));
e.emit('error');
}
for (const arg of [false, null, undefined]) {
const e = new events.EventEmitter();
const d = domain.create();
d.add(e);
d.on('error', common.mustCall(function(er) {
assert(er instanceof Error, 'error created');
}));
e.emit('error', arg);
}
for (const arg of [42, 'fortytwo', true]) {
const e = new events.EventEmitter();
const d = domain.create();
d.add(e);
d.on('error', common.mustCall(function(er) {
assert.strictEqual(er, arg);
}));
e.emit('error', arg);
}