tree 46ec10563b46b65c05414d273905060da1f791fe
parent 7c13aadc25f45b5075c9c3ef39241a27c86a25eb
author Tab Atkins Jr <jackalmage@gmail.com> 1583544681 -0800
committer GitHub <noreply@github.com> 1583544681 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJeYvlpCRBK7hj4Ov3rIwAAdHIIAAnlofOcV2Lirs2uKt9GQBUH
 rDFnvXk1laYnE3B7KDEnrIcAx8YCuxBIevIEaxT5q3MODZLV4jqvlxs1JaU/0q9C
 i5cE1/miEj+v6f5qxxSxPHN2iAGOuwj971/EfugDwwDB+E5mqCn+dZdHigb2XOL9
 VQU8q+9YkYSgth+FFP2hjpTz9nO0i8DpUZ1vEHwHicXYUgug7+KikYgB7fdgiRty
 YvF/hL6PP2zIZ0bV8Y58q9UFZT1a1tHWKxULBGCZvggpdXjLCr7L5Vml818OIMEx
 pHGDrUhOKi7p387++sMRGT5QrSLi3aUGQawFdHogG8CzYfQ1l7HN06EnTUCsXDk=
 =ne4i
 -----END PGP SIGNATURE-----
 

Cleanup min max (#22127)

* Use animation-play-state:paused rather than enormous durations. Add a red square to make failure obvious.

* Add a red square for obvious failure.

* Add a red square for obvious failure.

* Don't depend on the serialization of computed units being a particular thing.

* Math functions are aggressively reduced away if possible.

* Simplify with test_math_used().

* Add the ability, which other test functions have, to tack on an extra message to the built-in message.

* Simplify with test_math_used().

* Use 'margin-left' instead of 'left', since the latter's resolved value is the computed value if the element isn't positioned!

* Simplify with test_math_used().

* Restructure test_math_used() to accept a type specifier, and automatically choose a good property/base value/etc for that type. Also add test_math_computed, with different props where appropriate.

* Switch the inf/zero/nan functions over to just using the 'number' type so they're more obvious.

* Improve the documentation for numeric-testcommon.js.

* Make minmax-length-percent-serialize match the spec for serialization of computed values.

* Make minmax-length-serialize match the spec for serialization of computed values.

* Switch minmax-number-computed over to test_math_used().

* Fix errors in test_math_computed(), and add test_math_specified().

* Extract the base-selecting code, since it's shared by all the functions.

* Fix minmax-number-serialize to match spec for serialization.

* Fix minmax-percentage-computed to not rely on serialization.

* Well, the generic functions dont' let me test exact serialization, so start writing some that do.

* Add new serializ-testcommon helper, and rewrite all the serialization tests to use it.

* Remove the 'base' value from numeric-testcommon, as empty string works consistently across everything.

* [css-values] Final fixes/conversion of min()/max() tests to the newer templates and spec.