'use strict'; const common = require('../common'); const dc = require('diagnostics_channel'); const assert = require('assert'); const input = { foo: 'bar' }; const channel = dc.channel('fail'); const error = new Error('nope'); process.on('uncaughtException', common.mustCall((err) => { assert.strictEqual(err, error); })); channel.subscribe(common.mustCall((message, name) => { throw error; })); // The failing subscriber should not stop subsequent subscribers from running channel.subscribe(common.mustCall()); // Publish should continue without throwing const fn = common.mustCall(); channel.publish(input); fn();