LibWeb: Add customElements.getName

This commit is contained in:
Keith Cirkel 2024-07-06 15:35:10 +01:00 committed by Andrew Kaster
commit 8d593bcfeb
Notes: sideshowbarker 2024-07-17 05:00:08 +09:00
3 changed files with 17 additions and 0 deletions

View file

@ -337,6 +337,21 @@ Variant<JS::Handle<WebIDL::CallbackType>, JS::Value> CustomElementRegistry::get(
return JS::js_undefined();
}
// https://html.spec.whatwg.org/multipage/custom-elements.html#dom-customelementregistry-getname
Optional<String> CustomElementRegistry::get_name(JS::Handle<WebIDL::CallbackType> const& constructor) const
{
// 1. If this CustomElementRegistry contains an entry with constructor constructor, then return that entry's name.
auto existing_definition_iterator = m_custom_element_definitions.find_if([&constructor](auto const& definition) {
return definition->constructor().callback == constructor.cell()->callback;
});
if (!existing_definition_iterator.is_end())
return (*existing_definition_iterator)->name();
// 2. Return null.
return {};
}
// https://html.spec.whatwg.org/multipage/custom-elements.html#dom-customelementregistry-whendefined
WebIDL::ExceptionOr<JS::NonnullGCPtr<JS::Promise>> CustomElementRegistry::when_defined(String const& name)
{