2017-06-11 18:23:34 +02:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const common = require('../common');
|
|
|
|
const assert = require('assert');
|
|
|
|
const domain = require('domain');
|
|
|
|
const fs = require('fs');
|
2019-02-19 16:00:06 -08:00
|
|
|
const isEnumerable = Function.call.bind(Object.prototype.propertyIsEnumerable);
|
2017-06-11 18:23:34 +02:00
|
|
|
|
2020-07-07 18:05:33 +02:00
|
|
|
process.on('warning', common.mustNotCall());
|
|
|
|
|
2017-06-11 18:23:34 +02:00
|
|
|
{
|
|
|
|
const d = new domain.Domain();
|
|
|
|
|
|
|
|
d.on('error', common.mustCall((err) => {
|
|
|
|
assert.strictEqual(err.message, 'foobar');
|
|
|
|
assert.strictEqual(err.domain, d);
|
2019-02-19 16:00:06 -08:00
|
|
|
assert.strictEqual(isEnumerable(err, 'domain'), false);
|
2017-06-11 18:23:34 +02:00
|
|
|
assert.strictEqual(err.domainEmitter, undefined);
|
|
|
|
assert.strictEqual(err.domainBound, undefined);
|
|
|
|
assert.strictEqual(err.domainThrown, true);
|
|
|
|
}));
|
|
|
|
|
|
|
|
d.run(common.mustCall(() => {
|
|
|
|
process.nextTick(common.mustCall(() => {
|
|
|
|
const i = setInterval(common.mustCall(() => {
|
|
|
|
clearInterval(i);
|
|
|
|
setTimeout(common.mustCall(() => {
|
|
|
|
fs.stat('this file does not exist', common.mustCall((er, stat) => {
|
|
|
|
throw new Error('foobar');
|
|
|
|
}));
|
|
|
|
}), 1);
|
|
|
|
}), 1);
|
|
|
|
}));
|
|
|
|
}));
|
|
|
|
}
|