test(() => { const otherDocument = new Document(); const element = otherDocument.createElement("blah"); assert_true(element.matches(":defined")); const registry = new CustomElementRegistry(); registry.initialize(element); assert_equals(element.customElementRegistry, registry); assert_true(element.matches(":defined")); }, `"uncustomized" :defined doesn't care about your registry'`); test(() => { const registry = new CustomElementRegistry(); registry.define("sw-r2d2", class extends HTMLElement {}); const element = document.createElement("sw-r2d2", { customElementRegistry: registry }); assert_equals(element.customElementRegistry, registry); assert_true(element.matches(":defined")); }, `"custom" :defined doesn't care about your registry`); test(() => { const otherDocument = new Document(); const element = otherDocument.createElementNS("http://www.w3.org/1999/xhtml", "sw-r2d2"); assert_false(element.matches(":defined")); const registry = new CustomElementRegistry(); registry.define("sw-r2d2", class extends HTMLElement {}); registry.initialize(element); assert_false(element.matches(":defined")); registry.upgrade(element); assert_true(element.matches(":defined")); });