Issue #1826 - Serialize special calc() number values

This commit is contained in:
Basilisk-Dev 2026-05-06 08:15:05 -04:00 • committed by EAZYBLACK
commit 6a0c0925e5
4 changed files with 235 additions and 14 deletions

View file

@ -106,6 +106,44 @@ function parse2dMatrix(transformValue) {
div.remove();
})();
(function testSpecialNumberCalcSpecifiedSerialization() {
const div = appendTestNode();
const cases = [
["calc(NaN)", "calc(NaN)"],
["calc(infinity)", "calc(infinity)"],
["calc(-infinity)", "calc(-infinity)"],
["calc(1 * NaN)", "calc(NaN)"],
["calc(1 * infinity / infinity)", "calc(NaN)"],
["calc(1 * 0 * infinity)", "calc(NaN)"],
["calc(1 * (infinity + -infinity))", "calc(NaN)"],
["calc(1 * (infinity - infinity))", "calc(NaN)"],
["calc(1 * infinity)", "calc(infinity)"],
["calc(1 * -infinity)", "calc(-infinity)"],
["calc(1 * 1/infinity)", "calc(0)"],
["calc(1 * infinity * infinity)", "calc(infinity)"],
["calc(1 * max(INFinity*3, 0))", "calc(infinity)"],
["calc(1 * min(inFInity*4, 0))", "calc(0)"],
["calc(1 * max(nAn*2, 0))", "calc(NaN)"],
["calc(1 * clamp(-INFINITY*20, 0, infiniTY*10))", "calc(0)"],
["calc(1 * max(NaN, min(0,10)))", "calc(NaN)"],
["calc(1 * clamp(NaN, 0, 10))", "calc(NaN)"],
["calc(1 * max(0, min(10, NaN)))", "calc(NaN)"],
["calc(1 * clamp(0, 10, NaN))", "calc(NaN)"],
["calc(1 * max(0, min(NaN, 10)))", "calc(NaN)"],
["calc(1 * clamp(0, NaN, 10))", "calc(NaN)"],
["calc(1 * clamp(-Infinity, 0, infinity))", "calc(0)"],
["calc(1 * clamp(-inFinity, infinity, 10))", "calc(10)"],
];
for (const [input, expected] of cases) {
div.style.setProperty("opacity", input, "");
is(div.style.getPropertyValue("opacity"), expected,
`opacity should serialize ${input} as ${expected}`);
}
div.remove();
})();
</script>
</pre>
</body>