From 3c0267dbb526e1067ba7ab7702663a429f8f3a10 Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Sun, 4 Jul 2021 16:08:53 +0200 Subject: fix: align DOMException to webidl spec (#11259) --- extensions/web/01_dom_exception.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'extensions/web/01_dom_exception.js') diff --git a/extensions/web/01_dom_exception.js b/extensions/web/01_dom_exception.js index 6c3c95f38..90ddb267b 100644 --- a/extensions/web/01_dom_exception.js +++ b/extensions/web/01_dom_exception.js @@ -10,8 +10,12 @@ "use strict"; ((window) => { - const { ObjectDefineProperty, ObjectEntries } = - window.__bootstrap.primordials; + const { + Error, + ObjectDefineProperty, + ObjectEntries, + ObjectSetPrototypeOf, + } = window.__bootstrap.primordials; const webidl = window.__bootstrap.webidl; // Defined in WebIDL 4.3. @@ -72,13 +76,12 @@ // Defined in WebIDL 4.3. // https://heycam.github.io/webidl/#idl-DOMException - class DOMException extends Error { + class DOMException { #message = ""; #name = ""; #code = 0; constructor(message = "", name = "Error") { - super(); this.#message = webidl.converters.DOMString(message, { prefix: "Failed to construct 'DOMException'", context: "Argument 1", @@ -105,8 +108,14 @@ get [Symbol.toStringTag]() { return "DOMException"; } + + [Symbol.for("Deno.customInspect")]() { + return `DOMException: ${this.#message}`; + } } + ObjectSetPrototypeOf(DOMException.prototype, Error.prototype); + webidl.configurePrototype(DOMException); for ( -- cgit v1.2.3