1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:37:35 +00:00

LibJS: Let Object::delete_property() return a bool, not Value

Just like the various define_property functions, this should return a
bool directly and let the caller deal with wrapping it in a Value, if
necessary.
This commit is contained in:
Linus Groh 2021-04-10 17:44:12 +02:00 committed by Andreas Kling
parent 4788c94d34
commit ec62783af9
6 changed files with 20 additions and 20 deletions

View file

@ -711,24 +711,24 @@ bool Object::put_own_property_by_index(u32 property_index, Value value, Property
return true;
}
Value Object::delete_property(const PropertyName& property_name)
bool Object::delete_property(const PropertyName& property_name)
{
VERIFY(property_name.is_valid());
if (property_name.is_number())
return Value(m_indexed_properties.remove(property_name.as_number()));
return m_indexed_properties.remove(property_name.as_number());
if (property_name.is_string()) {
i32 property_index = property_name.as_string().to_int().value_or(-1);
if (property_index >= 0)
return Value(m_indexed_properties.remove(property_index));
return m_indexed_properties.remove(property_index);
}
auto metadata = shape().lookup(property_name.to_string_or_symbol());
if (!metadata.has_value())
return Value(true);
return true;
if (!metadata.value().attributes.is_configurable())
return Value(false);
return false;
size_t deleted_offset = metadata.value().offset;
@ -736,7 +736,7 @@ Value Object::delete_property(const PropertyName& property_name)
shape().remove_property_from_unique_shape(property_name.to_string_or_symbol(), deleted_offset);
m_storage.remove(deleted_offset);
return Value(true);
return true;
}
void Object::ensure_shape_is_unique()