- From: Kai Ninomiya <notifications@github.com>
- Date: Tue, 22 Nov 2022 16:00:36 -0800
- To: whatwg/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/webidl/pull/1211/review/1190903257@github.com>
@kainino0x commented on this pull request. > + the additional information that needs to be exposed. +* They should have [=read only=] [=attributes=], whose names are the same as the members of the + constructor dictionary, which return the values accepted by the constructor operation. +* They should be [=serializable objects=], whose [=serialization steps=] and + [=deserialization steps=] preserve the additional information. + +<p class=note>These requirements mean that the inherited {{DOMException/code}} property of these +interfaces will always return 0. + +<div class=example id=example-domexception-derived-interface> + The definition for a {{DOMException}} derived interface which carries along an additional + "protocol error code", which is derived from what the server sent over some some hypothetical + network protocol "protocol X", could look something like this: + + <pre highlight=webidl> + [Exposed=Window] Should be marked `[Serializable]`? > + constructor dictionary, which return the values accepted by the constructor operation. +* They should be [=serializable objects=], whose [=serialization steps=] and + [=deserialization steps=] preserve the additional information. + +<p class=note>These requirements mean that the inherited {{DOMException/code}} property of these +interfaces will always return 0. + +<div class=example id=example-domexception-derived-interface> + The definition for a {{DOMException}} derived interface which carries along an additional + "protocol error code", which is derived from what the server sent over some some hypothetical + network protocol "protocol X", could look something like this: + + <pre highlight=webidl> + [Exposed=Window] + interface ProtocolXError : DOMException { + constructor(optional DOMString message = "", ProtocolXErrorOptions options); `Required argument "options" cannot follow optional argument "message"` > + readonly attribute unsigned long long errorCode; + }; + + dictionary ProtocolXErrorOptions { + required [EnforceRange] unsigned long long errorCode; + }; + </pre> + + Every <code>ProtocolXError</code> instance has an <dfn for="ProtocolXError">error code</dfn>, + a number. + + <div algorithm="ProtocolXError constructor"> + The <b><code>new ProtocolXError(|message|, |options|)</code></b> constructor steps are: + + 1. Set [=this=]'s [=DOMException/name=] to "<code>ProtocolXError</code>". + 1. Set [=this=]'s [=DOMException/message=] to |message|. Could this call the "super" constructor of DOMException instead? -- Reply to this email directly or view it on GitHub: https://github.com/whatwg/webidl/pull/1211#pullrequestreview-1190903257 You are receiving this because you are subscribed to this thread. Message ID: <whatwg/webidl/pull/1211/review/1190903257@github.com>
Received on Wednesday, 23 November 2022 00:00:49 UTC