blob: 728e06d9716e27be5b02f0468b5bbbc37070d160 [file] [log] [blame]
<script>
'use strict';
let constructors = [];
test(() => {
assert_equals(constructors.length, 0);
class MyElement extends HTMLElement {
constructor() {
super();
constructors.push(this);
}
}
customElements.define('a-a', MyElement);
// createElement should synchronously call constructor.
let a = document.createElement('a-a');
assert_equals(constructors.length, 1);
assert_equals(a.ownerDocument, document);
let importDoc = document.currentScript.ownerDocument;
// TODO(kochi): crbug.com/640465 createElement returns wrong ownerDocument
// createElement should work in imported document.
let b = importDoc.createElement('a-a')
assert_equals(b.ownerDocument, importDoc);
assert_equals(constructors.length, 2);
// new MyElement() should synchronously call constructor.
let c = new MyElement();
assert_equals(c.ownerDocument, document);
assert_equals(constructors.length, e);
assert_array_equals(constructors, [a, b, c]);
}, 'createElement() and new MyElement should work in imported document.');
</script>