This test checks createConicGradient with infinite values

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS ctx.createConicGradient(0, 100, NaN) threw exception TypeError: The provided value is non-finite.
PASS ctx.createConicGradient(0, 100, Infinity) threw exception TypeError: The provided value is non-finite.
PASS ctx.createConicGradient(0, 100, -Infinity) threw exception TypeError: The provided value is non-finite.
PASS ctx.createConicGradient(0, NaN, 100) threw exception TypeError: The provided value is non-finite.
PASS ctx.createConicGradient(0, Infinity, 100) threw exception TypeError: The provided value is non-finite.
PASS ctx.createConicGradient(0, -Infinity, 100) threw exception TypeError: The provided value is non-finite.
PASS ctx.createConicGradient(NaN, 100, 100) threw exception TypeError: The provided value is non-finite.
PASS ctx.createConicGradient(Infinity, 100, 100) threw exception TypeError: The provided value is non-finite.
PASS ctx.createConicGradient(-Infinity, 100, 100) threw exception TypeError: The provided value is non-finite.
PASS successfullyParsed is true

TEST COMPLETE

