LibWeb: Propagate exceptions from setAttribute() in DOMStringMap setter

We were incorrectly assuming that setAttribute() could never fail here,
even when passed an invalid name.

Found by Domato.
This commit is contained in:
Andreas Kling 2024-07-19 14:57:23 +02:00 committed by Andreas Kling
parent 1c00e5688d
commit 093f1dd805
Notes: github-actions[bot] 2024-07-20 07:32:01 +00:00
3 changed files with 14 additions and 1 deletions

View File

@ -0,0 +1 @@
Setting DOMStringMap with an invalid name key throws? true

View File

@ -0,0 +1,12 @@
<script src="../include.js"></script>
<script>
test(() => {
let threw = false;
try {
document.body.dataset["'\uDBF8"] = "foo";
} catch {
threw = true;
}
println("Setting DOMStringMap with an invalid name key throws? " + threw);
});
</script>

View File

@ -165,7 +165,7 @@ WebIDL::ExceptionOr<void> DOMStringMap::set_value_of_new_named_property(String c
// FIXME: 4. If name does not match the XML Name production, throw an "InvalidCharacterError" DOMException.
// 5. Set an attribute value for the DOMStringMap's associated element using name and value.
MUST(m_associated_element->set_attribute(data_name, value));
TRY(m_associated_element->set_attribute(data_name, value));
return {};
}