Test the behavior of CanvasRenderingContext2D.drawImage() when called with different numbers of arguments.

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


PASS ctx.drawImage() threw exception TypeError: Not enough arguments.
PASS ctx.drawImage(imageElement) threw exception TypeError: Not enough arguments.
PASS ctx.drawImage(imageElement, 0) threw exception TypeError: Not enough arguments.
PASS ctx.drawImage(imageElement, 0, 0) is undefined
PASS ctx.drawImage(imageElement, 0, 0, 0) threw exception TypeError: Type error.
PASS ctx.drawImage(imageElement, 0, 0, 0, 0) is undefined
PASS ctx.drawImage(imageElement, 0, 0, 0, 0, 0) threw exception TypeError: Type error.
PASS ctx.drawImage(imageElement, 0, 0, 0, 0, 0, 0) threw exception TypeError: Type error.
PASS ctx.drawImage(imageElement, 0, 0, 0, 0, 0, 0, 0) threw exception TypeError: Type error.
PASS ctx.drawImage(imageElement, 0, 0, 0, 0, 0, 0, 0, 0) is undefined
PASS ctx.drawImage(imageElement, 0, 0, 0, 0, 0, 0, 0, 0, 0) is undefined
PASS ctx.drawImage(imageElement, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) is undefined
PASS ctx.drawImage(canvasElement) threw exception TypeError: Not enough arguments.
PASS ctx.drawImage(canvasElement, 0) threw exception TypeError: Not enough arguments.
PASS ctx.drawImage(canvasElement, 0, 0) is undefined
PASS ctx.drawImage(canvasElement, 0, 0, 0) threw exception TypeError: Type error.
PASS ctx.drawImage(canvasElement, 0, 0, 0, 0) is undefined
PASS ctx.drawImage(canvasElement, 0, 0, 0, 0, 0) threw exception TypeError: Type error.
PASS ctx.drawImage(canvasElement, 0, 0, 0, 0, 0, 0) threw exception TypeError: Type error.
PASS ctx.drawImage(canvasElement, 0, 0, 0, 0, 0, 0, 0) threw exception TypeError: Type error.
PASS ctx.drawImage(canvasElement, 0, 0, 0, 0, 0, 0, 0, 0) threw exception IndexSizeError: The index is not in the allowed range..
PASS ctx.drawImage(canvasElement, 0, 0, 0, 0, 0, 0, 0, 0, 0) threw exception IndexSizeError: The index is not in the allowed range..
PASS ctx.drawImage(canvasElement, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) threw exception IndexSizeError: The index is not in the allowed range..
PASS successfullyParsed is true

TEST COMPLETE

