- From: Ryosuke Niwa <notifications@github.com>
- Date: Sun, 16 Oct 2016 23:54:42 -0700
- To: w3c/webcomponents <webcomponents@noreply.github.com>
- Message-ID: <w3c/webcomponents/issues/587/254126763@github.com>
> On the other hand, there is a lot of Babel usage out there (the majority of non-trivial JS codebases I’ve worked on as a consultant over the past year have used it), and I hadn’t really expected that I’d need such an awkward and specialized method for creating a custom element with it.
Okay. If you don't like a method, you can also define a specialized super class shown below. Obviously, this particular version of `BabelHTMLElement` only works with a browser engine with both ES6 and custom elements support but you just need to do whatever your polyfill requires to do in other browsers.
```js
function BabelHTMLElement()
{
const newTarget = this.__proto__.constructor;
return Reflect.construct(HTMLElement, [], newTarget);
}
Object.setPrototypeOf(BabelHTMLElement, HTMLElement);
Object.setPrototypeOf(BabelHTMLElement.prototype, HTMLElement.prototype);
class MyElement extends BabelHTMLElement {
constructor() {
super();
this._id = 1;
}
}
customElements.define('my-element', MyElement);
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/webcomponents/issues/587#issuecomment-254126763
Received on Monday, 17 October 2016 06:55:16 UTC