[DEBUG] Log Exception Cause

Log exception cause, see https://github.com/tc39/proposal-error-cause

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==UserScript==
// @name                  [DEBUG] Log Exception Cause
// @name:zh-CN            [DEBUG] 异常诱因日志
// @version               1.0.4.20210925
// @namespace             laster2800
// @author                Laster2800
// @description           Log exception cause, see https://github.com/tc39/proposal-error-cause
// @description:zh-CN     记录异常诱因,详见 https://github.com/tc39/proposal-error-cause
// @homepageURL           https://greasyfork.org/zh-CN/scripts/432924
// @supportURL            https://greasyfork.org/zh-CN/scripts/432924/feedback
// @license               LGPL-3.0
// @include               *
// @grant                 none
// @run-at                document-start
// ==/UserScript==

(function() {
  'use strict'

  window.addEventListener('error', log)
  window.addEventListener('unhandledrejection', log)

  function log(event) {
    const cause = (event.error ?? event.reason)?.cause
    if (cause !== undefined) {
      console.error('↓ Error is caused by %o', cause)
    }
  }
})()