LibWeb: Normalize getter name for reflected “Element?” IDL types

This change updates the bindings generator for the case defined at
https://html.spec.whatwg.org/#reflecting-content-attributes-in-idl-attributes:element;
that is, the case “If a reflected IDL attribute has the type T?, where T
is either Element or an interface that inherits from Element”.

The change “normalizes” the generator behavior for that case — such that
the generated code expects a getter with a name of the form used in
other cases; e.g., popover_target_element().

Otherwise, without this change, the generator expects a name of the form
get_popover_target_element() for that case.
This commit is contained in:
sideshowbarker 2024-12-28 19:46:14 +09:00 committed by Tim Flynn
parent 19567d96ec
commit 0c6a6d4457
Notes: github-actions[bot] 2024-12-28 16:35:40 +00:00
2 changed files with 2 additions and 2 deletions

View file

@ -17,7 +17,7 @@ class PopoverInvokerElement {
public:
PopoverInvokerElement() { }
GC::Ptr<DOM::Element> get_popover_target_element() { return m_popover_target_element; }
GC::Ptr<DOM::Element> popover_target_element() { return m_popover_target_element; }
void set_popover_target_element(GC::Ptr<DOM::Element> value) { m_popover_target_element = value; }

View file

@ -3821,7 +3821,7 @@ JS_DEFINE_NATIVE_FUNCTION(@class_name@::@attribute.getter_callback@)
// 1. If reflectedTarget's explicitly set attr-element is a descendant of any of element's shadow-including ancestors, then return reflectedTarget's explicitly set attr-element.
// 2. Return null.
attribute_generator.append(R"~~~(
auto const explicitly_set_attr = TRY(throw_dom_exception_if_needed(vm, [&] { return impl->get_@attribute.cpp_name@(); }));
auto const explicitly_set_attr = TRY(throw_dom_exception_if_needed(vm, [&] { return impl->@attribute.cpp_name@(); }));
if (explicitly_set_attr) {
if (&impl->shadow_including_root() == &explicitly_set_attr->shadow_including_root()) {
retval = explicitly_set_attr;