LibWeb: Ensure document.getElementById("") returns null

Previously, if a document had an element whose id was the empty string,
then `document.getElementById("")` and `element.getElementById("")`
would return that element.
This commit is contained in:
Tim Ledbetter 2024-07-22 20:24:03 +01:00 committed by Andreas Kling
parent 18499c4eac
commit f666d967d6
Notes: github-actions[bot] 2024-07-23 06:59:28 +00:00
3 changed files with 10 additions and 1 deletions

View file

@ -0,0 +1 @@
document.getElementById(""): null

View file

@ -0,0 +1,8 @@
<!DOCTYPE html>
<script src="../include.js"></script>
<div id=""></div>
<script>
test(() => {
println(`document.getElementById(""): ${document.getElementById("")}`);
});
</script>

View file

@ -457,7 +457,7 @@ void Element::attribute_changed(FlyString const& name, Optional<String> const&,
auto value_or_empty = value.value_or(String {});
if (name == HTML::AttributeNames::id) {
if (!value.has_value())
if (value_or_empty.is_empty())
m_id = {};
else
m_id = value_or_empty;