Re: [webcomponents]: HTMLElementElement missing a primitive

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