Bindings: Make item_value return an Optional<JS::Value>

This removes some ambiguity about what the return value should be if
the index is out of range.

Previously, we would sometimes return a JS null, and other times a JS
undefined.

It will also let us fold together the checks for whether an index is a
supported property index, followed by getting the value just afterwards.
This commit is contained in:
Shannon Booth 2024-07-25 18:15:51 +12:00 committed by Andreas Kling
parent 9b59dc5e8b
commit c5c1a8fcc7
Notes: github-actions[bot] 2024-07-26 12:27:19 +00:00
31 changed files with 53 additions and 47 deletions

View file

@ -219,9 +219,11 @@ bool HTMLAllCollection::is_supported_property_index(u32 index) const
return index < collect_matching_elements().size();
}
JS::Value HTMLAllCollection::item_value(size_t index) const
Optional<JS::Value> HTMLAllCollection::item_value(size_t index) const
{
return get_the_all_indexed_element(index);
if (auto value = get_the_all_indexed_element(index))
return value;
return {};
}
JS::Value HTMLAllCollection::named_item_value(FlyString const& name) const