- From: Scott Miles <sjmiles@google.com>
- Date: Fri, 8 Mar 2013 14:16:25 -0800
- To: Erik Arvidsson <arv@chromium.org>
- Cc: Dimitri Glazkov <dglazkov@chromium.org>, public-webapps <public-webapps@w3.org>
- Message-ID: <CAHbmOLYRxAOMMu8PVfabhf6vJBwZgxcKvVJevkV=NMoTMLxD3g@mail.gmail.com>
In a polyfill, it's easy to make them parallel, but I don't know how to do that with ES6. XFancier = Polyfill.Class(XFancy, prototype); document.register('x-fancier', XFancier); and <element name="XFancier" extends="x-fancy"> <template> more resources here </template> <script>Polyfill.register(this, prototype);</script> </element> I'm assuming use of 'super' in ES6 and some [lesser] form of that supported by Polyfill. On Fri, Mar 8, 2013 at 2:09 PM, Scott Miles <sjmiles@google.com> wrote: > > 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:16:57 UTC