LibWeb: Generically serialize "positional-value-list-shorthand"s

We were previously handling this ad-hoc via logic in
`get_property_internal` but this didn't cover all contexts (for
instance `CSSStyleProperties::serialized`.

Gains us 9 more WPT tests as we now cover properties which weren't
included in the previous ad-hoc approach.
This commit is contained in:
Callum Law 2025-07-10 22:23:07 +12:00 committed by Sam Atkins
commit 927cd969b2
Notes: github-actions[bot] 2025-07-15 13:27:25 +00:00
14 changed files with 234 additions and 115 deletions

View file

@ -2,8 +2,7 @@ Harness status: OK
Found 10 tests
9 Pass
1 Fail
10 Pass
Pass e.style['border-block-start-width'] = "10px" should set the property value
Pass e.style['border-block-start-width'] = "calc(10px + 0.5em)" should set the property value
Pass e.style['border-block-start-width'] = "thick" should set the property value
@ -12,5 +11,5 @@ Pass e.style['border-block-end-width'] = "0" should set the property value
Pass e.style['border-block-end-width'] = "calc(10px - 0.5em)" should set the property value
Pass e.style['border-block-end-width'] = "medium" should set the property value
Pass e.style['border-block-width'] = "10px" should set the property value
Fail e.style['border-block-width'] = "medium calc(10px + 0.5em)" should set the property value
Pass e.style['border-block-width'] = "medium calc(10px + 0.5em)" should set the property value
Pass e.style['border-block-width'] = "10px 10px" should set the property value

View file

@ -2,8 +2,7 @@ Harness status: OK
Found 10 tests
9 Pass
1 Fail
10 Pass
Pass e.style['border-inline-start-width'] = "10px" should set the property value
Pass e.style['border-inline-start-width'] = "calc(10px + 0.5em)" should set the property value
Pass e.style['border-inline-start-width'] = "thick" should set the property value
@ -12,5 +11,5 @@ Pass e.style['border-inline-end-width'] = "0" should set the property value
Pass e.style['border-inline-end-width'] = "calc(10px - 0.5em)" should set the property value
Pass e.style['border-inline-end-width'] = "medium" should set the property value
Pass e.style['border-inline-width'] = "10px" should set the property value
Fail e.style['border-inline-width'] = "medium calc(10px + 0.5em)" should set the property value
Pass e.style['border-inline-width'] = "medium calc(10px + 0.5em)" should set the property value
Pass e.style['border-inline-width'] = "10px 10px" should set the property value

View file

@ -0,0 +1,18 @@
Harness status: OK
Found 12 tests
8 Pass
4 Fail
Pass Property inset-block-start value 'auto'
Pass Property inset-block-end value '-10px'
Pass Property inset-inline-start value '-20%'
Fail Property inset-inline-end value 'calc(10px - 0.5em)'
Pass Property inset-block value 'auto'
Pass Property inset-block value '-10px'
Fail Property inset-block value 'calc(10px - 0.5em) -20%'
Pass Property inset-block value 'auto auto'
Pass Property inset-inline value '-20%'
Fail Property inset-inline value 'calc(10px - 0.5em)'
Pass Property inset-inline value '-10px auto'
Fail Property inset-inline value 'auto calc(10px + 0.5em)'

View file

@ -0,0 +1,17 @@
Harness status: OK
Found 12 tests
12 Pass
Pass e.style['inset-block-start'] = "auto" should set the property value
Pass e.style['inset-block-end'] = "-10px" should set the property value
Pass e.style['inset-inline-start'] = "-20%" should set the property value
Pass e.style['inset-inline-end'] = "calc(10px - 0.5em)" should set the property value
Pass e.style['inset-block'] = "auto" should set the property value
Pass e.style['inset-block'] = "-10px" should set the property value
Pass e.style['inset-block'] = "calc(10px - 0.5em) -20%" should set the property value
Pass e.style['inset-block'] = "auto auto" should set the property value
Pass e.style['inset-inline'] = "-20%" should set the property value
Pass e.style['inset-inline'] = "calc(10px - 0.5em)" should set the property value
Pass e.style['inset-inline'] = "-10px auto" should set the property value
Pass e.style['inset-inline'] = "auto calc(10px + 0.5em)" should set the property value

View file

@ -0,0 +1,14 @@
Harness status: OK
Found 8 tests
6 Pass
2 Fail
Pass Property inset value 'auto'
Pass Property inset value '-10px'
Fail Property inset value 'calc(10px - 0.5em) -20%'
Pass Property inset value 'auto auto'
Fail Property inset value '10px calc(10px - 0.5em) -30px'
Pass Property inset value 'auto auto auto'
Pass Property inset value '10px 20px auto -30px'
Pass Property inset value 'auto auto auto auto'

View file

@ -0,0 +1,13 @@
Harness status: OK
Found 8 tests
8 Pass
Pass e.style['inset'] = "auto" should set the property value
Pass e.style['inset'] = "-10px" should set the property value
Pass e.style['inset'] = "calc(-0.5em + 10px) -20%" should set the property value
Pass e.style['inset'] = "auto auto" should set the property value
Pass e.style['inset'] = "10px calc(-0.5em + 10px) -30px" should set the property value
Pass e.style['inset'] = "auto auto auto" should set the property value
Pass e.style['inset'] = "10px calc(-0.5em + 10px) auto -30px" should set the property value
Pass e.style['inset'] = "auto auto auto auto" should set the property value