'use strict'; const common = require('../common'); const domain = require('domain'); const assert = require('assert'); const timeoutd = domain.create(); timeoutd.on('error', common.mustCall(function(e) { assert.strictEqual(e.message, 'Timeout UNREFd', 'Domain should catch timer error'); clearTimeout(timeout); })); timeoutd.run(function() { setTimeout(function() { throw new Error('Timeout UNREFd'); }, 0).unref(); }); const immediated = domain.create(); immediated.on('error', common.mustCall(function(e) { assert.strictEqual(e.message, 'Immediate Error', 'Domain should catch immediate error'); })); immediated.run(function() { setImmediate(function() { throw new Error('Immediate Error'); }); }); const timeout = setTimeout(function() {}, 10 * 1000);