- From: Scott Miles <sjmiles@google.com>
- Date: Fri, 8 Mar 2013 14:09:34 -0800
- To: Erik Arvidsson <arv@chromium.org>
- Cc: Dimitri Glazkov <dglazkov@chromium.org>, public-webapps <public-webapps@w3.org>
- Message-ID: <CAHbmOLasq1DiKAnn-ruAHnV4n5vvyJEt7EfuBEhNtazp75_d6g@mail.gmail.com>
inline On Fri, Mar 8, 2013 at 2:02 PM, Erik Arvidsson <arv@chromium.org> wrote: > Allowing the same information in 2 places is problematic. We could allow > it but then we need to throw if they diverge. > Yes, and it's also just plain annoying to have these variations IMO. > > 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(); > } > } > Yes, sorry, there has to be a registration step here, I've been doing this: this.register(XFancier); > </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:10:07 UTC