[JS] Как подавить исключение, вылетевшее в глобал?

AnrDaemon

Продвинутый новичок
Есть какой-то такой код:

JavaScript:
"use strict";

export class PlatformError extends Error {
    /**
     * @param {string} message Error message to convey.
     * @param {number} code Error code for reference.
     */
    constructor(message, code = undefined) {
        super(message);
        this.name = 'PlatformError';
        this.code = code;
        Object.defineProperty(this, "code", { writable: false });
    }
}

Object.defineProperty(PlatformError.prototype, 'code', {
    configurable: false,
    enumerable: true,
    writable: true,
    value: 0
});

window.addEventListener("error",
    /** @param {ErrorEvent} event */
    (event) => {
        /** @type {PlatformError|Error|string} */
        const error = event.error;
        if (error instanceof PlatformError) {
            // Если это наш косяк - глушим и показываем тост
            event.preventDefault();
            event.stopPropagation();
            toast.[error.code == 0 ? "info" : "error"](`${error.name}${(error.code ? `(${error.code})` : '')}: ${error.message}`);
        }
    }
);

window.addEventListener('unhandledrejection',
    /** @param {PromiseRejectionEvent} event */
    (event) => {
        if (!event.reason) return;
        /** @type {PlatformError|Error|string} */
        const error = event.reason;
        if (error instanceof PlatformError) {
            // Если это наш косяк - глушим и показываем тост
            event.preventDefault();
            event.stopPropagation();
            toast.[error.code == 0 ? "info" : "error"](`${error.name}${(error.code ? `(${error.code})` : '')}: ${error.message}`);
        }
    }
);
Всё замечательно, ошибки ловятся, тосты показываются, но КАЖДЫЙ […]ятский раз, когда дело доходит до `super(message);`, она срёт в консоль. Прямо хоть не вызывай.

Может, я чего-то не понимаю? Может, не надо звать родительский конструктор? Или надо как-то иначе глушить ошибки?
 
Сверху