LibWeb: Make the custom CSSDeclaration methods only work on strings

Otherwise it will try to convert it to a string later anyway. And as far
as I'm aware there are no style properties with just a number or
JavaScript symbol as name.
This commit is contained in:
davidot 2021-07-24 12:23:37 +02:00 committed by Linus Groh
parent e42eaa5d95
commit a67f0cbfa2
Notes: sideshowbarker 2024-07-18 08:19:13 +09:00

View file

@ -13,13 +13,17 @@ namespace Web::Bindings {
bool CSSStyleDeclarationWrapper::internal_has_property(JS::PropertyName const& name) const
{
if (!name.is_string())
return Base::internal_has_property(name);
// FIXME: These should actually use camelCase versions of the property names!
auto property_id = CSS::property_id_from_string(name.to_string());
return property_id != CSS::PropertyID::Invalid;
}
JS::Value CSSStyleDeclarationWrapper::internal_get(const JS::PropertyName& name, JS::Value receiver) const
JS::Value CSSStyleDeclarationWrapper::internal_get(JS::PropertyName const& name, JS::Value receiver) const
{
if (!name.is_string())
return Base::internal_get(name, receiver);
// FIXME: These should actually use camelCase versions of the property names!
auto property_id = CSS::property_id_from_string(name.to_string());
if (property_id == CSS::PropertyID::Invalid)
@ -31,8 +35,10 @@ JS::Value CSSStyleDeclarationWrapper::internal_get(const JS::PropertyName& name,
return js_string(vm(), String::empty());
}
bool CSSStyleDeclarationWrapper::internal_set(const JS::PropertyName& name, JS::Value value, JS::Value receiver)
bool CSSStyleDeclarationWrapper::internal_set(JS::PropertyName const& name, JS::Value value, JS::Value receiver)
{
if (!name.is_string())
return Base::internal_set(name, value, receiver);
// FIXME: These should actually use camelCase versions of the property names!
auto property_id = CSS::property_id_from_string(name.to_string());
if (property_id == CSS::PropertyID::Invalid)