1'use strict'; 2 3const common = require('../common'); 4const assert = require('assert'); 5const domain = require('domain'); 6const isEnumerable = Function.call.bind(Object.prototype.propertyIsEnumerable); 7 8const d = new domain.Domain(); 9 10d.on('error', common.mustCall((err) => { 11 assert.strictEqual(err.message, 'foobar'); 12 assert.strictEqual(err.domain, d); 13 assert.strictEqual(isEnumerable(err, 'domain'), false); 14 assert.strictEqual(err.domainEmitter, undefined); 15 assert.strictEqual(err.domainBound, undefined); 16 assert.strictEqual(err.domainThrown, true); 17})); 18 19d.run(common.mustCall(() => { 20 setTimeout(common.mustCall(() => { 21 throw new Error('foobar'); 22 }), 1); 23})); 24