Click here to download the Blitz Browser!

WPT

wpt / custom-elements / CustomElementRegistry.html

Spec: https://html.spec.whatwg.org/multipage/custom-elements.html ↗

Runs: Chrome 155.0.8039.0 (wpt@a4fcd77aa, 2026-09-03) | Firefox 157.0a1 (wpt@cc4d45aa0, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a9df8 (wpt@9b4cabf6d, 2026-09-03) | Servo Servo 0.6 (wpt@7e3d005d7, 2026-09-03) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)

View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi

ChromeFirefoxSafariLadybirdServoBlitz
Total45/4646/4645/4646/4646/46NOT RUN
SubtestChromeFirefoxSafariLadybirdServoBlitz
CustomElementRegistry interface must have define as a methodPASSPASSPASSPASSPASS
customElements.define must throw when the element interface is not a constructorPASSPASSPASSPASSPASS
customElements.define must not throw the constructor is HTMLElementPASSPASSPASSPASSPASS
customElements.define must throw with an invalid namePASSPASSPASSPASSPASS
customElements.define must throw when there is already a custom element of the same namePASSPASSPASSPASSPASS
customElements.define must throw a NotSupportedError when there is already a custom element with the same classPASSPASSPASSPASSPASS
customElements.define must throw a NotSupportedError when element definition is running flag is setPASSPASSPASSPASSPASS
customElements.define must check IsConstructor on the constructor before checking the element definition is running flagPASSPASSPASSPASSPASS
customElements.define must validate the custom element name before checking the element definition is running flagPASSPASSPASSPASSPASS
customElements.define unset the element definition is running flag before upgrading custom elementsPASSPASSPASSPASSPASS
customElements.define must not throw when defining another custom element in a different global object during Get(constructor, "prototype")PASSPASSPASSPASSPASS
Custom Elements: CustomElementRegistry interfacePASSPASSPASSPASSPASS
customElements.define must get "prototype", "disabledFeatures", and "formAssociated" property of the constructorPASSPASSPASSPASSPASS
customElements.define must rethrow an exception thrown while getting "prototype" property of the constructorPASSPASSPASSPASSPASS
customElements.define must throw when "prototype" property of the constructor is not an objectPASSPASSPASSPASSPASS
customElements.define must get callbacks of the constructor prototypePASSPASSPASSPASSPASS
customElements.define must rethrow an exception thrown while getting callbacks on the constructor prototypePASSPASSPASSPASSPASS
customElements.define must rethrow an exception thrown while converting a callback value to Function callback typePASSPASSPASSPASSPASS
customElements.define must get "observedAttributes" property on the constructor prototype when "attributeChangedCallback" is presentPASSPASSFAILPASSPASS
customElements.define must rethrow an exception thrown while getting observedAttributes on the constructor prototypePASSPASSPASSPASSPASS
customElements.define must rethrow an exception thrown while converting the value of observedAttributes to sequence<DOMString>PASSPASSPASSPASSPASS
customElements.define must rethrow an exception thrown while iterating over observedAttributes to sequence<DOMString>PASSPASSPASSPASSPASS
customElements.define must rethrow an exception thrown while retrieving Symbol.iterator on observedAttributesPASSPASSPASSPASSPASS
customElements.define must not throw even if "observedAttributes" fails to convert if "attributeChangedCallback" is not definedPASSPASSPASSPASSPASS
customElements.define must rethrow an exception thrown while getting disabledFeatures on the constructor prototypePASSPASSPASSPASSPASS
customElements.define must rethrow an exception thrown while converting the value of disabledFeatures to sequence<DOMString>PASSPASSPASSPASSPASS
customElements.define must rethrow an exception thrown while iterating over disabledFeatures to sequence<DOMString>PASSPASSPASSPASSPASS
customElements.define must rethrow an exception thrown while retrieving Symbol.iterator on disabledFeaturesPASSPASSPASSPASSPASS
customElements.define must rethrow an exception thrown while getting formAssociated on the constructor prototypePASSPASSPASSPASSPASS
customElements.define must get four additional callbacks on the prototype if formAssociated is converted to trueFAILPASSPASSPASSPASS
customElements.define must rethrow an exception thrown while getting additional formAssociated callbacks on the constructor prototypePASSPASSPASSPASSPASS
customElements.define must define an instantiatable custom elementPASSPASSPASSPASSPASS
customElements.define must upgrade elements in the shadow-including tree orderPASSPASSPASSPASSPASS
CustomElementRegistry interface must have get as a methodPASSPASSPASSPASSPASS
customElements.get must return undefined when the registry does not contain an entry with the given namePASSPASSPASSPASSPASS
customElements.get must return undefined when the registry does not contain an entry with the given name even if the name was not a valid custom element namePASSPASSPASSPASSPASS
customElements.get return the constructor of the entry with the given name when there is a matching entry.PASSPASSPASSPASSPASS
customElements.whenDefined must return a promise for a valid custom element namePASSPASSPASSPASSPASS
customElements.whenDefined must return the same promise each time invoked for a valid custom element name which has not been definedPASSPASSPASSPASSPASS
customElements.whenDefined must return an unresolved promise when the registry does not contain the entry with the given namePASSPASSPASSPASSPASS
customElements.whenDefined must return a rejected promise when the given name is not a valid custom element namePASSPASSPASSPASSPASS
customElements.whenDefined must return a resolved promise when the registry contains the entry with the given namePASSPASSPASSPASSPASS
customElements.whenDefined must return a new resolved promise each time invoked when the registry contains the entry with the given namePASSPASSPASSPASSPASS
A promise returned by customElements.whenDefined must be resolved by "define"PASSPASSPASSPASSPASS
A promise returned by customElements.whenDefined must be resolved with the defined classPASSPASSPASSPASSPASS
A promise returned by customElements.whenDefined must be resolved with the defined class once such class is definedPASSPASSPASSPASSPASS