LibWeb: Support composition of mixed values

This exposes an existing issue with interpolation where it is not clear
in what situations zero-valued dimensions should be excluded from the
interpolated value of a dimension-percentage mix (e.g. `calc(50% + 0px)`
vs `50%`) - but this is just a serialization issue as both
representations are resolved to the same used value
This commit is contained in:
Callum Law
2026-02-22 20:07:21 +13:00
committed by Tim Ledbetter
parent f7e5e57233
commit 49eb9d7a7a
Notes: github-actions[bot] 2026-02-23 09:02:43 +00:00
22 changed files with 313 additions and 279 deletions

View File

@@ -2,8 +2,8 @@ Harness status: OK
Found 50 tests
42 Pass
8 Fail
48 Pass
2 Fail
Pass Compositing CSS Animations: property <flex-basis> underlying [50px] from add [100px] to add [200px] at (-0.3) should be [120px]
Pass Compositing CSS Animations: property <flex-basis> underlying [50px] from add [100px] to add [200px] at (0) should be [150px]
Pass Compositing CSS Animations: property <flex-basis> underlying [50px] from add [100px] to add [200px] at (0.5) should be [200px]
@@ -24,16 +24,16 @@ Pass Compositing Web Animations: property <flex-basis> underlying [100px] from a
Pass Compositing Web Animations: property <flex-basis> underlying [100px] from add [10px] to add [2px] at (0.5) should be [106px]
Pass Compositing Web Animations: property <flex-basis> underlying [100px] from add [10px] to add [2px] at (1) should be [102px]
Pass Compositing Web Animations: property <flex-basis> underlying [100px] from add [10px] to add [2px] at (1.5) should be [98px]
Fail Compositing CSS Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (-0.3) should be [calc(130px + 4%)]
Fail Compositing CSS Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (0) should be [calc(100px + 10%)]
Fail Compositing CSS Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (0.5) should be [calc(50px + 20%)]
Pass Compositing CSS Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (1) should be [30%]
Fail Compositing CSS Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (1.5) should be [calc(-50px + 40%)]
Fail Compositing Web Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (-0.3) should be [calc(130px + 4%)]
Fail Compositing Web Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (0) should be [calc(100px + 10%)]
Fail Compositing Web Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (0.5) should be [calc(50px + 20%)]
Pass Compositing Web Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (1) should be [30%]
Fail Compositing Web Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (1.5) should be [calc(-50px + 40%)]
Pass Compositing CSS Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (-0.3) should be [calc(130px + 4%)]
Pass Compositing CSS Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (0) should be [calc(100px + 10%)]
Pass Compositing CSS Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (0.5) should be [calc(50px + 20%)]
Fail Compositing CSS Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (1) should be [30%]
Pass Compositing CSS Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (1.5) should be [calc(-50px + 40%)]
Pass Compositing Web Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (-0.3) should be [calc(130px + 4%)]
Pass Compositing Web Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (0) should be [calc(100px + 10%)]
Pass Compositing Web Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (0.5) should be [calc(50px + 20%)]
Fail Compositing Web Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (1) should be [30%]
Pass Compositing Web Animations: property <flex-basis> underlying [10%] from add [100px] to add [20%] at (1.5) should be [calc(-50px + 40%)]
Pass Compositing CSS Animations: property <flex-basis> underlying [50px] from add [100px] to replace [200px] at (-0.3) should be [135px]
Pass Compositing CSS Animations: property <flex-basis> underlying [50px] from add [100px] to replace [200px] at (0) should be [150px]
Pass Compositing CSS Animations: property <flex-basis> underlying [50px] from add [100px] to replace [200px] at (0.5) should be [175px]