var isBrowser = require('./isBrowser'); var SingleEmitter = require('./SingleEmitter'); var isOn = false; exports = { start: function() { isOn = true; }, stop: function() { isOn = false; } }; SingleEmitter.mixin(exports); if (isBrowser) { window.addEventListener('error', function(event) { if (event.error) { callListeners(event.error); } else if (event.message) { var e = new Error(event.message); e.stack = 'Error: ' .concat(event.message, ' \n at ') .concat(event.filename, ':') .concat(event.lineno, ':') .concat(event.colno); callListeners(e); } }); window.addEventListener('unhandledrejection', function(e) { callListeners(e.reason); }); } else { process.on('uncaughtException', callListeners); process.on('unhandledRejection', callListeners); } function callListeners(err) { if (!isOn) return; exports.emit(err); } module.exports = exports;