- From: Boris Zbarsky <notifications@github.com>
- Date: Thu, 02 Mar 2017 09:58:38 -0800
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <heycam/webidl/pull/323/review/24799519@github.com>
bzbarsky commented on this pull request. > + + To invoke the <dfn export>default toJSON operation</dfn> of [=interface=] |I|, + run the the following steps: + + 1. Let |O| be the <emu-val>this</emu-val> value. + 1. Let |result| be [=!=] [=ObjectCreate=]([=%ObjectPrototype%=]). + 1. If there is an [=inherited interface=] of |I| + that declares a “toJSON” operation, then + 1. Let |super| be the “toJSON” operation of + the closest [=inherited interface=] of |I| + that declares a “toJSON” operation. + 1. Set |result| to [=?=] [=Call=](|super|, |O|). + 1. If Type(|result|) is not Object, return |result|. + 1. For each [=exposed=] [=regular attribute=] |attr| that is an [=interface member=] of |I|: + 1. Let |id| be |attr|’s [=identifier=] [=converted to an ECMAScript value=]. + 1. Let |value| be [=?=] [=Get=](|O|, |id|). Oh, good catch. In general, what should happen if I subclass a thing with a [Default] toJSON? Seems to me like conceptually it shouldn't matter whether the subclassing is done via defining an interface inheriting from it or via a page just subclassing an interface via ES class syntax. It seems like one fundamental question is whether toJSON should be getting properties or reading internal slots... -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/heycam/webidl/pull/323#discussion_r103988580
Received on Thursday, 2 March 2017 17:59:13 UTC