Re: [webcomponents]: Blocking custom elements on ES6, was: Platonic form of custom elements declarative syntax

On Apr 11, 2013, at 10:59 AM, Dimitri Glazkov wrote:

> Hello, TC39 peeps! I am happy to have you and your expertise here.
> 
> On Wed, Apr 10, 2013 at 11:14 PM, Allen Wirfs-Brock
> <allen@wirfs-brock.com> wrote:
> 
>> This can all be expresses, but less clearly and concisely using ES3/5 syntax.  But since we are talking about a new HTML feature, I'd recommend being the first major HTMLfeature to embrace ES6 class syntax.  The class extension in ES6 are quite stable and quite easy to implement.  I'm pretty sure they will begin appearing in browsers sometime in the next 6 months. If webcomponents takes a dependency upon them, it would probably further speed up their implementation.
> 
> We simply can't do this :-\ I see the advantages, but the drawbacks of
> tangled timelines and just plain not being able to polyfill custom
> elements are overwhelming. Right now, there are at least two thriving
> polyfills for custom elements
> (https://github.com/toolkitchen/CustomElements and
> https://github.com/mozilla/web-components), and they contribute
> greatly by both informing the spec development and evangelizing the
> concepts with web developers.
> 
> To state simply: We must have support both ES3/5 and ES6 for custom elements.
> 
> :DG<
> 

ES6 classes can be pollyfilled:

  class Sub extends Super {
      constructor() {/*constructor body */ }
      method1 () {}
      static method2 {}
  }

is:

 function Sub() {/*constructor body */ }
 Sub.__proto__ = Super;
 Sub.prototype = Object.create(Super.prototype);
 Sub.prototype.method1 = function method1() {};
 Sub.method2 = function method2 () {};

Allen 

Received on Thursday, 11 April 2013 18:10:55 UTC