From fa85d06271d03275c6ccc0b667732d14905d64ef Mon Sep 17 00:00:00 2001 From: "Eevee (Evelyn Woods)" Date: Wed, 10 Mar 2021 19:07:03 -0700 Subject: [PATCH] Fix the stack trace in caught syntax errors in Chrome --- index.html | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index aefc9a5..1d32396 100644 --- a/index.html +++ b/index.html @@ -9,7 +9,7 @@ "use strict"; { let domloaded = false; - window.addEventListener('DOMContentLoaded', e => domloaded = true); + window.addEventListener('DOMContentLoaded', ev => domloaded = true); let _ll_log_fatal_error = (err, ev) => { document.getElementById('loading').setAttribute('hidden', ''); @@ -19,7 +19,9 @@ failed.classList.add('--got-error'); let stack = '(origin unknown)'; - if (err.stack) { + if (err.stack && err.stack.match(/\n/)) { + // Chrome sometimes gives us a stack that's actually just the message without + // any filenames, in which case skip it stack = err.stack.replace(/^/mg, " "); } else if (err.fileName) { @@ -38,12 +40,12 @@ window.addEventListener('DOMContentLoaded', () => _ll_log_fatal_error(err, ev)); } }; - let error_listener = e => { - if (! e.error) + let error_listener = ev => { + if (! ev.error) // Not a script error return; try { - ll_log_fatal_error(e.error, e); + ll_log_fatal_error(ev.error, ev); } catch (err) {} };