Skip to content

Commit

Permalink
[CSS Math Functions] NaN numeric representation should be 0 (not Infi…
Browse files Browse the repository at this point in the history
…nity)

https://bugs.webkit.org/show_bug.cgi?id=259034
rdar://111984451

Reviewed by Darin Adler.

This changed in w3c/csswg-drafts@b5113b9

Discussion was at w3c/csswg-drafts#7067

* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-computed-color-function-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-computed-lab-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-color-function-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-lab-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-computed-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/round-mod-rem-serialize-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/signs-abs-computed-expected.txt:
* Source/WebCore/css/calc/CSSCalcOperationNode.h:
* Source/WebCore/css/calc/CSSCalcValue.cpp:
(WebCore::CSSCalcValue::clampToPermittedRange const):

Canonical link: https://commits.webkit.org/265891@main
  • Loading branch information
nt1m committed Jul 9, 2023
1 parent e7780d7 commit c7b1f51
Show file tree
Hide file tree
Showing 9 changed files with 74 additions and 69 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ PASS Property color value 'color(srgb none none none)'
PASS Property color value 'color(srgb 10% none none / none)'
PASS Property color value 'color(srgb none none none / 0.5)'
PASS Property color value 'color(srgb 0 0 0 / none)'
FAIL Property color value 'color(srgb calc(NaN) 0 0)' assert_equals: expected "color(srgb 0 0 0)" but got "color(srgb Infinity 0 0)"
FAIL Property color value 'color(srgb calc(0 / 0) 0 0)' assert_equals: expected "color(srgb 0 0 0)" but got "color(srgb Infinity 0 0)"
PASS Property color value 'color(srgb calc(NaN) 0 0)'
PASS Property color value 'color(srgb calc(0 / 0) 0 0)'
PASS Property color value 'color(srgb-linear 0% 0% 0%)'
PASS Property color value 'color(srgb-linear 10% 10% 10%)'
PASS Property color value 'color(srgb-linear .2 .2 25%)'
Expand Down Expand Up @@ -55,8 +55,8 @@ PASS Property color value 'color(srgb-linear none none none)'
PASS Property color value 'color(srgb-linear 10% none none / none)'
PASS Property color value 'color(srgb-linear none none none / 0.5)'
PASS Property color value 'color(srgb-linear 0 0 0 / none)'
FAIL Property color value 'color(srgb-linear calc(NaN) 0 0)' assert_equals: expected "color(srgb-linear 0 0 0)" but got "color(srgb-linear Infinity 0 0)"
FAIL Property color value 'color(srgb-linear calc(0 / 0) 0 0)' assert_equals: expected "color(srgb-linear 0 0 0)" but got "color(srgb-linear Infinity 0 0)"
PASS Property color value 'color(srgb-linear calc(NaN) 0 0)'
PASS Property color value 'color(srgb-linear calc(0 / 0) 0 0)'
PASS Property color value 'color(a98-rgb 0% 0% 0%)'
PASS Property color value 'color(a98-rgb 10% 10% 10%)'
PASS Property color value 'color(a98-rgb .2 .2 25%)'
Expand Down Expand Up @@ -84,8 +84,8 @@ PASS Property color value 'color(a98-rgb none none none)'
PASS Property color value 'color(a98-rgb 10% none none / none)'
PASS Property color value 'color(a98-rgb none none none / 0.5)'
PASS Property color value 'color(a98-rgb 0 0 0 / none)'
FAIL Property color value 'color(a98-rgb calc(NaN) 0 0)' assert_equals: expected "color(a98-rgb 0 0 0)" but got "color(a98-rgb Infinity 0 0)"
FAIL Property color value 'color(a98-rgb calc(0 / 0) 0 0)' assert_equals: expected "color(a98-rgb 0 0 0)" but got "color(a98-rgb Infinity 0 0)"
PASS Property color value 'color(a98-rgb calc(NaN) 0 0)'
PASS Property color value 'color(a98-rgb calc(0 / 0) 0 0)'
PASS Property color value 'color(rec2020 0% 0% 0%)'
PASS Property color value 'color(rec2020 10% 10% 10%)'
PASS Property color value 'color(rec2020 .2 .2 25%)'
Expand Down Expand Up @@ -113,8 +113,8 @@ PASS Property color value 'color(rec2020 none none none)'
PASS Property color value 'color(rec2020 10% none none / none)'
PASS Property color value 'color(rec2020 none none none / 0.5)'
PASS Property color value 'color(rec2020 0 0 0 / none)'
FAIL Property color value 'color(rec2020 calc(NaN) 0 0)' assert_equals: expected "color(rec2020 0 0 0)" but got "color(rec2020 Infinity 0 0)"
FAIL Property color value 'color(rec2020 calc(0 / 0) 0 0)' assert_equals: expected "color(rec2020 0 0 0)" but got "color(rec2020 Infinity 0 0)"
PASS Property color value 'color(rec2020 calc(NaN) 0 0)'
PASS Property color value 'color(rec2020 calc(0 / 0) 0 0)'
PASS Property color value 'color(prophoto-rgb 0% 0% 0%)'
PASS Property color value 'color(prophoto-rgb 10% 10% 10%)'
PASS Property color value 'color(prophoto-rgb .2 .2 25%)'
Expand Down Expand Up @@ -142,8 +142,8 @@ PASS Property color value 'color(prophoto-rgb none none none)'
PASS Property color value 'color(prophoto-rgb 10% none none / none)'
PASS Property color value 'color(prophoto-rgb none none none / 0.5)'
PASS Property color value 'color(prophoto-rgb 0 0 0 / none)'
FAIL Property color value 'color(prophoto-rgb calc(NaN) 0 0)' assert_equals: expected "color(prophoto-rgb 0 0 0)" but got "color(prophoto-rgb Infinity 0 0)"
FAIL Property color value 'color(prophoto-rgb calc(0 / 0) 0 0)' assert_equals: expected "color(prophoto-rgb 0 0 0)" but got "color(prophoto-rgb Infinity 0 0)"
PASS Property color value 'color(prophoto-rgb calc(NaN) 0 0)'
PASS Property color value 'color(prophoto-rgb calc(0 / 0) 0 0)'
PASS Property color value 'color(display-p3 0% 0% 0%)'
PASS Property color value 'color(display-p3 10% 10% 10%)'
PASS Property color value 'color(display-p3 .2 .2 25%)'
Expand Down Expand Up @@ -171,8 +171,8 @@ PASS Property color value 'color(display-p3 none none none)'
PASS Property color value 'color(display-p3 10% none none / none)'
PASS Property color value 'color(display-p3 none none none / 0.5)'
PASS Property color value 'color(display-p3 0 0 0 / none)'
FAIL Property color value 'color(display-p3 calc(NaN) 0 0)' assert_equals: expected "color(display-p3 0 0 0)" but got "color(display-p3 Infinity 0 0)"
FAIL Property color value 'color(display-p3 calc(0 / 0) 0 0)' assert_equals: expected "color(display-p3 0 0 0)" but got "color(display-p3 Infinity 0 0)"
PASS Property color value 'color(display-p3 calc(NaN) 0 0)'
PASS Property color value 'color(display-p3 calc(0 / 0) 0 0)'
PASS Property color value 'color(xyz 0 0 0)'
PASS Property color value 'color(xyz 0 0 0 / 1)'
PASS Property color value 'color(xyz 1 1 1)'
Expand All @@ -193,8 +193,8 @@ PASS Property color value 'color(xyz none none none)'
PASS Property color value 'color(xyz 0.2 none none / none)'
PASS Property color value 'color(xyz none none none / 0.5)'
PASS Property color value 'color(xyz 0 0 0 / none)'
FAIL Property color value 'color(xyz calc(NaN) 0 0)' assert_equals: expected "color(xyz-d65 0 0 0)" but got "color(xyz-d65 Infinity 0 0)"
FAIL Property color value 'color(xyz calc(0 / 0) 0 0)' assert_equals: expected "color(xyz-d65 0 0 0)" but got "color(xyz-d65 Infinity 0 0)"
PASS Property color value 'color(xyz calc(NaN) 0 0)'
PASS Property color value 'color(xyz calc(0 / 0) 0 0)'
PASS Property color value 'color(xyz-d50 0 0 0)'
PASS Property color value 'color(xyz-d50 0 0 0 / 1)'
PASS Property color value 'color(xyz-d50 1 1 1)'
Expand All @@ -215,8 +215,8 @@ PASS Property color value 'color(xyz-d50 none none none)'
PASS Property color value 'color(xyz-d50 0.2 none none / none)'
PASS Property color value 'color(xyz-d50 none none none / 0.5)'
PASS Property color value 'color(xyz-d50 0 0 0 / none)'
FAIL Property color value 'color(xyz-d50 calc(NaN) 0 0)' assert_equals: expected "color(xyz-d50 0 0 0)" but got "color(xyz-d50 Infinity 0 0)"
FAIL Property color value 'color(xyz-d50 calc(0 / 0) 0 0)' assert_equals: expected "color(xyz-d50 0 0 0)" but got "color(xyz-d50 Infinity 0 0)"
PASS Property color value 'color(xyz-d50 calc(NaN) 0 0)'
PASS Property color value 'color(xyz-d50 calc(0 / 0) 0 0)'
PASS Property color value 'color(xyz-d65 0 0 0)'
PASS Property color value 'color(xyz-d65 0 0 0 / 1)'
PASS Property color value 'color(xyz-d65 1 1 1)'
Expand All @@ -237,8 +237,8 @@ PASS Property color value 'color(xyz-d65 none none none)'
PASS Property color value 'color(xyz-d65 0.2 none none / none)'
PASS Property color value 'color(xyz-d65 none none none / 0.5)'
PASS Property color value 'color(xyz-d65 0 0 0 / none)'
FAIL Property color value 'color(xyz-d65 calc(NaN) 0 0)' assert_equals: expected "color(xyz-d65 0 0 0)" but got "color(xyz-d65 Infinity 0 0)"
FAIL Property color value 'color(xyz-d65 calc(0 / 0) 0 0)' assert_equals: expected "color(xyz-d65 0 0 0)" but got "color(xyz-d65 Infinity 0 0)"
PASS Property color value 'color(xyz-d65 calc(NaN) 0 0)'
PASS Property color value 'color(xyz-d65 calc(0 / 0) 0 0)'
PASS Property color value 'color(srgb 1.00 0.50 0.200)' [sRGB all numbers]
PASS Property color value 'color(srgb 100% 50% 20%)' [sRGB all percent]
PASS Property color value 'color(srgb 100% 0.5 20%)' [sRGB mixed number and percent]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ PASS Property color value 'lab(none none none)'
PASS Property color value 'lab(20 none none / none)'
PASS Property color value 'lab(none none none / 0.5)'
PASS Property color value 'lab(0 0 0 / none)'
FAIL Property color value 'lab(calc(NaN) 0 0)' assert_equals: expected "lab(0 0 0)" but got "lab(Infinity 0 0)"
FAIL Property color value 'lab(calc(0 / 0) 0 0)' assert_equals: expected "lab(0 0 0)" but got "lab(Infinity 0 0)"
PASS Property color value 'lab(calc(NaN) 0 0)'
PASS Property color value 'lab(calc(0 / 0) 0 0)'
PASS Property color value 'oklab(0 0 0)'
PASS Property color value 'oklab(0 0 0 / 1)'
PASS Property color value 'oklab(0 0 0 / 0.5)'
Expand All @@ -45,8 +45,8 @@ PASS Property color value 'oklab(none none none / 0.5)'
PASS Property color value 'oklab(0 0 0 / none)'
PASS Property color value 'lab(20% -50% 90%/0.5)'
PASS Property color value 'oklab(20% 70% -80%/0.5)'
FAIL Property color value 'oklab(calc(NaN) 0 0)' assert_equals: expected "oklab(0 0 0)" but got "oklab(Infinity 0 0)"
FAIL Property color value 'oklab(calc(0 / 0) 0 0)' assert_equals: expected "oklab(0 0 0)" but got "oklab(Infinity 0 0)"
PASS Property color value 'oklab(calc(NaN) 0 0)'
PASS Property color value 'oklab(calc(0 / 0) 0 0)'
PASS Property color value 'lch(0 0 0deg)'
PASS Property color value 'lch(0 0 0deg / 1)'
PASS Property color value 'lch(0 0 0deg / 0.5)'
Expand All @@ -72,8 +72,8 @@ PASS Property color value 'lch(none none none)'
PASS Property color value 'lch(20 none none / none)'
PASS Property color value 'lch(none none none / 0.5)'
PASS Property color value 'lch(0 0 0 / none)'
FAIL Property color value 'lch(calc(NaN) 0 0)' assert_equals: expected "lch(0 0 0)" but got "lch(Infinity 0 0)"
FAIL Property color value 'lch(calc(0 / 0) 0 0)' assert_equals: expected "lch(0 0 0)" but got "lch(Infinity 0 0)"
PASS Property color value 'lch(calc(NaN) 0 0)'
PASS Property color value 'lch(calc(0 / 0) 0 0)'
PASS Property color value 'oklch(0 0 0deg)'
PASS Property color value 'oklch(0 0 0deg / 1)'
PASS Property color value 'oklch(0 0 0deg / 0.5)'
Expand Down Expand Up @@ -101,6 +101,6 @@ PASS Property color value 'oklch(none none none / 0.5)'
PASS Property color value 'oklch(0 0 0 / none)'
PASS Property color value 'lch(20% 80% 10/0.5)'
PASS Property color value 'oklch(20% 60% 10/0.5)'
FAIL Property color value 'oklch(calc(NaN) 0 0)' assert_equals: expected "oklch(0 0 0)" but got "oklch(Infinity 0 0)"
FAIL Property color value 'oklch(calc(0 / 0) 0 0)' assert_equals: expected "oklch(0 0 0)" but got "oklch(Infinity 0 0)"
PASS Property color value 'oklch(calc(NaN) 0 0)'
PASS Property color value 'oklch(calc(0 / 0) 0 0)'

Loading

0 comments on commit c7b1f51

Please sign in to comment.