- From: Robert Ginda <rginda@chromium.org>
- Date: Tue, 14 May 2013 15:38:50 -0700
- To: Scott Miles <sjmiles@google.com>
- Cc: Elliott Sprehn <esprehn@gmail.com>, Daniel Buchner <daniel@mozilla.com>, Erik Arvidsson <arv@chromium.org>, Dimitri Glazkov <dglazkov@google.com>, public-webapps <public-webapps@w3.org>, Rick Waldron <waldron.rick@gmail.com>, Allen Wirfs-Brock <allen@wirfs-brock.com>
- Message-ID: <CA+SC+VqqzUZcjnwiZaKHnX0QkLeU2+kSRrzzLM7tbE_7kr5e6g@mail.gmail.com>
On Tue, May 14, 2013 at 2:31 PM, Scott Miles <sjmiles@google.com> wrote: > And to be clear, we also have to be able to do this (not that anybody said > anything to the contrary) > > <element ...> > <script src="..."></script> > </element> > > If there is more than once <script>, I assume the last one 'wins'? > > If that's the case then authors could end each component with <script>MyComponentClass</script>, setting the final completion value without forcing extra parens or a looks-like-a-noop-but-isn't expression (a-la Perl) at the end of the component source. > On Tue, May 14, 2013 at 2:30 PM, Scott Miles <sjmiles@google.com> wrote: > >> So, I don't love the extra punctuation, but there are other good things >> here. We do away with duplication of tag name and the magic >> [something].register call. >> >> Presumably I can still set up private members in a closure, like this (?): >> >> <script> >> var privateStack = []; >> (class XFoo: HTMLElement { readyCallback() { privateStack.push(...); } >> }); >> </script> >> >> The last critical bit is some way to access our <element>. We could have >> another callback which is essentially a static, called once per <element> >> to allow access to the <element> itself, but I don't know where we'd put it >> other than on the prototype itself. >> >> Scott >> >> >> >> On Tue, May 14, 2013 at 2:09 PM, Elliott Sprehn <esprehn@gmail.com>wrote: >> >>> >>> >>> >>> On Tue, May 14, 2013 at 2:04 PM, Daniel Buchner <daniel@mozilla.com>wrote: >>> >>>> >>>> On Tue, May 14, 2013 at 1:58 PM, Erik Arvidsson <arv@chromium.org>wrote: >>>> >>>>> >>>>> <element name="foo-bar"> >>>>> ... >>>>> <script> >>>>> class FooBar { >>>>> ... >>>>> }; >>>>> </script> >>>>> </element> >>>> >>>> >>>> Is it then possible to explicitly return the class after definition? >>>> I'm asking because <script> return value is something I was not aware of. >>>> >>> >>> Yes, by wrapping it in parenthesis. The spec >>> http://people.mozilla.org/~jorendorff/es6-draft.html#sec-13.5 seems to >>> say that (class X { }) returns X but class X { } at the top level returns >>> undefined. >>> >>> Thankfully it's not too gross, you'd just have: >>> >>> <script> >>> (class MyCustomWidget : HTMLElement { >>> // ... >>> }) >>> </script> >>> >>> ... ... >>>> <script> >>>> class FooBar { >>>> ... >>>> }; >>>> >>>> return FooBar; >>>> >>>> >>>> >>> "return" isn't valid in the top level execution block which sucks. It >>> would nice if we relaxed that restriction and allowed a return up there. >>> >>> - E >>> >>> >> >
Received on Tuesday, 14 May 2013 22:39:40 UTC