- From: Dimitri Glazkov <dglazkov@google.com>
 - Date: Fri, 12 Apr 2013 12:30:35 -0700
 - To: Allen Wirfs-Brock <allen@wirfs-brock.com>
 - Cc: Rick Waldron <waldron.rick@gmail.com>, Daniel Buchner <daniel@mozilla.com>, John J Barton <johnjbarton@johnjbarton.com>, Scott Miles <sjmiles@google.com>, Rafael Weinstein <rafaelw@google.com>, public-webapps <public-webapps@w3.org>, Blake Kaplan <mrbkap@mozilla.com>, William Chen <wchen@mozilla.com>, Jonas Sicking <jonas@sicking.cc>, Steve Orvell <sorvell@google.com>, Dave Herman <dherman@mozilla.com>, Boris Zbarsky <bzbarsky@mit.edu>
 
... or "How the heck do we initialize custom elements in declarative syntax?"
There were good questions raised about the nature of <script> element
in the "platonic form" thread. Consider this syntax:
<element name="foo-bar">
    <script> ...</script>
    <template> ... </template>
</element>
The way <element> should work is like this:
a) when </element> is seen
b) generate a constructor for this element
b) run document.register
c) run initialization code
 As I see it, the problem is twofold:
1) The <script> element timing is weird. Since <script> is
initialization code, it has to run after the </element> is seen. This
is already contrary to a typical <script> element expectations.
2) The <script> element needs a way to refer to the custom element
prototype it is initializing. Enclosing it in a function and calling
it with <element> as |this| seemed like a simplest thing to do, but
Rick and John had allergic reactions and had to be hospitalized.
So far, I haven't seen any other workable alternatives. TC39 peeps and
others, help me find them.
:DG<
Received on Friday, 12 April 2013 19:31:02 UTC