[DEBUG] 异常诱因日志

记录异常诱因,详见 https://github.com/tc39/proposal-error-cause

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==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)
    }
  }
})()