Test Path2D as argument for stroke. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". Simple test of Path2D as argumeny for stroke(). PASS areaColor(imageData.data, {r:0,g:255,b:0,a:255}) is true PASS areaColor(imageData.data, {r:0,g:255,b:0,a:255}) is true Transform context and apply stroke(). Context path should be ignored. PASS areaColor(imageData.data, {r:0,g:255,b:0,a:255}) is true PASS areaColor(imageData.data, {r:0,g:255,b:0,a:255}) is true Path2D should not affect context path. PASS areaColor(imageData.data, {r:0,g:255,b:0,a:255}) is true PASS areaColor(imageData.data, {r:0,g:255,b:0,a:255}) is true PASS areaColor(imageData.data, {r:0,g:255,b:0,a:255}) is true PASS areaColor(imageData.data, {r:0,g:255,b:0,a:255}) is true PASS ctx.stroke(0) threw exception TypeError: Argument 1 ('path') to CanvasRenderingContext2D.stroke must be an instance of Path2D. PASS ctx.stroke(null) threw exception TypeError: Argument 1 ('path') to CanvasRenderingContext2D.stroke must be an instance of Path2D. PASS ctx.stroke('path2d') threw exception TypeError: Argument 1 ('path') to CanvasRenderingContext2D.stroke must be an instance of Path2D. PASS ctx.stroke(undefined) threw exception TypeError: Argument 1 ('path') to CanvasRenderingContext2D.stroke must be an instance of Path2D. PASS ctx.stroke(Number.MAX_VALUE) threw exception TypeError: Argument 1 ('path') to CanvasRenderingContext2D.stroke must be an instance of Path2D. PASS ctx.stroke(function() {}) threw exception TypeError: Argument 1 ('path') to CanvasRenderingContext2D.stroke must be an instance of Path2D. PASS ctx.stroke(false) threw exception TypeError: Argument 1 ('path') to CanvasRenderingContext2D.stroke must be an instance of Path2D. PASS ctx.stroke(new Date()) threw exception TypeError: Argument 1 ('path') to CanvasRenderingContext2D.stroke must be an instance of Path2D. PASS successfullyParsed is true TEST COMPLETE