LibWeb: Skip shorthand serialization for var() longhands

When CSSRule.cssText is accessed, shorthands are recomposed from
individual longhand declarations. For coordinating-list shorthands, the
`serialize()` function always assumed that each  sub-property was a
value list. This caused a  crash for longhands containing `var()`. We
now fall back to serializing properties individually if any sub
property contains `var()`. This matches the behavior of other engines.
This commit is contained in:
Tim Ledbetter
2026-03-02 15:22:59 +00:00
committed by Jelle Raaijmakers
parent 710c44a021
commit 30d528d3c0
Notes: github-actions[bot] 2026-03-06 12:44:41 +00:00
3 changed files with 23 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
<!DOCTYPE html>
<style>
.a {
transition-property: var(--a);
transition-duration: var(--b);
transition-timing-function: var(--c);
transition-delay: var(--d);
transition-behavior: var(--e);
}
</style>
<script src="../include.js"></script>
<script>
test(() => {
println(document.styleSheets[0].cssRules[0].cssText);
});
</script>