- From: Erik Arvidsson <arv@chromium.org>
- Date: Fri, 8 Mar 2013 17:02:52 -0500
- To: Scott Miles <sjmiles@google.com>
- Cc: Dimitri Glazkov <dglazkov@chromium.org>, public-webapps <public-webapps@w3.org>
- Message-ID: <CAJ8+Gogrpwn=YXjCxPy3oeyGRP+xKRgFA-snR6wWaEPvVBT1zw@mail.gmail.com>
Allowing the same information in 2 places is problematic. We could allow it but then we need to throw if they diverge. To back up, the following example is incomplete: <element name='x-fancier' extends="x-fancy"> <script> class XFancier extends XFancy { fancify() { super(); // How do I get inherited fancify? makeFancier(); } } </script> </element> because no one is associating XFancier with x-fancier. On Fri, Mar 8, 2013 at 4:13 PM, Scott Miles <sjmiles@google.com> wrote: > But now XFancier carries a complete prototype, and there is no 'extends' > attribute, which is where I came in. This is my 'option 1'. > > Are you suggesting this should be optional? This is why I wanted to bring > it up. > > Scott > > > On Fri, Mar 8, 2013 at 1:03 PM, Erik Arvidsson <arv@chromium.org> wrote: > >> Inline... >> >> On Fri, Mar 8, 2013 at 3:33 PM, Scott Miles <sjmiles@google.com> wrote: >> >>> imperative: >>> >>> class XFancier extends XFancy { >>> fancify() { >>> super(); >>> makeFancier(); >>> } >>> ... >>> document.register('x-fancier', XFancier); >>> >>> declarative: >>> >>> <element name='x-fancier' extends="x-fancy"> >>> <script> >>> class XFancier { >>> fancify() { >>> super(); // How do I get inherited fancify? >>> >> >> Yeah, this will not work. super is statically bound. >> >> Of course we could dynamically rebind super but not having an extends >> clause is really confusing. >> >> Why can't we just do? >> >> <element name="x-fancier"> >> <script> >> class XFancier extends XFancy { >> ... >> } >> </script> >> </element> >> >> -- >> erik >> >> >> > -- erik
Received on Friday, 8 March 2013 22:03:43 UTC