[wpt-sync] Sync PR 50916 - [functions] Support IACVT-capture for function arguments
Categories
(Core :: CSS Parsing and Computation, task, P4)
Tracking
()
Tracking | Status | |
---|---|---|
firefox137 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 50916 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/50916
Details from upstream follow.
Anders Hartvoll Ruud <andruud@chromium.org> wrote:
[functions] Support IACVT-capture for function arguments
Currently, if you attempt to pass e.g. var(--unknown) as a function
argument, the declaration containing the function call becomes
invalid at computed-value time (IACVT). The intended behavior is
instead that an argument "captures" these invalid states, and instead
falls back to its default value (or failing that, just becomes
\<guaranteed-invalid>). This allows authors to pass a variable
which may or may not exist into a function, and actually act on that
information.Fixed: 397919914
Bug: 325504770
Change-Id: I4ad474b29bdadddafc3780b5659916e7c73e46df
Reviewed-on: https://chromium-review.googlesource.com/6288531
WPT-Export-Revision: 7439f0e66c3e10c06bd30bf9652dc7baaa9679c4
Assignee | ||
Updated•20 days ago
|
Assignee | ||
Comment 1•19 days ago
|
||
Assignee | ||
Comment 2•19 days ago
|
||
Assignee | ||
Comment 3•19 days ago
|
||
CI Results
Ran 0 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 1 tests and 67 subtests
Status Summary
Firefox
OK
: 1
FAIL
: 67
Chrome
OK
: 1
PASS
: 47
FAIL
: 20
Safari
OK
: 1
FAIL
: 67
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:FAIL
, Safari:FAIL
) - Argument captures IACVT due to invalid var(), typed:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Argument captures IACVT due to type mismatch:
FAIL
(Chrome:FAIL
, 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:FAIL
, Safari:FAIL
) - Default referencing another parameter, local interference:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Default referencing another defaulted parameter:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Typed default with reference:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - IACVT arguments are defaulted:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - IACVT arguments are defaulted, typed:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Arguments are defaulted on type mismatch:
FAIL
(Chrome:FAIL
, 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:FAIL
, 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:FAIL
, Safari:FAIL
) - IACVT argument shadows outer scope, typed:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - IACVT argument shadows outer scope, type mismatch:
FAIL
(Chrome:FAIL
, 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:FAIL
, Safari:FAIL
) - Passing list as first argument:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Passing list as second argument:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Passing comma as argument:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Passing {} as argument:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - Passing non-whole-value {} as argument:
FAIL
(Chrome:FAIL
, Safari:FAIL
)
- Literal result:
Comment 5•16 days ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/c6737230d5ff
https://hg.mozilla.org/mozilla-central/rev/8d6579eee79a
Description
•