| 'use strict'; |
| |
| const common = require('../common'); |
| const assert = require('assert'); |
| const domain = require('domain'); |
| const EventEmitter = require('events'); |
| |
| const d = new domain.Domain(); |
| const e = new EventEmitter(); |
| |
| d.on('error', common.mustCall((err) => { |
| assert.strictEqual(err.message, 'foobar'); |
| assert.strictEqual(err.domain, d); |
| assert.strictEqual(err.domainEmitter, e); |
| assert.strictEqual(err.domainBound, undefined); |
| assert.strictEqual(err.domainThrown, false); |
| })); |
| |
| d.add(e); |
| e.emit('error', new Error('foobar')); |
| |
| { |
| // Ensure initial params pass to origin `EventEmitter.init` function |
| const e = new EventEmitter({ captureRejections: true }); |
| const kCapture = Object.getOwnPropertySymbols(e) |
| .find((it) => it.description === 'kCapture'); |
| assert.strictEqual(e[kCapture], true); |
| } |