11cb0ef41Sopenharmony_ci'use strict';
21cb0ef41Sopenharmony_ci
31cb0ef41Sopenharmony_ciconst common = require('../common');
41cb0ef41Sopenharmony_ciconst assert = require('assert');
51cb0ef41Sopenharmony_ciconst domain = require('domain');
61cb0ef41Sopenharmony_ciconst EventEmitter = require('events');
71cb0ef41Sopenharmony_ci
81cb0ef41Sopenharmony_ciconst d = new domain.Domain();
91cb0ef41Sopenharmony_ciconst e = new EventEmitter();
101cb0ef41Sopenharmony_ci
111cb0ef41Sopenharmony_cid.on('error', common.mustCall((err) => {
121cb0ef41Sopenharmony_ci  assert.strictEqual(err.message, 'foobar');
131cb0ef41Sopenharmony_ci  assert.strictEqual(err.domain, d);
141cb0ef41Sopenharmony_ci  assert.strictEqual(err.domainEmitter, e);
151cb0ef41Sopenharmony_ci  assert.strictEqual(err.domainBound, undefined);
161cb0ef41Sopenharmony_ci  assert.strictEqual(err.domainThrown, false);
171cb0ef41Sopenharmony_ci}));
181cb0ef41Sopenharmony_ci
191cb0ef41Sopenharmony_cid.add(e);
201cb0ef41Sopenharmony_cie.emit('error', new Error('foobar'));
211cb0ef41Sopenharmony_ci
221cb0ef41Sopenharmony_ci{
231cb0ef41Sopenharmony_ci  // Ensure initial params pass to origin `EventEmitter.init` function
241cb0ef41Sopenharmony_ci  const e = new EventEmitter({ captureRejections: true });
251cb0ef41Sopenharmony_ci  const kCapture = Object.getOwnPropertySymbols(e)
261cb0ef41Sopenharmony_ci    .find((it) => it.description === 'kCapture');
271cb0ef41Sopenharmony_ci  assert.strictEqual(e[kCapture], true);
281cb0ef41Sopenharmony_ci}
29