73 lines
2.1 KiB
HTML
73 lines
2.1 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Exceptions for synchronous custom element creation</title>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
if (testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
class ObjectCustomElement extends HTMLElement {
|
|
constructor()
|
|
{
|
|
return {foo: 'bar'};
|
|
}
|
|
};
|
|
customElements.define('object-custom-element', ObjectCustomElement);
|
|
document.createElement('object-custom-element');
|
|
|
|
class ElementWithAttribute extends HTMLElement {
|
|
constructor()
|
|
{
|
|
super();
|
|
this.setAttribute('id', 'foo');
|
|
}
|
|
};
|
|
customElements.define('element-with-attribute', ElementWithAttribute);
|
|
document.createElement('element-with-attribute');
|
|
|
|
class ElementWithChildText extends HTMLElement {
|
|
constructor()
|
|
{
|
|
super();
|
|
this.appendChild(document.createTextNode('hello'));
|
|
}
|
|
};
|
|
customElements.define('element-with-child-text', ElementWithChildText);
|
|
document.createElement('element-with-child-text');
|
|
|
|
class ElementWithParent extends HTMLElement {
|
|
constructor()
|
|
{
|
|
super();
|
|
document.createElement('div').appendChild(this);
|
|
}
|
|
};
|
|
customElements.define('element-with-parent', ElementWithParent);
|
|
document.createElement('element-with-parent');
|
|
|
|
var otherDoc = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null);
|
|
class ElementWithAdoptCall extends HTMLElement {
|
|
constructor()
|
|
{
|
|
super();
|
|
otherDoc.adoptNode(this);
|
|
}
|
|
};
|
|
customElements.define('element-with-adopt-call', ElementWithAdoptCall);
|
|
document.createElement('element-with-adopt-call');
|
|
|
|
class DivCustomElement extends HTMLElement {
|
|
constructor()
|
|
{
|
|
super();
|
|
return document.createElement('div');
|
|
}
|
|
};
|
|
customElements.define('div-custom-element', DivCustomElement);
|
|
document.createElement('div-custom-element');
|
|
</script>
|
|
</body>
|
|
</html>
|