| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | /**
 * This utility class defines custom onerror and onunhandledrejection functions.
 * The custom error handlers respect the previously-defined error handlers.
 * GlobalOnErrorHandler class provides utilities to add many custom error
 * handlers and to execute the error handlers directly.
 */
/**
 * List with global error handlers that will be executed.
 */
var handlers = [];
// If an old handler exists, also fire its events.
var oldOnErrorHandler = window.onerror;
/**
 * Custom error handler that calls the old global error handler and executes
 * all handlers that were previously added.
 */
function JitsiGlobalErrorHandler(message, source, lineno, colno, error) {
    handlers.forEach(function (handler) {
        handler(message, source, lineno, colno, error);
    });
    if (oldOnErrorHandler)
        oldOnErrorHandler(message, source, lineno, colno, error);
}
// If an old handler exists, also fire its events.
var oldOnUnhandledRejection = window.onunhandledrejection;
/**
 * Custom handler that calls the old global handler and executes all handlers
 * that were previously added. This handler handles rejected Promises.
 */
function JitsiGlobalUnhandledRejection(event) {
    handlers.forEach(function (handler) {
        handler(null, null, null, null, event.reason);
    });
    if(oldOnUnhandledRejection)
        oldOnUnhandledRejection(event);
}
// Setting the custom error handlers.
window.onerror = JitsiGlobalErrorHandler;
window.onunhandledrejection = JitsiGlobalUnhandledRejection;
var GlobalOnErrorHandler = {
    /**
     * Adds new error handlers.
     * @param handler the new handler.
     */
    addHandler: function (handler) {
        handlers.push(handler);
    },
    /**
     * Calls the global error handler if there is one.
     * @param error the error to pass to the error handler
     */
    callErrorHandler: function (error) {
        var errHandler = window.onerror;
        if(!errHandler)
            return;
        errHandler(null, null, null, null, error);
    },
    /**
     * Calls the global rejection handler if there is one.
     * @param error the error to pass to the rejection handler.
     */
    callUnhandledRejectionHandler: function (error) {
        var errHandler = window.onunhandledrejection;
        if(!errHandler)
            return;
        errHandler(error);
    }
};
module.exports = GlobalOnErrorHandler;
 |