11cb0ef41Sopenharmony_ci'use strict'; 21cb0ef41Sopenharmony_ci 31cb0ef41Sopenharmony_ciconst common = require('../common'); 41cb0ef41Sopenharmony_ciconst dc = require('diagnostics_channel'); 51cb0ef41Sopenharmony_ciconst assert = require('assert'); 61cb0ef41Sopenharmony_ci 71cb0ef41Sopenharmony_ciconst input = { 81cb0ef41Sopenharmony_ci foo: 'bar' 91cb0ef41Sopenharmony_ci}; 101cb0ef41Sopenharmony_ci 111cb0ef41Sopenharmony_ciconst channel = dc.channel('fail'); 121cb0ef41Sopenharmony_ci 131cb0ef41Sopenharmony_ciconst error = new Error('nope'); 141cb0ef41Sopenharmony_ci 151cb0ef41Sopenharmony_ciprocess.on('uncaughtException', common.mustCall((err) => { 161cb0ef41Sopenharmony_ci assert.strictEqual(err, error); 171cb0ef41Sopenharmony_ci})); 181cb0ef41Sopenharmony_ci 191cb0ef41Sopenharmony_cichannel.subscribe(common.mustCall((message, name) => { 201cb0ef41Sopenharmony_ci throw error; 211cb0ef41Sopenharmony_ci})); 221cb0ef41Sopenharmony_ci 231cb0ef41Sopenharmony_ci// The failing subscriber should not stop subsequent subscribers from running 241cb0ef41Sopenharmony_cichannel.subscribe(common.mustCall()); 251cb0ef41Sopenharmony_ci 261cb0ef41Sopenharmony_ci// Publish should continue without throwing 271cb0ef41Sopenharmony_ciconst fn = common.mustCall(); 281cb0ef41Sopenharmony_cichannel.publish(input); 291cb0ef41Sopenharmony_cifn(); 30