summaryrefslogtreecommitdiff
path: root/ext/web/01_dom_exception.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/web/01_dom_exception.js')
-rw-r--r--ext/web/01_dom_exception.js15
1 files changed, 10 insertions, 5 deletions
diff --git a/ext/web/01_dom_exception.js b/ext/web/01_dom_exception.js
index ae478da2b..25eb85fc2 100644
--- a/ext/web/01_dom_exception.js
+++ b/ext/web/01_dom_exception.js
@@ -96,11 +96,16 @@
});
this.#code = nameToCodeMapping[this.#name] ?? 0;
- // `DOMException` does not have `.stack`, so `Error.prepareStackTrace()`
- // is not called on it, meaning our structured stack trace hack doesn't
- // apply. This patches it in.
- const error = new Error();
- error.stack;
+ const error = new Error(`DOMException: ${this.#message}`);
+ ObjectDefineProperty(this, "stack", {
+ value: error.stack,
+ writable: true,
+ configurable: true,
+ });
+
+ // `DOMException` isn't a native error, so `Error.prepareStackTrace()` is
+ // not called when accessing `.stack`, meaning our structured stack trace
+ // hack doesn't apply. This patches it in.
ObjectDefineProperty(this, "__callSiteEvals", {
value: ArrayPrototypeSlice(error.__callSiteEvals, 1),
configurable: true,