Diff
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (291829 => 291830)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2022-03-24 23:48:48 UTC (rev 291829)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2022-03-24 23:53:00 UTC (rev 291830)
@@ -1,3 +1,15 @@
+2022-03-24 Nikolaos Mouchtaris <nmouchta...@apple.com>
+
+ Fix serialization of nan, infinity, -infinity for calc()
+ https://bugs.webkit.org/show_bug.cgi?id=238288
+
+ Reviewed by Simon Fraser.
+
+ * web-platform-tests/css/css-values/calc-catch-divide-by-0-expected.txt:
+ * web-platform-tests/css/css-values/calc-infinity-nan-serialize-angle-expected.txt:
+ * web-platform-tests/css/css-values/calc-infinity-nan-serialize-length-expected.txt:
+ * web-platform-tests/css/css-values/calc-infinity-nan-serialize-time-expected.txt:
+
2022-03-24 Cathie Chen <cathiec...@igalia.com>
Update css/css-sizing/contain-intrinsic-size tests from WPT
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-catch-divide-by-0-expected.txt (291829 => 291830)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-catch-divide-by-0-expected.txt 2022-03-24 23:48:48 UTC (rev 291829)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-catch-divide-by-0-expected.txt 2022-03-24 23:53:00 UTC (rev 291830)
@@ -1,23 +1,23 @@
-FAIL 'calc(100px * 0 / 0)' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(100px / 0)' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(100px / (0))' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(100px / (2 - 2))' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(100px / (2 - (-62 + 64)))' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(100px * (1 / 0))' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(100px * (1 / (0)))' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(100px * (1 / (2 - 2)))' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(100px * (1 / (2 - (-62 + 64))))' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(1px * max(1/0, 0))' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
+PASS 'calc(100px * 0 / 0)' as a specified value should serialize as 'calc(NaN * 1px)'.
+PASS 'calc(100px / 0)' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(100px / (0))' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(100px / (2 - 2))' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(100px / (2 - (-62 + 64)))' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(100px * (1 / 0))' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(100px * (1 / (0)))' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(100px * (1 / (2 - 2)))' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(100px * (1 / (2 - (-62 + 64))))' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(1px * max(1/0, 0))' as a specified value should serialize as 'calc(infinity * 1px)'.
PASS 'calc(1px * min(1/0, 0))' as a specified value should serialize as 'calc(0px)'.
-FAIL 'calc(1px * max(0/0, 0))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * min(0/0, 0))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * max(0/0, min(0,10)))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * clamp(0/0, 0, 10))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * max(0, min(10, 0/0)))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * clamp(0, 10, 0/0))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * max(0, min(0/0, 10)))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * clamp(0, 0/0, 10))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
+PASS 'calc(1px * max(0/0, 0))' as a specified value should serialize as 'calc(NaN * 1px)'.
+PASS 'calc(1px * min(0/0, 0))' as a specified value should serialize as 'calc(NaN * 1px)'.
+PASS 'calc(1px * max(0/0, min(0,10)))' as a specified value should serialize as 'calc(NaN * 1px)'.
+FAIL 'calc(1px * clamp(0/0, 0, 10))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(1px * clamp(0/0, 0, 10))' and 'calc(NaN * 1px)' should serialize the same in specified values. expected "calc(NaN * 1px)" but got "calc(1px * clamp(NaN, 0, 10))"
+FAIL 'calc(1px * max(0, min(10, 0/0)))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(1px * max(0, min(10, 0/0)))' and 'calc(NaN * 1px)' should serialize the same in specified values. expected "calc(NaN * 1px)" but got "calc(10px)"
+FAIL 'calc(1px * clamp(0, 10, 0/0))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(1px * clamp(0, 10, 0/0))' and 'calc(NaN * 1px)' should serialize the same in specified values. expected "calc(NaN * 1px)" but got "calc(1px * clamp(0, 10, NaN))"
+FAIL 'calc(1px * max(0, min(0/0, 10)))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(1px * max(0, min(0/0, 10)))' and 'calc(NaN * 1px)' should serialize the same in specified values. expected "calc(NaN * 1px)" but got "calc(0px)"
+FAIL 'calc(1px * clamp(0, 0/0, 10))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(1px * clamp(0, 0/0, 10))' and 'calc(NaN * 1px)' should serialize the same in specified values. expected "calc(NaN * 1px)" but got "calc(1px * clamp(0, NaN, 10))"
FAIL 'calc(1px * clamp(-1/0, 0, 1/0))' as a specified value should serialize as 'calc(0px)'. assert_equals: 'calc(1px * clamp(-1/0, 0, 1/0))' and 'calc(0px)' should serialize the same in specified values. expected "calc(0px)" but got "calc(1px * clamp(-infinity, 0, infinity))"
FAIL 'calc(1px * clamp(-1/0, 1/0, 10))' as a specified value should serialize as 'calc(10px)'. assert_equals: 'calc(1px * clamp(-1/0, 1/0, 10))' and 'calc(10px)' should serialize the same in specified values. expected "calc(10px)" but got "calc(1px * clamp(-infinity, infinity, 10))"
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-serialize-angle-expected.txt (291829 => 291830)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-serialize-angle-expected.txt 2022-03-24 23:48:48 UTC (rev 291829)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-serialize-angle-expected.txt 2022-03-24 23:53:00 UTC (rev 291830)
@@ -1,32 +1,32 @@
-FAIL 'rotate(calc(1deg * NaN))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1rad * NaN))' as a specified value should serialize as 'rotate(calc(NaN * 1rad))'. assert_equals: 'rotate(calc(NaN * 1rad))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1rad))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1turn * NaN))' as a specified value should serialize as 'rotate(calc(NaN * 1turn))'. assert_equals: 'rotate(calc(NaN * 1turn))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1turn))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1grad * nan))' as a specified value should serialize as 'rotate(calc(NaN * 1grad))'. assert_equals: 'rotate(calc(NaN * 1grad))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1grad))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1deg * infinity / infinity))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1deg * 0 * infinity))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1deg * (infinity + -infinity)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1deg * (-infinity + infinity)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1deg * (infinity - infinity)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1deg * infinity))' as a specified value should serialize as 'rotate(calc(infinity * 1deg))'. assert_equals: 'rotate(calc(infinity * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(infinity * 1deg))" but got "rotate(calc(infinitydeg))"
-FAIL 'rotate(calc(1deg * -infinity))' as a specified value should serialize as 'rotate(calc(-infinity * 1deg))'. assert_equals: 'rotate(calc(-infinity * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(-infinity * 1deg))" but got "rotate(calc(-infinitydeg))"
-FAIL 'rotate(calc(1deg * iNFinIty))' as a specified value should serialize as 'rotate(calc(infinity * 1deg))'. assert_equals: 'rotate(calc(infinity * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(infinity * 1deg))" but got "rotate(calc(infinitydeg))"
-FAIL 'rotate(calc(1deg * (infinity + infinity)))' as a specified value should serialize as 'rotate(calc(infinity * 1deg))'. assert_equals: 'rotate(calc(infinity * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(infinity * 1deg))" but got "rotate(calc(infinitydeg))"
-FAIL 'rotate(calc(1deg * (-infinity + -infinity)))' as a specified value should serialize as 'rotate(calc(-infinity * 1deg))'. assert_equals: 'rotate(calc(-infinity * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(-infinity * 1deg))" but got "rotate(calc(-infinitydeg))"
+PASS 'rotate(calc(1deg * NaN))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.
+FAIL 'rotate(calc(1rad * NaN))' as a specified value should serialize as 'rotate(calc(NaN * 1rad))'. assert_equals: 'rotate(calc(NaN * 1rad))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1rad))" but got "rotate(calc(NaN * 1deg))"
+FAIL 'rotate(calc(1turn * NaN))' as a specified value should serialize as 'rotate(calc(NaN * 1turn))'. assert_equals: 'rotate(calc(NaN * 1turn))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1turn))" but got "rotate(calc(NaN * 1deg))"
+FAIL 'rotate(calc(1grad * nan))' as a specified value should serialize as 'rotate(calc(NaN * 1grad))'. assert_equals: 'rotate(calc(NaN * 1grad))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1grad))" but got "rotate(calc(NaN * 1deg))"
+PASS 'rotate(calc(1deg * infinity / infinity))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.
+PASS 'rotate(calc(1deg * 0 * infinity))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.
+PASS 'rotate(calc(1deg * (infinity + -infinity)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.
+PASS 'rotate(calc(1deg * (-infinity + infinity)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.
+PASS 'rotate(calc(1deg * (infinity - infinity)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.
+PASS 'rotate(calc(1deg * infinity))' as a specified value should serialize as 'rotate(calc(infinity * 1deg))'.
+PASS 'rotate(calc(1deg * -infinity))' as a specified value should serialize as 'rotate(calc(-infinity * 1deg))'.
+PASS 'rotate(calc(1deg * iNFinIty))' as a specified value should serialize as 'rotate(calc(infinity * 1deg))'.
+PASS 'rotate(calc(1deg * (infinity + infinity)))' as a specified value should serialize as 'rotate(calc(infinity * 1deg))'.
+PASS 'rotate(calc(1deg * (-infinity + -infinity)))' as a specified value should serialize as 'rotate(calc(-infinity * 1deg))'.
PASS 'rotate(calc(1deg * 1/infinity))' as a specified value should serialize as 'rotate(calc(0deg))'.
-FAIL 'rotate(calc(1deg * infinity * infinity))' as a specified value should serialize as 'rotate(calc(infinity * 1deg))'. assert_equals: 'rotate(calc(infinity * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(infinity * 1deg))" but got "rotate(calc(infinitydeg))"
-FAIL 'rotate(calc(1deg * -infinity * -infinity))' as a specified value should serialize as 'rotate(calc(infinity * 1deg))'. assert_equals: 'rotate(calc(infinity * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(infinity * 1deg))" but got "rotate(calc(infinitydeg))"
-FAIL 'rotate(calc(1 * max(INFinity*3deg, 0deg)))' as a specified value should serialize as 'rotate(calc(infinity * 1deg))'. assert_equals: 'rotate(calc(infinity * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(infinity * 1deg))" but got "rotate(calc(infinitydeg))"
+PASS 'rotate(calc(1deg * infinity * infinity))' as a specified value should serialize as 'rotate(calc(infinity * 1deg))'.
+PASS 'rotate(calc(1deg * -infinity * -infinity))' as a specified value should serialize as 'rotate(calc(infinity * 1deg))'.
+PASS 'rotate(calc(1 * max(INFinity*3deg, 0deg)))' as a specified value should serialize as 'rotate(calc(infinity * 1deg))'.
PASS 'rotate(calc(1 * min(inFInity*4deg, 0deg)))' as a specified value should serialize as 'rotate(calc(0deg))'.
-FAIL 'rotate(calc(1 * max(nAn*2deg, 0deg)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1 * min(nan*3deg, 0deg)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1 * clamp(-INFINITY*20deg, 0deg, infiniTY*10deg)))' as a specified value should serialize as 'rotate(calc(0deg))'. assert_equals: 'rotate(calc(1 * clamp(-INFINITY*20deg, 0deg, infiniTY*10deg)))' and 'rotate(calc(0deg))' should serialize the same in specified values. expected "rotate(calc(0deg))" but got "rotate(calc(1 * clamp(-infinitydeg, 0deg, infinitydeg)))"
-FAIL 'rotate(calc(1deg * max(NaN, min(0,10))))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1deg * clamp(NaN, 0, 10)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1deg * max(0, min(10, NaN))))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1deg * clamp(0, 10, NaN)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1deg * max(0, min(NaN, 10))))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
-FAIL 'rotate(calc(1deg * clamp(0, NaN, 10)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(NaN * 1deg))' should round-trip exactly in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(NaNdeg))"
+PASS 'rotate(calc(1 * max(nAn*2deg, 0deg)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.
+PASS 'rotate(calc(1 * min(nan*3deg, 0deg)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.
+FAIL 'rotate(calc(1 * clamp(-INFINITY*20deg, 0deg, infiniTY*10deg)))' as a specified value should serialize as 'rotate(calc(0deg))'. assert_equals: 'rotate(calc(1 * clamp(-INFINITY*20deg, 0deg, infiniTY*10deg)))' and 'rotate(calc(0deg))' should serialize the same in specified values. expected "rotate(calc(0deg))" but got "rotate(calc(1 * clamp(-infinity * 1deg, 0deg, infinity * 1deg)))"
+PASS 'rotate(calc(1deg * max(NaN, min(0,10))))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.
+FAIL 'rotate(calc(1deg * clamp(NaN, 0, 10)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(1deg * clamp(NaN, 0, 10)))' and 'rotate(calc(NaN * 1deg))' should serialize the same in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(1deg * clamp(NaN, 0, 10)))"
+FAIL 'rotate(calc(1deg * max(0, min(10, NaN))))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(1deg * max(0, min(10, NaN))))' and 'rotate(calc(NaN * 1deg))' should serialize the same in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(10deg))"
+FAIL 'rotate(calc(1deg * clamp(0, 10, NaN)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(1deg * clamp(0, 10, NaN)))' and 'rotate(calc(NaN * 1deg))' should serialize the same in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(1deg * clamp(0, 10, NaN)))"
+FAIL 'rotate(calc(1deg * max(0, min(NaN, 10))))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(1deg * max(0, min(NaN, 10))))' and 'rotate(calc(NaN * 1deg))' should serialize the same in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(0deg))"
+FAIL 'rotate(calc(1deg * clamp(0, NaN, 10)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'. assert_equals: 'rotate(calc(1deg * clamp(0, NaN, 10)))' and 'rotate(calc(NaN * 1deg))' should serialize the same in specified values. expected "rotate(calc(NaN * 1deg))" but got "rotate(calc(1deg * clamp(0, NaN, 10)))"
FAIL 'rotate(calc(1deg * clamp(-Infinity, 0, infinity)))' as a specified value should serialize as 'rotate(calc(0deg))'. assert_equals: 'rotate(calc(1deg * clamp(-Infinity, 0, infinity)))' and 'rotate(calc(0deg))' should serialize the same in specified values. expected "rotate(calc(0deg))" but got "rotate(calc(1deg * clamp(-infinity, 0, infinity)))"
FAIL 'rotate(calc(1deg * clamp(-inFinity, infinity, 10)))' as a specified value should serialize as 'rotate(calc(10deg))'. assert_equals: 'rotate(calc(1deg * clamp(-inFinity, infinity, 10)))' and 'rotate(calc(10deg))' should serialize the same in specified values. expected "rotate(calc(10deg))" but got "rotate(calc(1deg * clamp(-infinity, infinity, 10)))"
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-serialize-length-expected.txt (291829 => 291830)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-serialize-length-expected.txt 2022-03-24 23:48:48 UTC (rev 291829)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-serialize-length-expected.txt 2022-03-24 23:53:00 UTC (rev 291830)
@@ -1,30 +1,30 @@
-FAIL 'calc(1px * NaN)' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * nan)' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * infinity / infinity)' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * 0 * infinity)' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * (infinity + -infinity))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * (-infinity + infinity))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * (infinity - infinity))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * infinity)' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(1px * -infinity)' as a specified value should serialize as 'calc(-infinity * 1px)'. assert_equals: 'calc(-infinity * 1px)' should round-trip exactly in specified values. expected "calc(-infinity * 1px)" but got "calc(-infinitypx)"
-FAIL 'calc(1px * iNFinIty)' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(1px * (infinity + infinity))' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(1px * (-infinity + -infinity))' as a specified value should serialize as 'calc(-infinity * 1px)'. assert_equals: 'calc(-infinity * 1px)' should round-trip exactly in specified values. expected "calc(-infinity * 1px)" but got "calc(-infinitypx)"
+PASS 'calc(1px * NaN)' as a specified value should serialize as 'calc(NaN * 1px)'.
+PASS 'calc(1px * nan)' as a specified value should serialize as 'calc(NaN * 1px)'.
+PASS 'calc(1px * infinity / infinity)' as a specified value should serialize as 'calc(NaN * 1px)'.
+PASS 'calc(1px * 0 * infinity)' as a specified value should serialize as 'calc(NaN * 1px)'.
+PASS 'calc(1px * (infinity + -infinity))' as a specified value should serialize as 'calc(NaN * 1px)'.
+PASS 'calc(1px * (-infinity + infinity))' as a specified value should serialize as 'calc(NaN * 1px)'.
+PASS 'calc(1px * (infinity - infinity))' as a specified value should serialize as 'calc(NaN * 1px)'.
+PASS 'calc(1px * infinity)' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(1px * -infinity)' as a specified value should serialize as 'calc(-infinity * 1px)'.
+PASS 'calc(1px * iNFinIty)' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(1px * (infinity + infinity))' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(1px * (-infinity + -infinity))' as a specified value should serialize as 'calc(-infinity * 1px)'.
PASS 'calc(1px * 1/infinity)' as a specified value should serialize as 'calc(0px)'.
-FAIL 'calc(1px * infinity * infinity)' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(1px * -infinity * -infinity)' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
-FAIL 'calc(1 * max(INFinity*3px, 0px))' as a specified value should serialize as 'calc(infinity * 1px)'. assert_equals: 'calc(infinity * 1px)' should round-trip exactly in specified values. expected "calc(infinity * 1px)" but got "calc(infinitypx)"
+PASS 'calc(1px * infinity * infinity)' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(1px * -infinity * -infinity)' as a specified value should serialize as 'calc(infinity * 1px)'.
+PASS 'calc(1 * max(INFinity*3px, 0px))' as a specified value should serialize as 'calc(infinity * 1px)'.
PASS 'calc(1 * min(inFInity*4px, 0px))' as a specified value should serialize as 'calc(0px)'.
-FAIL 'calc(1 * max(nAn*2px, 0px))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1 * min(nan*3px, 0px))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1 * clamp(-INFINITY*20px, 0px, infiniTY*10px))' as a specified value should serialize as 'calc(0px)'. assert_equals: 'calc(1 * clamp(-INFINITY*20px, 0px, infiniTY*10px))' and 'calc(0px)' should serialize the same in specified values. expected "calc(0px)" but got "calc(1 * clamp(-infinitypx, 0px, infinitypx))"
-FAIL 'calc(1px * max(NaN, min(0,10)))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * clamp(NaN, 0, 10))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * max(0, min(10, NaN)))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * clamp(0, 10, NaN))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * max(0, min(NaN, 10)))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
-FAIL 'calc(1px * clamp(0, NaN, 10))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(NaN * 1px)' should round-trip exactly in specified values. expected "calc(NaN * 1px)" but got "calc(NaNpx)"
+PASS 'calc(1 * max(nAn*2px, 0px))' as a specified value should serialize as 'calc(NaN * 1px)'.
+PASS 'calc(1 * min(nan*3px, 0px))' as a specified value should serialize as 'calc(NaN * 1px)'.
+FAIL 'calc(1 * clamp(-INFINITY*20px, 0px, infiniTY*10px))' as a specified value should serialize as 'calc(0px)'. assert_equals: 'calc(1 * clamp(-INFINITY*20px, 0px, infiniTY*10px))' and 'calc(0px)' should serialize the same in specified values. expected "calc(0px)" but got "calc(1 * clamp(-infinity * 1px, 0px, infinity * 1px))"
+PASS 'calc(1px * max(NaN, min(0,10)))' as a specified value should serialize as 'calc(NaN * 1px)'.
+FAIL 'calc(1px * clamp(NaN, 0, 10))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(1px * clamp(NaN, 0, 10))' and 'calc(NaN * 1px)' should serialize the same in specified values. expected "calc(NaN * 1px)" but got "calc(1px * clamp(NaN, 0, 10))"
+FAIL 'calc(1px * max(0, min(10, NaN)))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(1px * max(0, min(10, NaN)))' and 'calc(NaN * 1px)' should serialize the same in specified values. expected "calc(NaN * 1px)" but got "calc(10px)"
+FAIL 'calc(1px * clamp(0, 10, NaN))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(1px * clamp(0, 10, NaN))' and 'calc(NaN * 1px)' should serialize the same in specified values. expected "calc(NaN * 1px)" but got "calc(1px * clamp(0, 10, NaN))"
+FAIL 'calc(1px * max(0, min(NaN, 10)))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(1px * max(0, min(NaN, 10)))' and 'calc(NaN * 1px)' should serialize the same in specified values. expected "calc(NaN * 1px)" but got "calc(0px)"
+FAIL 'calc(1px * clamp(0, NaN, 10))' as a specified value should serialize as 'calc(NaN * 1px)'. assert_equals: 'calc(1px * clamp(0, NaN, 10))' and 'calc(NaN * 1px)' should serialize the same in specified values. expected "calc(NaN * 1px)" but got "calc(1px * clamp(0, NaN, 10))"
FAIL 'calc(1px * clamp(-Infinity, 0, infinity))' as a specified value should serialize as 'calc(0px)'. assert_equals: 'calc(1px * clamp(-Infinity, 0, infinity))' and 'calc(0px)' should serialize the same in specified values. expected "calc(0px)" but got "calc(1px * clamp(-infinity, 0, infinity))"
FAIL 'calc(1px * clamp(-inFinity, infinity, 10))' as a specified value should serialize as 'calc(10px)'. assert_equals: 'calc(1px * clamp(-inFinity, infinity, 10))' and 'calc(10px)' should serialize the same in specified values. expected "calc(10px)" but got "calc(1px * clamp(-infinity, infinity, 10))"
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-serialize-time-expected.txt (291829 => 291830)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-serialize-time-expected.txt 2022-03-24 23:48:48 UTC (rev 291829)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-serialize-time-expected.txt 2022-03-24 23:53:00 UTC (rev 291830)
@@ -1,30 +1,30 @@
-FAIL 'calc(1s * NaN)' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1s * nan)' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1s * infinity / infinity)' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1s * 0 * infinity)' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1s * (infinity + -infinity))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1s * (-infinity + infinity))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1s * (infinity - infinity))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1s * infinity)' as a specified value should serialize as 'calc(infinity * 1s)'. assert_equals: 'calc(infinity * 1s)' should round-trip exactly in specified values. expected "calc(infinity * 1s)" but got "calc(infinitys)"
-FAIL 'calc(1s * -infinity)' as a specified value should serialize as 'calc(-infinity * 1s)'. assert_equals: 'calc(-infinity * 1s)' should round-trip exactly in specified values. expected "calc(-infinity * 1s)" but got "calc(-infinitys)"
-FAIL 'calc(1s * iNFinIty)' as a specified value should serialize as 'calc(infinity * 1s)'. assert_equals: 'calc(infinity * 1s)' should round-trip exactly in specified values. expected "calc(infinity * 1s)" but got "calc(infinitys)"
-FAIL 'calc(1s * (infinity + infinity))' as a specified value should serialize as 'calc(infinity * 1s)'. assert_equals: 'calc(infinity * 1s)' should round-trip exactly in specified values. expected "calc(infinity * 1s)" but got "calc(infinitys)"
-FAIL 'calc(1s * (-infinity + -infinity))' as a specified value should serialize as 'calc(-infinity * 1s)'. assert_equals: 'calc(-infinity * 1s)' should round-trip exactly in specified values. expected "calc(-infinity * 1s)" but got "calc(-infinitys)"
+PASS 'calc(1s * NaN)' as a specified value should serialize as 'calc(NaN * 1s)'.
+PASS 'calc(1s * nan)' as a specified value should serialize as 'calc(NaN * 1s)'.
+PASS 'calc(1s * infinity / infinity)' as a specified value should serialize as 'calc(NaN * 1s)'.
+PASS 'calc(1s * 0 * infinity)' as a specified value should serialize as 'calc(NaN * 1s)'.
+PASS 'calc(1s * (infinity + -infinity))' as a specified value should serialize as 'calc(NaN * 1s)'.
+PASS 'calc(1s * (-infinity + infinity))' as a specified value should serialize as 'calc(NaN * 1s)'.
+PASS 'calc(1s * (infinity - infinity))' as a specified value should serialize as 'calc(NaN * 1s)'.
+PASS 'calc(1s * infinity)' as a specified value should serialize as 'calc(infinity * 1s)'.
+PASS 'calc(1s * -infinity)' as a specified value should serialize as 'calc(-infinity * 1s)'.
+PASS 'calc(1s * iNFinIty)' as a specified value should serialize as 'calc(infinity * 1s)'.
+PASS 'calc(1s * (infinity + infinity))' as a specified value should serialize as 'calc(infinity * 1s)'.
+PASS 'calc(1s * (-infinity + -infinity))' as a specified value should serialize as 'calc(-infinity * 1s)'.
PASS 'calc(1s * 1/infinity)' as a specified value should serialize as 'calc(0s)'.
-FAIL 'calc(1s * infinity * infinity)' as a specified value should serialize as 'calc(infinity * 1s)'. assert_equals: 'calc(infinity * 1s)' should round-trip exactly in specified values. expected "calc(infinity * 1s)" but got "calc(infinitys)"
-FAIL 'calc(1s * -infinity * -infinity)' as a specified value should serialize as 'calc(infinity * 1s)'. assert_equals: 'calc(infinity * 1s)' should round-trip exactly in specified values. expected "calc(infinity * 1s)" but got "calc(infinitys)"
-FAIL 'calc(1 * max(INFinity*3s, 0s))' as a specified value should serialize as 'calc(infinity * 1s)'. assert_equals: 'calc(infinity * 1s)' should round-trip exactly in specified values. expected "calc(infinity * 1s)" but got "calc(infinitys)"
+PASS 'calc(1s * infinity * infinity)' as a specified value should serialize as 'calc(infinity * 1s)'.
+PASS 'calc(1s * -infinity * -infinity)' as a specified value should serialize as 'calc(infinity * 1s)'.
+PASS 'calc(1 * max(INFinity*3s, 0s))' as a specified value should serialize as 'calc(infinity * 1s)'.
PASS 'calc(1 * min(inFInity*4s, 0s))' as a specified value should serialize as 'calc(0s)'.
-FAIL 'calc(1 * max(nAn*2s, 0s))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1 * min(nan*3s, 0s))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1 * clamp(-INFINITY*20s, 0s, infiniTY*10s))' as a specified value should serialize as 'calc(0s)'. assert_equals: 'calc(1 * clamp(-INFINITY*20s, 0s, infiniTY*10s))' and 'calc(0s)' should serialize the same in specified values. expected "calc(0s)" but got "calc(1 * clamp(-infinitys, 0s, infinitys))"
-FAIL 'calc(1s * max(NaN, min(0,10)))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1s * clamp(NaN, 0, 10))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1s * max(0, min(10, NaN)))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1s * clamp(0, 10, NaN))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1s * max(0, min(NaN, 10)))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
-FAIL 'calc(1s * clamp(0, NaN, 10))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(NaN * 1s)' should round-trip exactly in specified values. expected "calc(NaN * 1s)" but got "calc(NaNs)"
+PASS 'calc(1 * max(nAn*2s, 0s))' as a specified value should serialize as 'calc(NaN * 1s)'.
+PASS 'calc(1 * min(nan*3s, 0s))' as a specified value should serialize as 'calc(NaN * 1s)'.
+FAIL 'calc(1 * clamp(-INFINITY*20s, 0s, infiniTY*10s))' as a specified value should serialize as 'calc(0s)'. assert_equals: 'calc(1 * clamp(-INFINITY*20s, 0s, infiniTY*10s))' and 'calc(0s)' should serialize the same in specified values. expected "calc(0s)" but got "calc(1 * clamp(-infinity * 1s, 0s, infinity * 1s))"
+PASS 'calc(1s * max(NaN, min(0,10)))' as a specified value should serialize as 'calc(NaN * 1s)'.
+FAIL 'calc(1s * clamp(NaN, 0, 10))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(1s * clamp(NaN, 0, 10))' and 'calc(NaN * 1s)' should serialize the same in specified values. expected "calc(NaN * 1s)" but got "calc(1s * clamp(NaN, 0, 10))"
+FAIL 'calc(1s * max(0, min(10, NaN)))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(1s * max(0, min(10, NaN)))' and 'calc(NaN * 1s)' should serialize the same in specified values. expected "calc(NaN * 1s)" but got "calc(10s)"
+FAIL 'calc(1s * clamp(0, 10, NaN))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(1s * clamp(0, 10, NaN))' and 'calc(NaN * 1s)' should serialize the same in specified values. expected "calc(NaN * 1s)" but got "calc(1s * clamp(0, 10, NaN))"
+FAIL 'calc(1s * max(0, min(NaN, 10)))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(1s * max(0, min(NaN, 10)))' and 'calc(NaN * 1s)' should serialize the same in specified values. expected "calc(NaN * 1s)" but got "calc(0s)"
+FAIL 'calc(1s * clamp(0, NaN, 10))' as a specified value should serialize as 'calc(NaN * 1s)'. assert_equals: 'calc(1s * clamp(0, NaN, 10))' and 'calc(NaN * 1s)' should serialize the same in specified values. expected "calc(NaN * 1s)" but got "calc(1s * clamp(0, NaN, 10))"
FAIL 'calc(1s * clamp(-Infinity, 0, infinity))' as a specified value should serialize as 'calc(0s)'. assert_equals: 'calc(1s * clamp(-Infinity, 0, infinity))' and 'calc(0s)' should serialize the same in specified values. expected "calc(0s)" but got "calc(1s * clamp(-infinity, 0, infinity))"
FAIL 'calc(1s * clamp(-inFinity, infinity, 10))' as a specified value should serialize as 'calc(10s)'. assert_equals: 'calc(1s * clamp(-inFinity, infinity, 10))' and 'calc(10s)' should serialize the same in specified values. expected "calc(10s)" but got "calc(1s * clamp(-infinity, infinity, 10))"
Modified: trunk/Source/WebCore/ChangeLog (291829 => 291830)
--- trunk/Source/WebCore/ChangeLog 2022-03-24 23:48:48 UTC (rev 291829)
+++ trunk/Source/WebCore/ChangeLog 2022-03-24 23:53:00 UTC (rev 291830)
@@ -1,3 +1,17 @@
+2022-03-24 Nikolaos Mouchtaris <nmouchta...@apple.com>
+
+ Fix serialization of nan, infinity, -infinity for calc()
+ https://bugs.webkit.org/show_bug.cgi?id=238288
+
+ Reviewed by Simon Fraser.
+
+ Update serializing of nan, infinity, -infinity to be in line with step 2 of:
+ https://drafts.csswg.org/css-values/#calc-serialize.
+
+ * css/CSSPrimitiveValue.cpp:
+ (WebCore::CSSPrimitiveValue::formatNumberValue const):
+ (WebCore::CSSPrimitiveValue::formatIntegerValue const):
+
2022-03-24 Patrick Angle <pan...@apple.com>
Web Inspector: Blank inspector in a page with container queries
Modified: trunk/Source/WebCore/css/CSSPrimitiveValue.cpp (291829 => 291830)
--- trunk/Source/WebCore/css/CSSPrimitiveValue.cpp 2022-03-24 23:48:48 UTC (rev 291829)
+++ trunk/Source/WebCore/css/CSSPrimitiveValue.cpp 2022-03-24 23:53:00 UTC (rev 291830)
@@ -1213,17 +1213,29 @@
}
}
+NEVER_INLINE String CSSPrimitiveValue::formatInfiniteOrNanValue(StringView suffix) const
+{
+ if (m_value.num == std::numeric_limits<double>::infinity())
+ return makeString("infinity", suffix.isEmpty() ? "" : " * 1" , suffix);
+ if (m_value.num == -std::numeric_limits<double>::infinity())
+ return makeString("-infinity", suffix.isEmpty() ? "" : " * 1", suffix);
+ if (std::isnan(m_value.num))
+ return makeString(m_value.num, suffix.isEmpty() ? "" : " * 1", suffix);
+ ASSERT_NOT_REACHED();
+ return emptyString();
+}
+
NEVER_INLINE String CSSPrimitiveValue::formatNumberValue(StringView suffix) const
{
+ if (std::isnan(m_value.num) || std::isinf(m_value.num))
+ return formatInfiniteOrNanValue(suffix);
return makeString(FormattedCSSNumber::create(m_value.num), suffix);
}
NEVER_INLINE String CSSPrimitiveValue::formatIntegerValue(StringView suffix) const
{
- if (m_value.num == std::numeric_limits<double>::infinity())
- return makeString("infinity", suffix);
- if (m_value.num == -1 * std::numeric_limits<double>::infinity())
- return makeString("-infinity", suffix);
+ if (std::isnan(m_value.num) || std::isinf(m_value.num))
+ return formatInfiniteOrNanValue(suffix);
return makeString(m_value.num, suffix);
}
Modified: trunk/Source/WebCore/css/CSSPrimitiveValue.h (291829 => 291830)
--- trunk/Source/WebCore/css/CSSPrimitiveValue.h 2022-03-24 23:48:48 UTC (rev 291829)
+++ trunk/Source/WebCore/css/CSSPrimitiveValue.h 2022-03-24 23:53:00 UTC (rev 291830)
@@ -255,6 +255,7 @@
ALWAYS_INLINE String formatNumberForCustomCSSText() const;
NEVER_INLINE String formatNumberValue(StringView) const;
NEVER_INLINE String formatIntegerValue(StringView) const;
+ NEVER_INLINE String formatInfiniteOrNanValue(StringView suffix) const;
static constexpr bool isFontIndependentLength(CSSUnitType);
static constexpr bool isFontRelativeLength(CSSUnitType);
static constexpr bool isResolution(CSSUnitType);