[wpt-sync] Sync PR 51123 - [functions] Handle CSS-wide keywords
Categories
(Core :: CSS Parsing and Computation, task, P4)
Tracking
()
Tracking | Status | |
---|---|---|
firefox138 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 51123 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/51123
Details from upstream follow.
Anders Hartvoll Ruud <andruud@chromium.org> wrote:
[functions] Handle CSS-wide keywords
The CSS-wide keywords 'initial' and 'inherit' have special meaning
for local variables within @function:
- 'initial' resolves to the argument value.
- 'inherit' resolves to the value "inherited" from the parent
stack frame.Implementing 'initial' is simple enough, since the argument's value
is readily available on the current FunctionContext. The 'inherit'
keyword is more problematic, since it can refer to various things
in the parent stack frame (a local variable, an argument, or a custom
property). To solve this in a straightforward way, this CL reuses
the "resolve like var()" trick done in CL:6271544.Change-Id: Ifb79df905f155bdc51b1fa41ff7fb436d9a8e09e
Bug: 325504770,
Fixed: 397489542
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6281567
Commit-Queue: Anders Hartvoll Ruud \<andruud@chromium.org>
Reviewed-by: Munira Tursunova \<moonira@google.com>
Cr-Commit-Position: refs/heads/main@{#1428204}
Assignee | ||
Updated•18 days ago
|
Assignee | ||
Comment 1•18 days ago
|
||
Assignee | ||
Comment 2•18 days ago
|
||
CI Results
Ran 0 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 1 tests and 87 subtests
Status Summary
Firefox
OK
: 1
FAIL
: 87
Chrome
OK
: 1
PASS
: 69
FAIL
: 18
Safari
OK
: 1
FAIL
: 87
Links
Details
New Tests That Don't Pass
- /css/css-mixins/dashed-function-eval.html [wpt.fyi]
- Literal result:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Literal result, typed return:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Literal result, typed return, calc:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Literal result, typed return, mismatch:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Missing result descriptor:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Literal result, empty:
FAIL
(Chrome:PASS
, Safari:FAIL
) - result cascading behavior:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Another dashed-function in result:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Unused argument:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Single parameter:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Multiple parameters:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Single parameter, typed:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Typed parameter with calc():
FAIL
(Chrome:PASS
, Safari:FAIL
) - Untyped parameter with calc():
FAIL
(Chrome:PASS
, Safari:FAIL
) - Various typed parameters:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Parameter with complex type (auto):
FAIL
(Chrome:PASS
, Safari:FAIL
) - Parameter with complex type (px):
FAIL
(Chrome:PASS
, Safari:FAIL
) - Passing argument to inner function:
FAIL
(Chrome:PASS
, Safari:FAIL
) - var() in argument resolved before call:
FAIL
(Chrome:PASS
, Safari:FAIL
) - var() in argument resolved before call, typed:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Argument captures IACVT due to invalid var():
FAIL
(Chrome:PASS
, Safari:FAIL
) - Argument captures IACVT due to invalid var(), typed:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Argument captures IACVT due to type mismatch:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Single parameter with default value:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Multiple parameters with defaults:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Multiple parameters with defaults, typed:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Default referencing another parameter:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Default referencing another parameter, local interference:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Default referencing another defaulted parameter:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Typed default with reference:
FAIL
(Chrome:PASS
, Safari:FAIL
) - IACVT arguments are defaulted:
FAIL
(Chrome:PASS
, Safari:FAIL
) - IACVT arguments are defaulted, typed:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Arguments are defaulted on type mismatch:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Unused local:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Local does not affect outer scope:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Substituting local in result:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Substituting multiple locals in result:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Local referring to another local:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Locals appearing after result:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Locals cascading behavior:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Custom properties are visible inside function:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Substitute local from outer scope:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Substitute argument from outer scope:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Inner argument shadowing outer argument:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Inner argument shadowing outer local:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Inner local shadowing outer argument:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Inner local shadowing outer local:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Referencing outer local containing var():
FAIL
(Chrome:PASS
, Safari:FAIL
) - Referencing outer typed argument:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Same function with different scopes:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Referencing local two frames up:
FAIL
(Chrome:PASS
, Safari:FAIL
) - IACVT outer local shadows property:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Inner function call should see resolved outer locals:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Inner function call should see resolved outer locals (reverse):
FAIL
(Chrome:PASS
, Safari:FAIL
) - Parameter shadows custom property:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Local shadows parameter:
FAIL
(Chrome:PASS
, Safari:FAIL
) - IACVT argument shadows outer scope:
FAIL
(Chrome:PASS
, Safari:FAIL
) - IACVT argument shadows outer scope, typed:
FAIL
(Chrome:PASS
, Safari:FAIL
) - IACVT argument shadows outer scope, type mismatch:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Missing only argument:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Missing one argument of several:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Passing list as only argument:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Passing list as first argument:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Passing list as second argument:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Passing comma as argument:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Passing {} as argument:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Passing non-whole-value {} as argument:
FAIL
(Chrome:PASS
, Safari:FAIL
) - Local variable with initial keyword:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Local variable with initial keyword, defaulted:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Local variable with initial keyword, no value via IACVT-capture:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Default with initial keyword:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - initial appearing via fallback:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Local variable with inherit keyword:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Local variable with inherit keyword (nested):
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Inheriting an invalid value:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Default with inherit keyword:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Default with inherit keyword (nested):
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Local with the unset keyword:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Local with the revert keyword:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Local with the revert-layer keyword:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - initial keyword left unresolved on result descriptor:
FAIL
(Chrome:PASS
, Safari:FAIL
) - inherit keyword left unresolved on result descriptor:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - unset keyword left unresolved on result descriptor:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - revert keyword left unresolved on result descriptor:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - revert-layer keyword left unresolved on result descriptor:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Keyword can be returned from function into local variable:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Can not return CSS-wide keyword as length:
FAIL
(Chrome:PASS
, Safari:FAIL
)
- Literal result:
Comment 4•12 days ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/01c56ff0b747
https://hg.mozilla.org/mozilla-central/rev/724d1f53680f
Description
•