WPT
wpt / css / css-mixins / functions / dashed-function-eval.html
Spec: CSS Functions and Mixins ↗
Runs: Chrome 155.0.8042.0 (wpt@4eb09bcd9, 2026-09-04) | Firefox 157.0a1 (wpt@c3fcbf4ba, 2026-09-04) | Safari 251 preview (wpt@e7122b73f, 2026-09-04) | Ladybird 1.0-52f0f (wpt@a1ecd0c09, 2026-09-04) | Servo Servo 0.6 (wpt@2c385f65e, 2026-09-04) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 89/89 | 0/89 | 89/89 | 85/89 | 0/89 | 0/89 |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Literal result | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Literal result, typed return | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Literal result, typed return, calc | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Literal result, typed return, mismatch | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Missing result descriptor | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Literal result, empty | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| result cascading behavior | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Another dashed-function in result | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Unused argument | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Single parameter | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Multiple parameters | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Single parameter, typed | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Typed parameter with calc() | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Untyped parameter with calc() | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Various typed parameters | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Parameter with complex type (auto) | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Parameter with complex type (px) | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Passing argument to inner function | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| var() in argument resolved before call | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| var() in argument resolved before call, typed | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Argument captures IACVT due to invalid var() | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Argument captures IACVT due to invalid var(), typed | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Argument captures IACVT due to type mismatch | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Single parameter with default value | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Multiple parameters with defaults | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Multiple parameters with defaults, typed | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Default referencing another parameter | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Default referencing another parameter, local interference | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Default referencing another defaulted parameter | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Typed default with reference | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| IACVT arguments are defaulted | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| IACVT arguments are defaulted, typed | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Arguments are defaulted on type mismatch | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Unused local | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Local does not affect outer scope | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Substituting local in result | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Substituting multiple locals in result | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Local referring to another local | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Locals appearing after result | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Locals cascading behavior | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Custom properties are visible inside function | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Substitute local from outer scope | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Substitute argument from outer scope | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Inner argument shadowing outer argument | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Inner argument shadowing outer local | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Inner local shadowing outer argument | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Inner local shadowing outer local | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Referencing outer local containing var() | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Referencing outer typed argument | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Same function with different scopes | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Referencing local two frames up | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| IACVT outer local shadows property | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Inner function call should see resolved outer locals | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Inner function call should see resolved outer locals (reverse) | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Parameter shadows custom property | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Local shadows parameter | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| IACVT argument shadows outer scope | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| IACVT argument shadows outer scope, typed | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| IACVT argument shadows outer scope, type mismatch | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Missing only argument | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Missing one argument of several | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Passing list as only argument | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Passing list as first argument | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Passing list as second argument | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Passing comma as argument | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Passing {} as argument | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Passing non-whole-value {} as argument | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Local variable with initial keyword | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Local variable with initial keyword, defaulted | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Local variable with initial keyword, no value via IACVT-capture | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Default with initial keyword | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| initial appearing via fallback | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Local variable with inherit keyword | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Local variable with inherit keyword (nested) | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Inheriting an invalid value | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Default with inherit keyword | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Default with inherit keyword (nested) | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Local with the unset keyword | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Local with the revert keyword | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Local with the revert-layer keyword | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Local with the revert-rule keyword | PASS | FAIL | PASS | FAIL | FAIL | FAIL |
| initial keyword left unresolved on result descriptor | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| inherit keyword left unresolved on result descriptor | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| unset keyword left unresolved on result descriptor | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| revert keyword left unresolved on result descriptor | PASS | FAIL | PASS | FAIL | FAIL | FAIL |
| revert-layer keyword left unresolved on result descriptor | PASS | FAIL | PASS | FAIL | FAIL | FAIL |
| revert-rule keyword left unresolved on result descriptor | PASS | FAIL | PASS | FAIL | FAIL | FAIL |
| Keyword can be returned from function into local variable | PASS | FAIL | PASS | PASS | FAIL | FAIL |
| Can not return CSS-wide keyword as length | PASS | FAIL | PASS | PASS | FAIL | FAIL |