blob: e69fa5bd40b9b85d97bba7c814ab12a70c0f19a5 [file] [log] [blame]
<!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>