LibWeb: Implement faster equals() for UnresolvedStyleValue

Compare `Vector<Parser::ComponentValue>` directly instead of
serializing them into strings first.

This is required for the upcoming changes where we would compare
previous and new sets of custom properties to figure out whether we need
to invalidate descendant elements. Without this change `equals()` would
show up being hot in profiles.
This commit is contained in:
Aliaksandr Kalenik 2025-07-27 23:28:34 +02:00 committed by Andreas Kling
commit cbe4ba60c3
Notes: github-actions[bot] 2025-07-30 09:07:30 +00:00
4 changed files with 14 additions and 2 deletions

View file

@ -48,8 +48,7 @@ bool UnresolvedStyleValue::equals(CSSStyleValue const& other) const
{
if (type() != other.type())
return false;
// This is a case where comparing the strings actually makes sense.
return to_string(SerializationMode::Normal) == other.to_string(SerializationMode::Normal);
return values() == other.as_unresolved().values();
}
}