The tests for FlashCanvas were performed in the following environment. Two results of FlashCanvas, "normal" and "strict", are shown in the table below. Whereas "normal" used a flashcanvas.js included in the distribution package, "strict" used an experimental version of flashcanvas.js. This experimental version utilizes an Object.defineProperty introduced in IE8, and can check the arguments more strictly. But the use of Object.defineProperty considerably slows down the emulation speed of FlashCanvas. For this reason, that feature is disabled in the normal build. If you'd like to try the "strict" version of flashcanvas.js, you can download it from here.

Test FlashCanvas Pro 1.5 (normal) FlashCanvas Pro 1.5 (strict) IE9 Platform Preview 7 (Windows 7) Firefox 3.6.13 (Windows XP) Opera 11.01 (Windows XP) Safari 5.0.3 (Windows XP) Chrome 9.0.597.84 (Windows XP)
# fallback.basic
  • Failed assertion canvas.childNodes.length == 1 (got 2[number], expected 1[number])
  • Failed assertion canvas.childNodes.length == 1 (got 2[number], expected 1[number])
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# fallback.multiple
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# fallback.nested
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# type.name
  • Failed assertion Object.prototype.toString.call(canvas) === '[object HTMLCanvasElement]' (got [object Object][string], expected [object HTMLCanvasElement][string])
  • Failed assertion Object.prototype.toString.call(canvas) === '[object HTMLCanvasElement]' (got [object Object][string], expected [object HTMLCanvasElement][string])
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# type.exists
  • Failed assertion: window.HTMLCanvasElement
  • Failed assertion: window.HTMLCanvasElement
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# type.delete
  • Aborted with exception: Object doesn't support this action
  • Aborted with exception: Object doesn't support this action
  • Failed assertion: window.HTMLCanvasElement
  • Passed
  • Passed
  • Passed
  • Passed
# type.prototype
  • Aborted with exception: 'window.HTMLCanvasElement.prototype' is null or not an object
  • Aborted with exception: 'window.HTMLCanvasElement.prototype' is null or not an object
  • Passed
  • Failed assertion window.HTMLCanvasElement.prototype.getContext === undefined (got function getContext() { [native code] }[function], expected [undefined])
  • Passed
  • Failed assertion: window.HTMLCanvasElement.prototype
  • Failed assertion: window.HTMLCanvasElement.prototype
  • Aborted with exception: Result of expression 'window.HTMLCanvasElement.prototype' [undefined] is not an object.
  • Failed assertion: window.HTMLCanvasElement.prototype
  • Failed assertion: window.HTMLCanvasElement.prototype
  • Aborted with exception: Cannot set property 'getContext' of null
# type.replace
  • Aborted with exception: 'window.HTMLCanvasElement.prototype' is null or not an object
  • Aborted with exception: 'window.HTMLCanvasElement.prototype' is null or not an object
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# type.extend
  • Aborted with exception: 'window.HTMLCanvasElement.prototype' is null or not an object
  • Aborted with exception: 'window.HTMLCanvasElement.prototype' is null or not an object
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.get
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.set
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.idl.set.zero
  • Passed
  • Passed
  • Passed
  • Passed
  • Failed assertion canvas.width === 0 (got 300[number], expected 0[number])
  • Failed assertion canvas.height === 0 (got 150[number], expected 0[number])
  • Passed
  • Passed
# size.attributes.idl
  • Failed assertion canvas.width === 150 (got 1[number], expected 150[number])
  • Failed assertion canvas.height === 150 (got 1[number], expected 150[number])
  • Failed assertion canvas.width === 200 (got 300[number], expected 200[number])
  • Failed assertion canvas.height === 200 (got 150[number], expected 200[number])
  • Failed assertion canvas.width === 0 (got 400[number], expected 0[number])
  • Failed assertion canvas.height === 0 (got 150[number], expected 0[number])
  • Failed assertion canvas.width === 150 (got 1[number], expected 150[number])
  • Failed assertion canvas.height === 150 (got 1[number], expected 150[number])
  • Failed assertion canvas.width === 200 (got 300[number], expected 200[number])
  • Failed assertion canvas.height === 200 (got 150[number], expected 200[number])
  • Failed assertion canvas.width === 0 (got 400[number], expected 0[number])
  • Failed assertion canvas.height === 0 (got 150[number], expected 0[number])
  • Passed
  • Passed
  • Failed assertion canvas.width === 200 (got 300[number], expected 200[number])
  • Failed assertion canvas.height === 200 (got 150[number], expected 200[number])
  • Failed assertion canvas.width === 0 (got 300[number], expected 0[number])
  • Failed assertion canvas.height === 0 (got 150[number], expected 0[number])
  • Passed
  • Passed
# size.attributes.default
  • Failed assertion: !canvas.hasAttribute('width')
  • Failed assertion: !canvas.hasAttribute('height')
  • %
  • Failed assertion: !canvas.hasAttribute('width')
  • Failed assertion: !canvas.hasAttribute('height')
  • %
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.reflect.setidl
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.reflect.setidlzero
  • Passed
  • Passed
  • Passed
  • Passed
  • Failed assertion canvas.getAttribute('width') === '0' (got 300[string], expected 0[string])
  • Failed assertion canvas.getAttribute('height') === '0' (got 150[string], expected 0[string])
  • Failed assertion canvas.width === 0 (got 300[number], expected 0[number])
  • Failed assertion canvas.height === 0 (got 150[number], expected 0[number])
  • Passed
  • Passed
# size.attributes.reflect.setcontent
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.removed
  • Failed assertion canvas.width === 300 (got [undefined], expected 300[number])
  • Failed assertion canvas.width === 300 (got [undefined], expected 300[number])
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.parse.zero
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "0px" (got auto[string], expected 0px[string])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "0px" (got auto[string], expected 0px[string])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "0px" (got auto[string], expected 0px[string])
  • Passed
# size.attributes.parse.empty
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.parse.onlyspace
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.parse.space
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.parse.whitespace
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.parse.plus
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.parse.minus
  • Passed
  • Passed
  • Failed assertion canvas.width === 300 (got -100[number], expected 300[number])
  • Failed assertion canvas.height === 150 (got -100[number], expected 150[number])
  • Failed assertion canvas.width === 300 (got 0[number], expected 300[number])
  • Failed assertion canvas.height === 150 (got 0[number], expected 150[number])
  • Passed
  • Failed assertion canvas.width === 300 (got -100[number], expected 300[number])
  • Failed assertion canvas.height === 150 (got -100[number], expected 150[number])
  • Passed
# size.attributes.parse.octal
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.parse.hex
  • Passed
  • Passed
  • Passed
  • Failed assertion canvas.width === 0 (got 100[number], expected 0[number])
  • Failed assertion canvas.height === 0 (got 100[number], expected 0[number])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "0px" (got auto[string], expected 0px[string])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "0px" (got auto[string], expected 0px[string])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "0px" (got auto[string], expected 0px[string])
  • Passed
# size.attributes.parse.exp
  • Passed
  • Passed
  • Failed assertion canvas.width === 100 (got 1000[number], expected 100[number])
  • Failed assertion canvas.height === 100 (got 1000[number], expected 100[number])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got 1000px[string], expected 100px[string])
  • Failed assertion canvas.width === 100 (got 300[number], expected 100[number])
  • Failed assertion canvas.height === 100 (got 150[number], expected 100[number])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.parse.decimal
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.parse.percent
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got 100%[string], expected 100px[string])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got 100%[string], expected 100px[string])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.parse.em
  • Passed
  • Passed
  • Passed
  • Failed assertion canvas.width === 100 (got 300[number], expected 100[number])
  • Failed assertion canvas.height === 100 (got 150[number], expected 100[number])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.parse.junk
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.parse.trailingjunk
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.setAttribute.zero
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "0px" (got auto[string], expected 0px[string])
  • Failed assertion canvas.width === 0 (got 300[number], expected 0[number])
  • Failed assertion canvas.height === 0 (got 150[number], expected 0[number])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "0px" (got 300px[string], expected 0px[string])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "0px" (got auto[string], expected 0px[string])
  • Passed
# size.attributes.setAttribute.empty
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.setAttribute.onlyspace
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.setAttribute.space
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.setAttribute.whitespace
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.setAttribute.plus
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.setAttribute.minus
  • Passed
  • Passed
  • Failed assertion canvas.width === 300 (got -100[number], expected 300[number])
  • Failed assertion canvas.height === 150 (got -100[number], expected 150[number])
  • Failed assertion canvas.width === 300 (got 0[number], expected 300[number])
  • Failed assertion canvas.height === 150 (got 0[number], expected 150[number])
  • Passed
  • Failed assertion canvas.width === 300 (got -100[number], expected 300[number])
  • Failed assertion canvas.height === 150 (got -100[number], expected 150[number])
  • Passed
# size.attributes.setAttribute.octal
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.setAttribute.hex
  • Passed
  • Passed
  • Passed
  • Failed assertion canvas.width === 0 (got 100[number], expected 0[number])
  • Failed assertion canvas.height === 0 (got 100[number], expected 0[number])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "0px" (got auto[string], expected 0px[string])
  • Failed assertion canvas.width === 0 (got 300[number], expected 0[number])
  • Failed assertion canvas.height === 0 (got 150[number], expected 0[number])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "0px" (got 300px[string], expected 0px[string])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "0px" (got auto[string], expected 0px[string])
  • Passed
# size.attributes.setAttribute.exp
  • Passed
  • Passed
  • Failed assertion canvas.width === 100 (got 1000[number], expected 100[number])
  • Failed assertion canvas.height === 100 (got 1000[number], expected 100[number])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got 1000px[string], expected 100px[string])
  • Failed assertion canvas.width === 100 (got 300[number], expected 100[number])
  • Failed assertion canvas.height === 100 (got 150[number], expected 100[number])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.setAttribute.decimal
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.setAttribute.percent
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got 100%[string], expected 100px[string])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Failed assertion canvas.width === 100 (got 300[number], expected 100[number])
  • Failed assertion canvas.height === 100 (got 150[number], expected 100[number])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got 300px[string], expected 100px[string])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.setAttribute.em
  • Passed
  • Passed
  • Passed
  • Failed assertion canvas.width === 100 (got 300[number], expected 100[number])
  • Failed assertion canvas.height === 100 (got 150[number], expected 100[number])
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.setAttribute.junk
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# size.attributes.setAttribute.trailingjunk
  • Passed
  • Passed
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
  • Failed assertion window.getComputedStyle(canvas, null).getPropertyValue("width") == "100px" (got auto[string], expected 100px[string])
  • Passed
# size.attributes.style
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# initial.colour
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# initial.reset.different
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# initial.reset.same
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# initial.reset.path
  • Passed
  • Passed
  • Failed assertion: got pixel [255,0,0,255] at (20,20), expected [0,0,0,0]
  • Passed
  • Passed
  • Failed assertion: got pixel [255,0,0,255] at (20,20), expected [0,0,0,0]
  • Passed
# initial.reset.clip
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# initial.reset.transform
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# initial.reset.gradient
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# initial.reset.pattern
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# context.emptystring
  • Passed
  • Passed
  • Passed
  • Aborted with exception: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMHTMLCanvasElement.getContext]
  • Passed
  • Failed assertion canvas.getContext("") === null (got [undefined], expected [object])
  • Passed
# context.unrecognised.badname
  • Passed
  • Passed
  • Passed
  • Aborted with exception: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMHTMLCanvasElement.getContext]
  • Passed
  • Failed assertion canvas.getContext('This is not an implemented context in any real browser') === null (got [undefined], expected [object])
  • Passed
# context.unrecognised.badsuffix
  • Passed
  • Passed
  • Passed
  • Aborted with exception: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMHTMLCanvasElement.getContext]
  • Passed
  • Failed assertion canvas.getContext("2d#") === null (got [undefined], expected [object])
  • Passed
# context.unrecognised.nullsuffix
  • Passed
  • Passed
  • Failed assertion canvas.getContext("2d\0") === null (got [object CanvasRenderingContext2D][object], expected [object])
  • Aborted with exception: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMHTMLCanvasElement.getContext]
  • Failed assertion canvas.getContext("2d\0") === null (got [object CanvasRenderingContext2D][object], expected [object])
  • Failed assertion canvas.getContext("2d\0") === null (got [undefined], expected [object])
  • Passed
# context.unrecognised.unicode
  • Passed
  • Passed
  • Passed
  • Aborted with exception: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMHTMLCanvasElement.getContext]
  • Passed
  • Failed assertion canvas.getContext("2\uFF44") === null (got [undefined], expected [object])
  • Passed
# context.casesensitive
  • Passed
  • Passed
  • Passed
  • Aborted with exception: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMHTMLCanvasElement.getContext]
  • Passed
  • Failed assertion canvas.getContext('2D') === null (got [undefined], expected [object])
  • Passed
# toDataURL.default
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# toDataURL.png
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# toDataURL.bogustype
  • Passed
  • Passed
  • Passed
  • Aborted with exception: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHTMLCanvasElement.toDataURL]
  • Passed
  • Passed
  • Passed
# toDataURL.unrecognised
  • Passed
  • Passed
  • Passed
  • Aborted with exception: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHTMLCanvasElement.toDataURL]
  • Passed
  • Passed
  • Passed
# toDataURL.lowercase.ascii
  • Passed
  • Passed
  • Passed
  • Aborted with exception: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHTMLCanvasElement.toDataURL]
  • Failed assertion data matches /^data:image\/jpeg[;,]/ (got data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAyCAYAAACqNX6+AAAAKklEQVR42u3BAQ0AAADCoPdPbQ43oAAAAAAAAAAAAAAAAAAAAAAAAAD4NE5SAAG30DXzAAAAAElFTkSuQmCC[string])
  • Failed assertion data matches /^data:image\/jpeg[;,]/ (got data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAyCAYAAACqNX6+AAAAxUlEQVR4Ae3TwREAMAiEwCT996yTLvaBFTDg3Zk5nWPgOSiRfAMFwf6gIAXBDGA4LaQgmAEMp4UUBDOA4bSQgmAGMJwWUhDMAIbTQgqCGcBwWkhBMAMYTgspCGYAw2khBcEMYDgtpCCYAQynhRQEM4DhtJCCYAYwnBZSEMwAhtNCCoIZwHBaSEEwAxhOCykIZgDDaSEFwQxgOC2kIJgBDKeFFAQzgOG0kIJgBjCcFlIQzACG00IKghnAcFpIQTADGE4LwYIsrf0DYZa14HMAAAAASUVORK5CYII=[string])
  • Passed
# toDataURL.lowercase.unicode
  • Passed
  • Passed
  • Passed
  • Aborted with exception: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHTMLCanvasElement.toDataURL]
  • Passed
  • Passed
  • Passed
# toDataURL.arguments.1
  • Passed
  • Passed
  • Passed
  • Aborted with exception: Security error
  • Passed
  • Passed
  • Passed
# toDataURL.arguments.2
  • Passed
  • Passed
  • Passed
  • Aborted with exception: Security error
  • Passed
  • Passed
  • Passed
# toDataURL.arguments.3
  • Passed
  • Passed
  • Passed
  • Aborted with exception: Security error
  • Passed
  • Passed
  • Passed
# toDataURL.nocontext
  • Aborted with exception: Object doesn't support this property or method
  • Aborted with exception: Object doesn't support this property or method
  • Passed
  • Passed
  • Passed
  • Passed
  • Passed
# toDataURL.zerosize
  • Passed
  • Passed
  • Passed
  • Failed assertion data === 'data:,' (got data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAAAxUlEQVR4nO3BMQEAAADCoPVPbQhfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA1v9QAATX68/0AAAAASUVORK5CYII=[string], expected data:,[string])
  • Failed assertion data === 'data:,' (got data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAAAxUlEQVR42u3BMQEAAADCoPVPbQhfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA1v9QAAS9p4J4AAAAASUVORK5CYII=[string], expected data:,[string])
  • Passed
  • Passed
# toDataURL.png.primarycolours
  • Passed
  • Passed
  • Passed
  • Passed
    • Passed
    • Passed
    # toDataURL.png.complexcolours
    • Passed
    • Passed
    • Passed
    • Passed
      • Passed
      • Passed
      # toDataURL.jpeg.primarycolours
      • Passed
      • Passed
      • Passed
      • Passed
        • Passed
        • Passed
        # toDataURL.jpeg.alpha
        • Passed
        • Passed
        • Passed
        • Failed assertion: got pixel [129,255,129,255] at (50,25), expected [63,127,63,255] +/- 8
          • Failed assertion: got pixel [129,255,129,255] at (50,25), expected [63,127,63,255] +/- 8
          • Passed
          # toDataURL.jpeg.quality.basic
          • Passed
          • Passed
          • Failed assertion: got pixel [0,11,255,255] at (75,25), expected [0,0,255,255] +/- 8
          • Aborted with exception: Security error
            • Failed assertion: data_hi.length > data_lo.length
            • Passed
            # toDataURL.jpeg.quality.notnumber
            • Passed
            • Passed
            • Failed assertion canvas.toDataURL('image/jpeg', '0.01') === data (got data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAP//////////////////////////////////////////////////////////////////////////////////////2wBDAf//////////////////////////////////////////////////////////////////////////////////////wAARCAAyAGQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwBnHv8An/8AWo49/wA//rUUVoIOPf8AP/61HHv+f/1qKKADj3/P/wCtRx7/AJ//AFqKKADj3/P/AOtRx7/n/wDWoooAOPf8/wD61HHv+f8A9aiigA49/wA//rUce/5//WoooAOPf8//AK1FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/9k=[string], expected data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAyAGQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD5/wDtXg7/AKAOvf8Ag5i/+RqPtXg7/oA69/4OYv8A5GrBor+w/qsO7/8AApf5nyf1Kn3l/wCBS/zN77V4O/6AOvf+DmL/AORqPtXg7/oA69/4OYv/AJGrBoo+qw7v/wACl/mH1Kn3l/4FL/M3vtXg7/oA69/4OYv/AJGo+1eDv+gDr3/g5i/+RqwaKPqsO7/8Cl/mH1Kn3l/4FL/M3vtXg7/oA69/4OYv/kaj7V4O/wCgDr3/AIOYv/kasGij6rDu/wDwKX+YfUqfeX/gUv8AM3vtXg7/AKAOvf8Ag5i/+RqPtXg7/oA69/4OYv8A5GrBoo+qw7v/AMCl/mH1Kn3l/wCBS/zN77V4O/6AOvf+DmL/AORqPtXg7/oA69/4OYv/AJGrBoo+qw7v/wACl/mH1Kn3l/4FL/M3ftXg7/oBa9/4OYv/AJGorCopfVYd3/4FL/MPqdPvL/wKX+YUUUV0nUFFFFABRRRQAUUUUAFFFFABRRRQAUUUUmAUUUUwCiiigAooooAKKKKACiiigAooooAKKKKTAKKKKYBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFJgf/9k=[string])
            • Aborted with exception: Security error
            • Failed assertion canvas.toDataURL('image/jpeg', null) === data (got data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wCEAAH//wGwAf8B//8BAf8BAQEBAQGwAQH/AQEBTP///gEcAUwBAf//HgGwAQGAAVD///+AAf4eAQEB//8BAf8BHgEBAQGw/wEBAQEBGv/kAQEBAbD/AQEBAQEB/+QBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCxAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6AQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIADIAZAMBIgACEQEDEQH/2gAMAwEAAhEDEQA/AP5fP+MPf+rlf/Er/hf/APQY0f8AGHv/AFcr/wCJX/C//wCgxr5qor/vO/r/AJLrjb/6IT+Ivn/50nxF/wDopPpX/jD3/q5X/wASv+F//wBBjR/xh7/1cr/4lf8AC/8A+gxr5qoo/r/kuuNv/ohD5/8AnSfEX/6KT6V/4w9/6uV/8Sv+F/8A9BjR/wAYe/8AVyv/AIlf8L//AKDGvmqij+v+S642/wDohD5/+dJ8Rf8A6KT6V/4w9/6uV/8AEr/hf/8AQY0f8Ye/9XK/+JX/AAv/APoMa+aqKP6/5Lrjb/6IQ+f/AJ0nxF/+ik+lf+MPf+rlf/Er/hf/APQY0f8AGHv/AFcr/wCJX/C//wCgxr5qoo/r/kuuNv8A6IQ+f/nSfEX/AOik+lf+MPf+rlf/ABK/4X//AEGNH/GHv/Vyv/iV/wAL/wD6DGvmqij+v+S642/+iEPn/wCdJ8Rf/opPpX/jD3/q5X/xK/4X/wD0GNH/ABh7/wBXK/8AiV/wv/8AoMa+aqKP6/5Lrjb/AOiEPn/50nxF/wDopCiiivqj7UKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAP/Z[string], expected data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wCEAAUDAwUHDA8SBAQEBggREhEEBAUHDBEVEQQFBwkPGhgTBQcLERQhHxcHCxETGB8iHA8TFxofJCQeFhwdHSIeHx4BBQUHDh4eHh4FBggUHh4eHgcIER4eHh4eDhQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCxAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6AQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIADIAZAMBIgACEQEDEQH/2gAMAwEAAhEDEQA/APn77d4Y/wCgF4l/8D4v/kOj7d4Y/wCgF4l/8D4v/kOsKiv7D9hH+ar/AOBS/wAz5P6tH+av/wCBS/zN37d4Y/6AXiX/AMD4v/kOj7d4Y/6AXiX/AMD4v/kOsKij2Ef5qv8A4FL/ADD6tH+av/4FL/M3ft3hj/oBeJf/AAPi/wDkOj7d4Y/6AXiX/wAD4v8A5DrCoo9hH+ar/wCBS/zD6tH+av8A+BS/zN37d4Y/6AXiX/wPi/8AkOj7d4Y/6AXiX/wPi/8AkOsKij2Ef5qv/gUv8w+rR/mr/wDgUv8AM3ft3hj/AKAXiX/wPi/+Q6Pt3hj/AKAXiX/wPi/+Q6wqKPYR/mq/+BS/zD6tH+av/wCBS/zN37d4Y/6AXiX/AMD4v/kOj7d4Y/6AXiX/AMD4v/kOsKij2Ef5qv8A4FL/ADD6tH+av/4FL/M3ft3hj/oBeJf/AAPi/wDkOj7d4Y/6AXiX/wAD4v8A5DrCoo9hH+ar/wCBS/zD6tH+av8A+BS/zCiiiug6gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAA/9k=[string])
            • Failed assertion canvas.toDataURL('image/jpeg', true) === data (got data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCxAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6AQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIADIAZAMBIgACEQEDEQH/2gAMAwEAAhEDEQA/AP5fP+Ep/Y9/6IV+0r/4lf8AC/8A+gxo/wCEp/Y9/wCiFftK/wDiV/wv/wDoMa+aqK/7zv8AU7Kf+gvin/xOuNv/AKIT+Iv9Qcj/AOg7jX/xZPiL/wDRSfSv/CU/se/9EK/aV/8AEr/hf/8AQY0f8JT+x7/0Qr9pX/xK/wCF/wD9BjXzVRR/qdlP/QXxT/4nXG3/ANEIf6g5H/0Hca/+LJ8Rf/opPpX/AISn9j3/AKIV+0r/AOJX/C//AOgxo/4Sn9j3/ohX7Sv/AIlf8L//AKDGvmqij/U7Kf8AoL4p/wDE642/+iEP9Qcj/wCg7jX/AMWT4i//AEUn0r/wlP7Hv/RCv2lf/Er/AIX/AP0GNH/CU/se/wDRCv2lf/Er/hf/APQY181UUf6nZT/0F8U/+J1xt/8ARCH+oOR/9B3Gv/iyfEX/AOik+lf+Ep/Y9/6IV+0r/wCJX/C//wCgxo/4Sn9j3/ohX7Sv/iV/wv8A/oMa+aqKP9Tsp/6C+Kf/ABOuNv8A6IQ/1ByP/oO41/8AFk+Iv/0Un0r/AMJT+x7/ANEK/aV/8Sv+F/8A9BjR/wAJT+x7/wBEK/aV/wDEr/hf/wDQY181UUf6nZT/ANBfFP8A4nXG3/0Qh/qDkf8A0Hca/wDiyfEX/wCik+lf+Ep/Y9/6IV+0r/4lf8L/AP6DGj/hKf2Pf+iFftK/+JX/AAv/APoMa+aqKP8AU7Kf+gvin/xOuNv/AKIQ/wBQcj/6DuNf/Fk+Iv8A9FIUUUV9UfahRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAD/2Q==[string], expected data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wCEAAUDAwUHDA8SBAQEBggREhEEBAUHDBEVEQQFBwkPGhgTBQcLERQhHxcHCxETGB8iHA8TFxofJCQeFhwdHSIeHx4BBQUHDh4eHh4FBggUHh4eHgcIER4eHh4eDhQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCxAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6AQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIADIAZAMBIgACEQEDEQH/2gAMAwEAAhEDEQA/APn77d4Y/wCgF4l/8D4v/kOj7d4Y/wCgF4l/8D4v/kOsKiv7D9hH+ar/AOBS/wAz5P6tH+av/wCBS/zN37d4Y/6AXiX/AMD4v/kOj7d4Y/6AXiX/AMD4v/kOsKij2Ef5qv8A4FL/ADD6tH+av/4FL/M3ft3hj/oBeJf/AAPi/wDkOj7d4Y/6AXiX/wAD4v8A5DrCoo9hH+ar/wCBS/zD6tH+av8A+BS/zN37d4Y/6AXiX/wPi/8AkOj7d4Y/6AXiX/wPi/8AkOsKij2Ef5qv/gUv8w+rR/mr/wDgUv8AM3ft3hj/AKAXiX/wPi/+Q6Pt3hj/AKAXiX/wPi/+Q6wqKPYR/mq/+BS/zD6tH+av/wCBS/zN37d4Y/6AXiX/AMD4v/kOj7d4Y/6AXiX/AMD4v/kOsKij2Ef5qv8A4FL/ADD6tH+av/4FL/M3ft3hj/oBeJf/AAPi/wDkOj7d4Y/6AXiX/wAD4v8A5DrCoo9hH+ar/wCBS/zD6tH+av8A+BS/zCiiiug6gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAA/9k=[string])
            • Failed assertion canvas.toDataURL('image/jpeg', '0.01') === data (got data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wCEAAH//wGwAf8B//8BAf8BAQEBAQGwAQH/AQEBTP///gEcAUwBAf//HgGwAQGAAVD///+AAf4eAQEB//8BAf8BHgEBAQGw/wEBAQEBGv/kAQEBAbD/AQEBAQEB/+QBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCxAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6AQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIADIAZAMBIgACEQEDEQH/2gAMAwEAAhEDEQA/AP5fP+MPf+rlf/Er/hf/APQY0f8AGHv/AFcr/wCJX/C//wCgxr5qor/vO/r/AJLrjb/6IT+Ivn/50nxF/wDopPpX/jD3/q5X/wASv+F//wBBjR/xh7/1cr/4lf8AC/8A+gxr5qoo/r/kuuNv/ohD5/8AnSfEX/6KT6V/4w9/6uV/8Sv+F/8A9BjR/wAYe/8AVyv/AIlf8L//AKDGvmqij+v+S642/wDohD5/+dJ8Rf8A6KT6V/4w9/6uV/8AEr/hf/8AQY0f8Ye/9XK/+JX/AAv/APoMa+aqKP6/5Lrjb/6IQ+f/AJ0nxF/+ik+lf+MPf+rlf/Er/hf/APQY0f8AGHv/AFcr/wCJX/C//wCgxr5qoo/r/kuuNv8A6IQ+f/nSfEX/AOik+lf+MPf+rlf/ABK/4X//AEGNH/GHv/Vyv/iV/wAL/wD6DGvmqij+v+S642/+iEPn/wCdJ8Rf/opPpX/jD3/q5X/xK/4X/wD0GNH/ABh7/wBXK/8AiV/wv/8AoMa+aqKP6/5Lrjb/AOiEPn/50nxF/wDopCiiivqj7UKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAP/Z[string], expected data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wCEAAUDAwUHDA8SBAQEBggREhEEBAUHDBEVEQQFBwkPGhgTBQcLERQhHxcHCxETGB8iHA8TFxofJCQeFhwdHSIeHx4BBQUHDh4eHh4FBggUHh4eHgcIER4eHh4eDhQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCxAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6AQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIADIAZAMBIgACEQEDEQH/2gAMAwEAAhEDEQA/APn77d4Y/wCgF4l/8D4v/kOj7d4Y/wCgF4l/8D4v/kOsKiv7D9hH+ar/AOBS/wAz5P6tH+av/wCBS/zN37d4Y/6AXiX/AMD4v/kOj7d4Y/6AXiX/AMD4v/kOsKij2Ef5qv8A4FL/ADD6tH+av/4FL/M3ft3hj/oBeJf/AAPi/wDkOj7d4Y/6AXiX/wAD4v8A5DrCoo9hH+ar/wCBS/zD6tH+av8A+BS/zN37d4Y/6AXiX/wPi/8AkOj7d4Y/6AXiX/wPi/8AkOsKij2Ef5qv/gUv8w+rR/mr/wDgUv8AM3ft3hj/AKAXiX/wPi/+Q6Pt3hj/AKAXiX/wPi/+Q6wqKPYR/mq/+BS/zD6tH+av/wCBS/zN37d4Y/6AXiX/AMD4v/kOj7d4Y/6AXiX/AMD4v/kOsKij2Ef5qv8A4FL/ADD6tH+av/4FL/M3ft3hj/oBeJf/AAPi/wDkOj7d4Y/6AXiX/wAD4v8A5DrCoo9hH+ar/wCBS/zD6tH+av8A+BS/zCiiiug6gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAA/9k=[string])
            • Passed
            • Passed
            # toDataURL.jpeg.quality.outsiderange
            • Passed
            • Passed
            • Passed
            • Aborted with exception: Security error
            • Failed assertion: canvas.toDataURL('image/jpeg', 0).length <= canvas.toDataURL('image/jpeg', 0.1).length
            • Passed
            • Passed
            # security.drawImage.image
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Passed
            • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            # security.drawImage.canvas
            • Aborted with exception: Object doesn't support this property or method
            • Aborted with exception: Object doesn't support this property or method
            • Passed
            • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            # security.pattern.create
            • Passed
            • Passed
            • Passed
            • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.createPattern]
            • Aborted with exception: NOT_SUPPORTED_ERR
            • Aborted with exception: INVALID_STATE_ERR: DOM Exception 11
            • Passed
            # security.pattern.cross
            • Aborted with exception: Object doesn't support this property or method
            • Aborted with exception: Object doesn't support this property or method
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.createPattern]
            • Aborted with exception: NOT_SUPPORTED_ERR
            • Aborted with exception: INVALID_STATE_ERR: DOM Exception 11
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            # security.pattern.canvas.timing
            • Aborted with exception: Object doesn't support this property or method
            • Aborted with exception: Object doesn't support this property or method
            • Passed
            • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]
            • Passed
            • Passed
            • Passed
            # security.pattern.image.fillStyle
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.createPattern]
            • Aborted with exception: NOT_SUPPORTED_ERR
            • Aborted with exception: INVALID_STATE_ERR: DOM Exception 11
            • Passed
            # security.pattern.canvas.fillStyle
            • Aborted with exception: Object doesn't support this property or method
            • Aborted with exception: Object doesn't support this property or method
            • Passed
            • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            # security.pattern.image.strokeStyle
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.createPattern]
            • Aborted with exception: NOT_SUPPORTED_ERR
            • Aborted with exception: INVALID_STATE_ERR: DOM Exception 11
            • Passed
            # security.pattern.canvas.strokeStyle
            • Aborted with exception: Object doesn't support this property or method
            • Aborted with exception: Object doesn't support this property or method
            • Passed
            • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            • Failed assertion: should throw exception: canvas.toDataURL()
            • Failed assertion: should throw exception: ctx.getImageData(0, 0, 1, 1)
            # security.dataURI
            • Passed
            • Passed
            • Passed
            • Passed
              • Passed
              • Passed
              # security.reset
              • Failed assertion: should throw exception: canvas.toDataURL()
              • Failed assertion: should throw exception: canvas.toDataURL()
              • Failed assertion: should throw exception: canvas.toDataURL()
              • Failed assertion: should throw exception: canvas.toDataURL()
              • Passed
              • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]
              • Failed assertion: should throw exception: canvas.toDataURL()
              • Failed assertion: should throw exception: canvas.toDataURL()
              • Failed assertion: should throw exception: canvas.toDataURL()
              • Failed assertion: should throw exception: canvas.toDataURL()
              • Failed assertion: should throw exception: canvas.toDataURL()
              • Failed assertion: should throw exception: canvas.toDataURL()
              # 2d.getcontext.exists
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.getcontext.unique
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.getcontext.shared
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.voidreturn
              • Aborted with exception: Syntax error
              • Aborted with exception: Syntax error
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.missingargs
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.scale()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.scale(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rotate()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.translate()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.translate(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0, 1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0, 1, 0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: SYNTAX_ERR
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.moveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.moveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.lineTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.lineTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.isPointInPath()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.isPointInPath(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillText()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillText('test')
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillText('test', 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeText()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeText('test')
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeText('test', 0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: 'undefined' is null or not an object
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: TYPE_MISMATCH_ERR
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.drawImage(canvas)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.drawImage(canvas, 0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: TYPE_MISMATCH_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: g.addColorStop(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.scale()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.scale(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rotate()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.translate()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.translate(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0, 1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0, 1, 0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: SYNTAX_ERR
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.moveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.moveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.lineTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.lineTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.isPointInPath()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.isPointInPath(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillText()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillText('test')
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillText('test', 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeText()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeText('test')
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeText('test', 0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: 'undefined' is null or not an object
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: TYPE_MISMATCH_ERR
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.drawImage(canvas)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.drawImage(canvas, 0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: TYPE_MISMATCH_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: g.addColorStop(0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1, 0, 0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Invalid argument.
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Argument not optional
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasRenderingContext2D.createLinearGradient]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasRenderingContext2D.createLinearGradient]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasRenderingContext2D.createLinearGradient]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasRenderingContext2D.createLinearGradient]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasRenderingContext2D.createRadialGradient]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasRenderingContext2D.createRadialGradient]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasRenderingContext2D.createRadialGradient]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasRenderingContext2D.createRadialGradient]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasRenderingContext2D.createRadialGradient]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasRenderingContext2D.createRadialGradient]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasRenderingContext2D.createPattern]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMCanvasRenderingContext2D.drawImage]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMCanvasRenderingContext2D.drawImage]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMCanvasRenderingContext2D.drawImage]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasGradient.addColorStop]
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Not enough arguments [nsIDOMCanvasGradient.addColorStop]
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.scale()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.scale(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rotate()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.translate()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.translate(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0, 1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0, 1, 0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.moveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.moveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.lineTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.lineTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1, 0, 0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.drawImage()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.drawImage(canvas)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.drawImage(canvas, 0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.scale()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.scale(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rotate()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.translate()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.translate(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0, 1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0, 1, 0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: SYNTAX_ERR: DOM Exception 12
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.moveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.moveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.lineTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.lineTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.isPointInPath()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.isPointInPath(0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Syntax error
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Syntax error
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Syntax error
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Syntax error
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Syntax error
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Syntax error
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.measureText()
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Type error
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Syntax error
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Syntax error
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(0, 0, 1)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: TYPE_MISMATCH_ERR: DOM Exception 17
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: SYNTAX_ERR: DOM Exception 12
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.scale()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.scale(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rotate()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.translate()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.translate(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.transform(1, 0, 0, 1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.setTransform(1, 0, 0, 1, 0)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Type error
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.clearRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeRect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.moveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.moveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.lineTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.lineTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.quadraticCurveTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.bezierCurveTo(0, 0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arcTo(0, 0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.rect(0, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.arc(0, 0, 1, 0, 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.isPointInPath()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.isPointInPath(0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillText()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillText('test')
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.fillText('test', 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeText()
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeText('test')
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.strokeText('test', 0)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.measureText()
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Type error
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Type error
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Type error
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Type error
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: Type error
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: TYPE_MISMATCH_ERR: DOM Exception 17
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: SYNTAX_ERR: DOM Exception 12
              # 2d.coordinatespace
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              # 2d.scaled
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              # 2d.canvas.reference
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.canvas.readonly
              • Failed assertion ctx.canvas === d (got [object][object], expected [object][object])
              • Failed assertion ctx.canvas === d (got [object][object], expected [object][object])
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.strokeStyle
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.fillStyle
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.globalAlpha
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.lineWidth
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.lineCap
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.lineJoin
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.miterLimit
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.shadowOffsetX
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.shadowOffsetY
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.shadowBlur
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.shadowColor
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.globalCompositeOperation
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.font
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.textAlign
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.textBaseline
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # initial.reset.2dstate
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.transformation
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.clip
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.path
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.bitmap
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.stack
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.stackdepth
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.state.saverestore.underflow
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.order
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.scale.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.scale.zero
              • Passed
              • Passed
              • Passed
              • Aborted with exception: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHTMLCanvasElement.toDataURL]
              • Passed
              • Passed
              • Passed
              # 2d.transformation.scale.negative
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.scale.large
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.scale.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.transformation.scale.multiple
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.rotate.zero
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.rotate.radians
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.rotate.direction
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.rotate.wrap
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.rotate.wrapnegative
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.rotate.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.transformation.translate.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.translate.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.transformation.transform.identity
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.transform.skewed
              • Passed
              • Passed
              • Failed assertion: got pixel [1,254,0,255] at (79,39), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,0,254] at (39,19), expected [0,255,0,255]
              # 2d.transformation.transform.multiply
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.transform.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.transformation.setTransform.skewed
              • Passed
              • Passed
              • Failed assertion: got pixel [1,254,0,255] at (79,39), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,0,254] at (39,19), expected [0,255,0,255]
              # 2d.transformation.setTransform.multiple
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.transformation.setTransform.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.composite.globalAlpha.range
              • Failed assertion ctx.globalAlpha == a (got 1.1[number], expected 0.5[number])
              • Failed assertion ctx.globalAlpha == a (got -0.1[number], expected 0.5[number])
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.globalAlpha.invalid
              • Failed assertion ctx.globalAlpha == a (got Infinity[number], expected 0.5[number])
              • Failed assertion ctx.globalAlpha == a (got -Infinity[number], expected 0.5[number])
              • Failed assertion ctx.globalAlpha == a (got NaN[number], expected 0.5[number])
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.composite.globalAlpha.default
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.globalAlpha.fill
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.globalAlpha.image
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.globalAlpha.canvas
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.globalAlpha.imagepattern
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.globalAlpha.canvaspattern
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.solid.source-over
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.solid.destination-over
              • Passed
              • Passed
              • Failed assertion: got pixel [255,255,0,255] at (50,25), expected [0,255,255,255] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.solid.source-in
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.solid.destination-in
              • Passed
              • Passed
              • Failed assertion: got pixel [255,255,0,255] at (50,25), expected [0,255,255,255] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.solid.source-out
              • Passed
              • Passed
              • Failed assertion: got pixel [255,255,0,255] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.solid.destination-out
              • Passed
              • Passed
              • Failed assertion: got pixel [255,255,0,255] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.solid.source-atop
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.solid.destination-atop
              • Passed
              • Passed
              • Failed assertion: got pixel [255,255,0,255] at (50,25), expected [0,255,255,255] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.solid.xor
              • Passed
              • Passed
              • Failed assertion: got pixel [255,255,0,255] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.solid.copy
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.solid.lighter
              • Passed
              • Passed
              • Failed assertion: got pixel [255,255,0,255] at (50,25), expected [255,255,255,255] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.transparent.source-over
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.transparent.destination-over
              • Passed
              • Passed
              • Failed assertion: got pixel [0,36,218,223] at (50,25), expected [0,145,109,223] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.transparent.source-in
              • Passed
              • Passed
              • Failed assertion: got pixel [0,36,218,223] at (50,25), expected [0,0,255,95] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.transparent.destination-in
              • Passed
              • Passed
              • Failed assertion: got pixel [0,36,218,223] at (50,25), expected [0,255,0,95] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.transparent.source-out
              • Passed
              • Passed
              • Failed assertion: got pixel [0,36,218,223] at (50,25), expected [0,0,255,95] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.transparent.destination-out
              • Passed
              • Passed
              • Failed assertion: got pixel [0,36,218,223] at (50,25), expected [0,255,0,31] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.transparent.source-atop
              • Failed assertion: got pixel [0,42,212,114] at (50,25), expected [0,63,191,127] +/- 5
              • Failed assertion: got pixel [0,42,212,114] at (50,25), expected [0,63,191,127] +/- 5
              • Failed assertion: got pixel [0,36,218,223] at (50,25), expected [0,63,191,127] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.transparent.destination-atop
              • Failed assertion: got pixel [0,157,97,154] at (50,25), expected [0,127,127,191] +/- 5
              • Failed assertion: got pixel [0,157,97,154] at (50,25), expected [0,127,127,191] +/- 5
              • Failed assertion: got pixel [0,36,218,223] at (50,25), expected [0,127,127,191] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.transparent.xor
              • Failed assertion: got pixel [0,42,212,114] at (50,25), expected [0,63,191,127] +/- 5
              • Failed assertion: got pixel [0,42,212,114] at (50,25), expected [0,63,191,127] +/- 5
              • Failed assertion: got pixel [0,36,218,223] at (50,25), expected [0,63,191,127] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.transparent.copy
              • Passed
              • Passed
              • Failed assertion: got pixel [0,36,218,223] at (50,25), expected [0,0,255,191] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.transparent.lighter
              • Passed
              • Passed
              • Failed assertion: got pixel [0,36,218,223] at (50,25), expected [0,127,191,255] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.image.source-over
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.image.destination-over
              • Passed
              • Passed
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [109,255,145,223] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.image.source-in
              • Passed
              • Passed
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [255,255,0,95] +/- 5
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [255,255,0,95] +/- 5
              • Passed
              • Passed
              • Passed
              # 2d.composite.image.destination-in
              • Passed
              • Passed
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [0,255,255,95] +/- 5
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,255,95] +/- 5
              • Passed
              • Passed
              • Passed
              # 2d.composite.image.source-out
              • Passed
              • Passed
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [255,255,0,95] +/- 5
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [255,255,0,95] +/- 5
              • Passed
              • Passed
              • Passed
              # 2d.composite.image.destination-out
              • Passed
              • Passed
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [0,255,255,31] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.image.source-atop
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [191,255,63,127] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [191,255,63,127] +/- 5
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [191,255,63,127] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.image.destination-atop
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [127,255,127,191] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [127,255,127,191] +/- 5
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [127,255,127,191] +/- 5
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [127,255,127,191] +/- 5
              • Passed
              • Passed
              • Passed
              # 2d.composite.image.xor
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [191,255,63,127] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [191,255,63,127] +/- 5
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [191,255,63,127] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.image.copy
              • Passed
              • Passed
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [255,255,0,191] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.image.lighter
              • Passed
              • Passed
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [191,255,127,255] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.canvas.source-over
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.canvas.destination-over
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [109,255,145,223] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.canvas.source-in
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [255,255,0,95] +/- 5
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [255,255,0,95] +/- 5
              • Passed
              • Passed
              • Passed
              # 2d.composite.canvas.destination-in
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [0,255,255,95] +/- 5
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,255,95] +/- 5
              • Passed
              • Passed
              • Passed
              # 2d.composite.canvas.source-out
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [255,255,0,95] +/- 5
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [255,255,0,95] +/- 5
              • Passed
              • Passed
              • Passed
              # 2d.composite.canvas.destination-out
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [0,255,255,31] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.canvas.source-atop
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [191,255,63,127] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.canvas.destination-atop
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [127,255,127,191] +/- 5
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [127,255,127,191] +/- 5
              • Passed
              • Passed
              • Passed
              # 2d.composite.canvas.xor
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [191,255,63,127] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.canvas.copy
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [255,255,0,191] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.canvas.lighter
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion: got pixel [218,255,36,223] at (50,25), expected [191,255,127,255] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.uncovered.fill.source-in
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,0,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,0,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,0,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.fill.destination-in
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,0,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,0,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,0,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.fill.source-out
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,0,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,0,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,0,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.fill.destination-atop
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,0,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,0,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,0,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.fill.copy
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,0,128] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,0,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Failed assertion: got pixel [0,255,0,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,0,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.image.source-in
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,128] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,127] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.image.destination-in
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,128] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,127] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.image.source-out
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,128] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,127] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.image.destination-atop
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,128] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,127] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.image.copy
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,128] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,128] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Failed assertion: got pixel [0,255,255,127] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (15,15), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.nocontext.source-in
              • Aborted with exception: 'n[...]' is null or not an object
              • Aborted with exception: 'n[...]' is null or not an object
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.uncovered.nocontext.destination-in
              • Aborted with exception: 'n[...]' is null or not an object
              • Aborted with exception: 'n[...]' is null or not an object
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.uncovered.nocontext.source-out
              • Aborted with exception: 'n[...]' is null or not an object
              • Aborted with exception: 'n[...]' is null or not an object
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.uncovered.nocontext.destination-atop
              • Aborted with exception: 'n[...]' is null or not an object
              • Aborted with exception: 'n[...]' is null or not an object
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.uncovered.nocontext.copy
              • Aborted with exception: 'n[...]' is null or not an object
              • Aborted with exception: 'n[...]' is null or not an object
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.uncovered.pattern.source-in
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.pattern.destination-in
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.pattern.source-out
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.pattern.destination-atop
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.uncovered.pattern.copy
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,128] at (50,25), expected [0,0,0,0] +/- 5
              • Passed
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              • Failed assertion: got pixel [0,255,255,127] at (50,25), expected [0,0,0,0] +/- 5
              # 2d.composite.clip.source-over
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.clip.destination-over
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.clip.source-in
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.clip.destination-in
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.clip.source-out
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.clip.destination-out
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.clip.source-atop
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [0,254,0,255] at (25,25), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.composite.clip.destination-atop
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.clip.xor
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.clip.copy
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.clip.lighter
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.operation.get
              • Passed
              • Passed
              • Failed assertion ctx.globalCompositeOperation == modes["0"] (got [string], expected source-atop[string])
              • Failed assertion ctx.globalCompositeOperation == modes["1"] (got [string], expected source-in[string])
              • Failed assertion ctx.globalCompositeOperation == modes["2"] (got [string], expected source-out[string])
              • Failed assertion ctx.globalCompositeOperation == modes["3"] (got [string], expected source-over[string])
              • Failed assertion ctx.globalCompositeOperation == modes["4"] (got [string], expected destination-atop[string])
              • Failed assertion ctx.globalCompositeOperation == modes["5"] (got [string], expected destination-in[string])
              • Failed assertion ctx.globalCompositeOperation == modes["6"] (got [string], expected destination-out[string])
              • Failed assertion ctx.globalCompositeOperation == modes["7"] (got [string], expected destination-over[string])
              • Failed assertion ctx.globalCompositeOperation == modes["8"] (got [string], expected lighter[string])
              • Failed assertion ctx.globalCompositeOperation == modes["9"] (got [string], expected copy[string])
              • Failed assertion ctx.globalCompositeOperation == modes["10"] (got [string], expected xor[string])
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.composite.operation.unrecognised
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got nonexistent[string], expected xor[string])
              • Passed
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got [string], expected xor[string])
              • Aborted with exception: Component returned failure code: 0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIDOMCanvasRenderingContext2D.globalCompositeOperation]
              • Passed
              • Passed
              • Passed
              # 2d.composite.operation.darker
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got darker[string], expected xor[string])
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got darker[string], expected xor[string])
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got [string], expected xor[string])
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got darker[string], expected xor[string])
              • Passed
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got darker[string], expected xor[string])
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got darker[string], expected xor[string])
              # 2d.composite.operation.over
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got over[string], expected xor[string])
              • Passed
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got [string], expected xor[string])
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got source-over[string], expected xor[string])
              • Passed
              • Passed
              • Passed
              # 2d.composite.operation.clear
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got clear[string], expected xor[string])
              • Passed
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got [string], expected xor[string])
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got clear[string], expected xor[string])
              • Passed
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got clear[string], expected xor[string])
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got clear[string], expected xor[string])
              # 2d.composite.operation.highlight
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got highlight[string], expected xor[string])
              • Passed
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got [string], expected xor[string])
              • Aborted with exception: Component returned failure code: 0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIDOMCanvasRenderingContext2D.globalCompositeOperation]
              • Passed
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got highlight[string], expected xor[string])
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got highlight[string], expected xor[string])
              # 2d.composite.operation.nullsuffix
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got source-over
              • Passed
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got [string], expected xor[string])
              • Aborted with exception: Component returned failure code: 0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIDOMCanvasRenderingContext2D.globalCompositeOperation]
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got source-over[string], expected xor[string])
              • Passed
              • Passed
              # 2d.composite.operation.casesensitive
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got Source-over[string], expected xor[string])
              • Passed
              • Failed assertion ctx.globalCompositeOperation == 'xor' (got [string], expected xor[string])
              • Aborted with exception: Component returned failure code: 0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIDOMCanvasRenderingContext2D.globalCompositeOperation]
              • Passed
              • Passed
              • Passed
              # 2d.composite.operation.default
              • Passed
              • Passed
              • Failed assertion ctx.globalCompositeOperation == 'source-over' (got [string], expected source-over[string])
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.html4
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hex3
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hex6
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.rgb-num
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.rgb-clamp-1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.rgb-clamp-2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.rgb-clamp-3
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [0,2,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.fillStyle.parse.rgb-clamp-4
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.fillStyle.parse.rgb-clamp-5
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.fillStyle.parse.rgb-percent
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.rgba-solid-1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.rgba-solid-2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.rgba-num-1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.rgba-num-2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.rgba-percent
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.rgba-clamp-1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.rgba-clamp-2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.transparent-1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.transparent-2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsl-1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsl-2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsl-3
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsl-4
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsl-5
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsl-clamp-1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsl-clamp-2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsl-clamp-3
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsl-clamp-4
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsla-1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsla-2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsla-clamp-1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsla-clamp-2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsla-clamp-3
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsla-clamp-4
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsla-clamp-5
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.hsla-clamp-6
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.svg-1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.svg-2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hex1
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hex2
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hex3
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hex4
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hex5
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hex6
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hex7
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hex8
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.rgb-1
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.rgb-2
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.rgb-3
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.rgb-4
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.rgb-5
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.rgb-6
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.rgb-7
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.rgba-1
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.rgba-2
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.rgba-3
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.rgba-4
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.rgba-5
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hsl-1
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hsl-2
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hsl-3
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hsl-4
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hsl-5
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hsla-1
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.hsla-2
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.name-1
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [92,64,51,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.name-2
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,48,48,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.fillStyle.parse.invalid.name-3
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.parse.system
              • Failed assertion ctx.fillStyle matches /^#(?!(FF0000|ff0000|f00)$)/ (got ThreeDDarkShadow[string])
              • Failed assertion ctx.fillStyle matches /^#(?!(FF0000|ff0000|f00)$)/ (got ThreeDDarkShadow[string])
              • Passed
              • Passed
              • Failed assertion ctx.fillStyle matches /^#(?!(FF0000|ff0000|f00)$)/ (got #ff0000[string])
              • Failed assertion ctx.fillStyle matches /^#(?!(FF0000|ff0000|f00)$)/ (got ThreeDDarkShadow[string])
              • Failed assertion ctx.fillStyle matches /^#(?!(FF0000|ff0000|f00)$)/ (got rgba(0, 0, 0, 0.0)[string])
              # 2d.fillStyle.parse.current.basic
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,255,255,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.fillStyle.parse.current.changed
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,255,255,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.fillStyle.parse.current.removed
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion: got pixel [255,255,255,255] at (50,25), expected [0,0,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,0,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,0,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,0,0,255]
              • Passed
              # 2d.fillStyle.invalidstring
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.invalidtype
              • Aborted with exception: 'id' is null or not an object
              • Aborted with exception: 'id' is null or not an object
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillStyle.get.solid
              • Failed assertion ctx.fillStyle === '#ffaa00' (got #fa0[string], expected #ffaa00[string])
              • Failed assertion ctx.fillStyle === '#ffaa00' (got #fa0[string], expected #ffaa00[string])
              • Passed
              • Passed
              • Passed
              • Failed assertion ctx.fillStyle === '#ffaa00' (got #fa0[string], expected #ffaa00[string])
              • Passed
              # 2d.fillStyle.get.semitransparent
              • Failed assertion ctx.fillStyle matches /^rgba\(255, 255, 255, 0\.4\d+\)$/ (got rgba(255,255,255,0.45)[string])
              • Failed assertion ctx.fillStyle matches /^rgba\(255, 255, 255, 0\.4\d+\)$/ (got rgba(255,255,255,0.45)[string])
              • Passed
              • Passed
              • Passed
              • Failed assertion ctx.fillStyle matches /^rgba\(255, 255, 255, 0\.4\d+\)$/ (got rgba(255,255,255,0.45)[string])
              • Passed
              # 2d.fillStyle.get.transparent
              • Failed assertion ctx.fillStyle == 'rgba(0, 0, 0, 0.0)' (got rgba(0,0,0,0)[string], expected rgba(0, 0, 0, 0.0)[string])
              • Failed assertion ctx.fillStyle == 'rgba(0, 0, 0, 0.0)' (got rgba(0,0,0,0)[string], expected rgba(0, 0, 0, 0.0)[string])
              • Failed assertion ctx.fillStyle == 'rgba(0, 0, 0, 0.0)' (got rgba(0, 0, 0, 0)[string], expected rgba(0, 0, 0, 0.0)[string])
              • Passed
              • Passed
              • Failed assertion ctx.fillStyle == 'rgba(0, 0, 0, 0.0)' (got rgba(0,0,0,0)[string], expected rgba(0, 0, 0, 0.0)[string])
              • Passed
              # 2d.fillStyle.default
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion ctx.fillStyle == '#000000' (got black[string], expected #000000[string])
              • Passed
              # 2d.strokeStyle.default
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion ctx.strokeStyle == '#000000' (got black[string], expected #000000[string])
              • Passed
              # 2d.gradient.object.return
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Aborted with exception: Result of expression 'window.CanvasGradient' [undefined] is not an object.
              • Passed
              # 2d.gradient.interpolate.solid
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.interpolate.colour
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.interpolate.alpha
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.interpolate.colouralpha
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.interpolate.outside
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.interpolate.zerosize
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (40,20), expected [0,255,0,255] +/- 2
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (40,20), expected [0,255,0,255] +/- 2
              • Passed
              # 2d.gradient.interpolate.vertical
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.interpolate.multiple
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.interpolate.overlap
              • Passed
              • Passed
              • Failed assertion: got pixel [49,49,205,255] at (49,25), expected [0,0,255,255] +/- 16
              • Failed assertion: got pixel [49,49,205,255] at (149,25), expected [0,0,255,255] +/- 16
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.interpolate.overlap2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.empty
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.object.update
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255] +/- 2
              # 2d.gradient.object.compare
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.object.crosscanvas
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.object.invalidoffset
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type INDEX_SIZE_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type INDEX_SIZE_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type INDEX_SIZE_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type INDEX_SIZE_ERR, got: NOT_SUPPORTED_ERR
              • Failed assertion: expected exception of type INDEX_SIZE_ERR, got: NOT_SUPPORTED_ERR
              • Failed assertion: expected exception of type INDEX_SIZE_ERR, got: NOT_SUPPORTED_ERR
              • Passed
              • Passed
              # 2d.gradient.object.invalidcolour
              • Failed assertion: should throw exception of type SYNTAX_ERR: g.addColorStop(0, "")
              • Failed assertion: should throw exception of type SYNTAX_ERR: g.addColorStop(0, 'undefined')
              • Failed assertion: should throw exception of type SYNTAX_ERR: g.addColorStop(0, "")
              • Failed assertion: should throw exception of type SYNTAX_ERR: g.addColorStop(0, 'undefined')
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.linear.nonfinite
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.gradient.linear.transform.1
              • Passed
              • Passed
              • Failed assertion: got pixel [1,254,0,255] at (25,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.linear.transform.2
              • Passed
              • Passed
              • Failed assertion: got pixel [1,254,0,255] at (25,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.linear.transform.3
              • Passed
              • Passed
              • Failed assertion: got pixel [1,254,0,255] at (25,25), expected [0,255,0,255]
              • Failed assertion: got pixel [125,129,0,255] at (25,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.gradient.radial.negative
              • Passed
              • Passed
              • Passed
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.createRadialGradient(0, 0, -0.1, 0, 0, 1)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.createRadialGradient(0, 0, 1, 0, 0, -0.1)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.createRadialGradient(0, 0, -0.1, 0, 0, -0.1)
              • Passed
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.createRadialGradient(0, 0, -0.1, 0, 0, 1)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.createRadialGradient(0, 0, 1, 0, 0, -0.1)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.createRadialGradient(0, 0, -0.1, 0, 0, -0.1)
              • Passed
              # 2d.gradient.radial.nonfinite
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.gradient.radial.inside1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.radial.inside2
              • Passed
              • Passed
              • Failed assertion: got pixel [4,251,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Failed assertion: got pixel [1,254,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [1,253,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [1,253,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              # 2d.gradient.radial.inside3
              • Passed
              • Passed
              • Failed assertion: got pixel [51,204,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [51,204,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [51,204,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [51,204,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [51,204,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [51,204,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [51,204,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [51,204,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [51,204,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Failed assertion: got pixel [165,89,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [166,89,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [166,89,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [166,89,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [165,89,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [165,89,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [166,90,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [165,89,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [165,89,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              # 2d.gradient.radial.outside1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [9,246,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [9,246,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [9,246,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [9,246,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [9,246,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [9,246,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [9,246,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [9,245,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [9,245,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              # 2d.gradient.radial.outside2
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.gradient.radial.outside3
              • Passed
              • Passed
              • Failed assertion: got pixel [198,57,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [198,57,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [198,57,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [198,57,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [198,57,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [198,57,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [198,57,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [198,57,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [198,57,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              # 2d.gradient.radial.touch1
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              # 2d.gradient.radial.touch2
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              # 2d.gradient.radial.touch3
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              # 2d.gradient.radial.equal
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.gradient.radial.cone.behind
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Aborted with exception: Unexpected call to method or property access.
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              # 2d.gradient.radial.cone.front
              • Passed
              • Passed
              • Failed assertion: got pixel [4,251,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [4,251,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Failed assertion: got pixel [0,254,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [0,254,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [0,254,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,255,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,254,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,254,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              # 2d.gradient.radial.cone.bottom
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.gradient.radial.cone.top
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [170,85,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [170,85,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [3,252,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [3,252,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [3,252,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [3,252,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [3,252,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [3,252,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [3,252,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [3,252,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [3,252,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,254,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,254,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              # 2d.gradient.radial.cone.beside
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              # 2d.gradient.radial.cone.cylinder
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [0,0,0,0] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,48), expected [0,255,0,255]
              # 2d.gradient.radial.cone.shape1
              • Passed
              • Passed
              • Failed assertion: got pixel [1,254,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [69,186,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (98,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (50,48), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.radial.cone.shape2
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              # 2d.gradient.radial.transform.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.radial.transform.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.gradient.radial.transform.3
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.pattern.basic.type
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion window.CanvasPattern !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: Result of expression 'window.CanvasPattern' [undefined] is not an object.
              • Passed
              # 2d.pattern.basic.image
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Aborted with exception: INVALID_STATE_ERR: DOM Exception 11
              • Passed
              # 2d.pattern.basic.canvas
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.basic.zerocanvas
              • Passed
              • Passed
              • Passed
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.createPattern(canvas, 'repeat')
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.createPattern(canvas, 'repeat')
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.createPattern(canvas, 'repeat')
              • Failed assertion canvas.width === 0 (got 300[number], expected 0[number])
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.createPattern(canvas, 'repeat')
              • Failed assertion canvas.height === 0 (got 150[number], expected 0[number])
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.createPattern(canvas, 'repeat')
              • Failed assertion canvas.width === 0 (got 300[number], expected 0[number])
              • Failed assertion canvas.height === 0 (got 150[number], expected 0[number])
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.createPattern(canvas, 'repeat')
              • Passed
              • Passed
              # 2d.pattern.basic.nocontext
              • Aborted with exception: 'n[...]' is null or not an object
              • Aborted with exception: 'n[...]' is null or not an object
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.image.undefined
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.createPattern]
              • Passed
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              # 2d.pattern.image.null
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.createPattern]
              • Passed
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              • Passed
              # 2d.pattern.image.string
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Could not convert JavaScript argument arg 0 [nsIDOMCanvasRenderingContext2D.createPattern]
              • Passed
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              # 2d.pattern.image.incomplete
              • Failed assertion ctx.createPattern(img, 'repeat') === null (got [object Object][object], expected [object])
              • Failed assertion ctx.createPattern(img, 'repeat') === null (got [object Object][object], expected [object])
              • Passed
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.createPattern]
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Aborted with exception: TYPE_MISMATCH_ERR
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Failed assertion ctx.createPattern(img, 'repeat') === null (got [object CanvasPattern][object], expected [object])
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Failed assertion ctx.createPattern(img, 'repeat') === null (got [object CanvasPattern][object], expected [object])
              # 2d.pattern.image.broken
              • Failed assertion ctx.createPattern(img, 'repeat') === null (got [object Object][object], expected [object])
              • Failed assertion ctx.createPattern(img, 'repeat') === null (got [object Object][object], expected [object])
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Failed assertion ctx.createPattern(img, 'repeat') === null (got [object CanvasPattern][object], expected [object])
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.createPattern]
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Failed assertion ctx.createPattern(img, 'repeat') === null (got [undefined], expected [object])
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Failed assertion ctx.createPattern(img, 'repeat') === null (got [object CanvasPattern][object], expected [object])
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Failed assertion ctx.createPattern(img, 'repeat') === null (got [object CanvasPattern][object], expected [object])
              # 2d.pattern.repeat.empty
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [2,253,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [2,253,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [2,253,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [2,253,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.repeat.null
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [2,253,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [2,253,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [2,253,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [2,253,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.repeat.undefined
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: should throw exception of type SYNTAX_ERR: ctx.createPattern(canvas, undefined)
              • Passed
              • Passed
              # 2d.pattern.repeat.unrecognised
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.repeat.case
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.repeat.nullsuffix
              • Passed
              • Passed
              • Failed assertion: should throw exception of type SYNTAX_ERR: ctx.createPattern(canvas, "repeat\0")
              • Passed
              • Failed assertion: should throw exception of type SYNTAX_ERR: ctx.createPattern(canvas, "repeat\0")
              • Passed
              • Passed
              # 2d.pattern.modify.image1
              • Failed assertion: got pixel [0,0,0,0] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Aborted with exception: INVALID_STATE_ERR: DOM Exception 11
              • Passed
              # 2d.pattern.modify.image2
              • Failed assertion: got pixel [0,0,0,0] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Aborted with exception: INVALID_STATE_ERR: DOM Exception 11
              • Passed
              # 2d.pattern.modify.canvas1
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.modify.canvas2
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.crosscanvas
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Aborted with exception: INVALID_STATE_ERR: DOM Exception 11
              • Passed
              # 2d.pattern.paint.norepeat.basic
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Aborted with exception: INVALID_STATE_ERR: DOM Exception 11
              • Passed
              # 2d.pattern.paint.norepeat.outside
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.norepeat.coord1
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Aborted with exception: INVALID_STATE_ERR: DOM Exception 11
              • Passed
              # 2d.pattern.paint.norepeat.coord2
              • Failed assertion: got pixel [0,0,0,0] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Aborted with exception: INVALID_STATE_ERR: DOM Exception 11
              • Passed
              # 2d.pattern.paint.norepeat.coord3
              • Failed assertion: got pixel [0,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              # 2d.pattern.paint.repeat.basic
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.repeat.outside
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.repeat.coord1
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.repeat.coord2
              • Failed assertion: got pixel [0,0,0,0] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.repeat.coord3
              • Failed assertion: got pixel [0,0,0,0] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,0] at (98,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.repeatx.basic
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.repeatx.outside
              • Failed assertion: got pixel [0,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.repeatx.coord1
              • Failed assertion: got pixel [0,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.repeaty.basic
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.repeaty.outside
              • Failed assertion: got pixel [0,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.repeaty.coord1
              • Failed assertion: got pixel [0,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [0,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.orientation.image
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.paint.orientation.canvas
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.pattern.animated.gif
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              # 2d.line.defaults
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.width.basic
              • Passed
              • Passed
              • Failed assertion: got pixel [1,254,0,255] at (14,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (34,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (64,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (84,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [7,248,0,255] at (15,25), expected [0,255,0,255]
              # 2d.line.width.transformed
              • Failed assertion: got pixel [255,0,0,255] at (15,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (16,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (34,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (15,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (16,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (34,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (14,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (34,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (64,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (84,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [7,248,0,255] at (15,25), expected [0,255,0,255]
              # 2d.line.width.scaledefault
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.width.valid
              • Failed assertion ctx.lineWidth === 10 (got 1e1[string], expected 10[number])
              • Failed assertion ctx.lineWidth === 10 (got 1e1[string], expected 10[number])
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.width.invalid
              • Failed assertion ctx.lineWidth === 1.5 (got 0[number], expected 1.5[number])
              • Failed assertion ctx.lineWidth === 1.5 (got -1[number], expected 1.5[number])
              • Failed assertion ctx.lineWidth === 1.5 (got Infinity[number], expected 1.5[number])
              • Failed assertion ctx.lineWidth === 1.5 (got -Infinity[number], expected 1.5[number])
              • Failed assertion ctx.lineWidth === 1.5 (got NaN[number], expected 1.5[number])
              • Passed
              • Passed
              • Failed assertion ctx.lineWidth === 1.5 (got 0[number], expected 1.5[number])
              • Failed assertion ctx.lineWidth === 1.5 (got 0[number], expected 1.5[number])
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Failed assertion ctx.lineWidth === 1.5 (got Infinity[number], expected 1.5[number])
              • Passed
              # 2d.line.cap.butt
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.cap.round
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.cap.square
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.cap.open
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.cap.closed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              # 2d.line.cap.valid
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.cap.invalid
              • Failed assertion ctx.lineCap === 'butt' (got invalid[string], expected butt[string])
              • Failed assertion ctx.lineCap === 'butt' (got ROUND[string], expected butt[string])
              • Failed assertion ctx.lineCap === 'butt' (got round
              • Failed assertion ctx.lineCap === 'butt' (got round [string], expected butt[string])
              • Failed assertion ctx.lineCap === 'butt' (got [string], expected butt[string])
              • Failed assertion ctx.lineCap === 'butt' (got bevel[string], expected butt[string])
              • Passed
              • Failed assertion ctx.lineCap === 'butt' (got round[string], expected butt[string])
              • Aborted with exception: Component returned failure code: 0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIDOMCanvasRenderingContext2D.lineCap]
              • Failed assertion ctx.lineCap === 'butt' (got round[string], expected butt[string])
              • Passed
              • Passed
              # 2d.line.join.bevel
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.join.round
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.join.miter
              • Passed
              • Passed
              • Failed assertion: got pixel [1,254,0,255] at (39,11), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.join.open
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.join.closed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.join.parallel
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              # 2d.line.join.valid
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.join.invalid
              • Failed assertion ctx.lineJoin === 'bevel' (got invalid[string], expected bevel[string])
              • Failed assertion ctx.lineJoin === 'bevel' (got ROUND[string], expected bevel[string])
              • Failed assertion ctx.lineJoin === 'bevel' (got round
              • Failed assertion ctx.lineJoin === 'bevel' (got round [string], expected bevel[string])
              • Failed assertion ctx.lineJoin === 'bevel' (got [string], expected bevel[string])
              • Failed assertion ctx.lineJoin === 'bevel' (got butt[string], expected bevel[string])
              • Passed
              • Failed assertion ctx.lineJoin === 'bevel' (got round[string], expected bevel[string])
              • Aborted with exception: Component returned failure code: 0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIDOMCanvasRenderingContext2D.lineJoin]
              • Failed assertion ctx.lineJoin === 'bevel' (got round[string], expected bevel[string])
              • Passed
              • Passed
              # 2d.line.miter.exceeded
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.miter.acute
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.miter.obtuse
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.miter.rightangle
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.miter.lineedge
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              # 2d.line.miter.within
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.miter.valid
              • Failed assertion ctx.miterLimit === 10 (got 1e1[string], expected 10[number])
              • Failed assertion ctx.miterLimit === 10 (got 1e1[string], expected 10[number])
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.line.miter.invalid
              • Failed assertion ctx.miterLimit === 1.5 (got 0[number], expected 1.5[number])
              • Failed assertion ctx.miterLimit === 1.5 (got -1[number], expected 1.5[number])
              • Failed assertion ctx.miterLimit === 1.5 (got Infinity[number], expected 1.5[number])
              • Failed assertion ctx.miterLimit === 1.5 (got -Infinity[number], expected 1.5[number])
              • Failed assertion ctx.miterLimit === 1.5 (got NaN[number], expected 1.5[number])
              • Passed
              • Passed
              • Failed assertion ctx.miterLimit === 1.5 (got 0[number], expected 1.5[number])
              • Failed assertion ctx.miterLimit === 1.5 (got -1[number], expected 1.5[number])
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Failed assertion ctx.miterLimit === 1.5 (got Infinity[number], expected 1.5[number])
              • Passed
              # 2d.line.cross
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (48,48), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.line.union
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [77,178,0,255] at (25,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [77,178,0,255] at (25,1), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.shadow.attributes.shadowBlur.initial
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.attributes.shadowBlur.valid
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.attributes.shadowBlur.invalid
              • Failed assertion ctx.shadowBlur === 1 (got -2[number], expected 1[number])
              • Failed assertion ctx.shadowBlur === 1 (got Infinity[number], expected 1[number])
              • Failed assertion ctx.shadowBlur === 1 (got -Infinity[number], expected 1[number])
              • Failed assertion ctx.shadowBlur === 1 (got NaN[number], expected 1[number])
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Failed assertion ctx.shadowBlur === 1 (got -2[number], expected 1[number])
              • Failed assertion ctx.shadowBlur === 1 (got Infinity[number], expected 1[number])
              • Failed assertion ctx.shadowBlur === 1 (got -Infinity[number], expected 1[number])
              • Failed assertion ctx.shadowBlur === 1 (got NaN[number], expected 1[number])
              • Passed
              # 2d.shadow.attributes.shadowOffset.initial
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.attributes.shadowOffset.valid
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.attributes.shadowOffset.invalid
              • Failed assertion ctx.shadowOffsetX === 1 (got Infinity[number], expected 1[number])
              • Failed assertion ctx.shadowOffsetY === 2 (got Infinity[number], expected 2[number])
              • Failed assertion ctx.shadowOffsetX === 1 (got -Infinity[number], expected 1[number])
              • Failed assertion ctx.shadowOffsetY === 2 (got -Infinity[number], expected 2[number])
              • Failed assertion ctx.shadowOffsetX === 1 (got NaN[number], expected 1[number])
              • Failed assertion ctx.shadowOffsetY === 2 (got NaN[number], expected 2[number])
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Failed assertion ctx.shadowOffsetX === 1 (got Infinity[number], expected 1[number])
              • Failed assertion ctx.shadowOffsetY === 2 (got Infinity[number], expected 2[number])
              • Failed assertion ctx.shadowOffsetX === 1 (got -Infinity[number], expected 1[number])
              • Failed assertion ctx.shadowOffsetY === 2 (got -Infinity[number], expected 2[number])
              • Failed assertion ctx.shadowOffsetX === 1 (got NaN[number], expected 1[number])
              • Failed assertion ctx.shadowOffsetY === 2 (got NaN[number], expected 2[number])
              • Passed
              # 2d.shadow.attributes.shadowColor.initial
              • Passed
              • Passed
              • Failed assertion ctx.shadowColor === 'rgba(0, 0, 0, 0.0)' (got rgba(0, 0, 0, 0)[string], expected rgba(0, 0, 0, 0.0)[string])
              • Passed
              • Passed
              • Failed assertion ctx.shadowColor === 'rgba(0, 0, 0, 0.0)' (got black[string], expected rgba(0, 0, 0, 0.0)[string])
              • Passed
              # 2d.shadow.attributes.shadowColor.valid
              • Failed assertion ctx.shadowColor === '#00ff00' (got lime[string], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === 'rgba(0, 255, 0, 0.0)' (got RGBA(0,255, 0,0)[string], expected rgba(0, 255, 0, 0.0)[string])
              • Failed assertion ctx.shadowColor === '#00ff00' (got lime[string], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === 'rgba(0, 255, 0, 0.0)' (got RGBA(0,255, 0,0)[string], expected rgba(0, 255, 0, 0.0)[string])
              • Failed assertion ctx.shadowColor === 'rgba(0, 255, 0, 0.0)' (got rgba(0, 255, 0, 0)[string], expected rgba(0, 255, 0, 0.0)[string])
              • Passed
              • Passed
              • Failed assertion ctx.shadowColor === '#00ff00' (got lime[string], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === 'rgba(0, 255, 0, 0.0)' (got RGBA(0,255, 0,0)[string], expected rgba(0, 255, 0, 0.0)[string])
              • Passed
              # 2d.shadow.attributes.shadowColor.invalid
              • Failed assertion ctx.shadowColor === '#00ff00' (got bogus[string], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === '#00ff00' (got red bogus[string], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === '#00ff00' (got [object Object][object], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === '#00ff00' (got [undefined], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === '#00ff00' (got bogus[string], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === '#00ff00' (got red bogus[string], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === '#00ff00' (got [object Object][object], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === '#00ff00' (got [undefined], expected #00ff00[string])
              • Passed
              • Failed assertion ctx.shadowColor === '#00ff00' (got #ff0000[string], expected #00ff00[string])
              • Passed
              • Failed assertion ctx.shadowColor === '#00ff00' (got bogus[string], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === '#00ff00' (got red bogus[string], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === '#00ff00' (got [object CanvasRenderingContext2D][string], expected #00ff00[string])
              • Failed assertion ctx.shadowColor === '#00ff00' (got undefined[string], expected #00ff00[string])
              • Passed
              # 2d.shadow.enable.off.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.enable.off.2
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [253,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.shadow.enable.blur
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [0,253,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (50,25), expected [0,255,0,255]
              # 2d.shadow.enable.x
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [0,253,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.shadow.enable.y
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [0,253,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.shadow.offset.positiveX
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.offset.negativeX
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.offset.positiveY
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.offset.negativeY
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.outside
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.clip.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.clip.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.clip.3
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.stroke.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.stroke.cap.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.stroke.cap.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.stroke.join.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.stroke.join.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.stroke.join.3
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.image.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              # 2d.shadow.image.transparent.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.image.transparent.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255]
              # 2d.shadow.image.alpha
              • Passed
              • Passed
              • Failed assertion: got pixel [0,0,255,255] at (50,25), expected [127,0,127,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [127,0,127,255] +/- 2
              # 2d.shadow.image.section
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.image.scale
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              # 2d.shadow.canvas.basic
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              # 2d.shadow.canvas.transparent.1
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.canvas.transparent.2
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255]
              # 2d.shadow.canvas.alpha
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion: got pixel [0,0,255,255] at (50,25), expected [127,0,127,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [127,0,127,255] +/- 2
              # 2d.shadow.pattern.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              # 2d.shadow.pattern.transparent.1
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.pattern.transparent.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255]
              # 2d.shadow.pattern.alpha
              • Failed assertion: got pixel [0,0,255,255] at (50,25), expected [127,0,127,255] +/- 2
              • Failed assertion: got pixel [0,0,255,255] at (50,25), expected [127,0,127,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [127,0,127,255] +/- 2
              # 2d.shadow.gradient.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              # 2d.shadow.gradient.transparent.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.gradient.transparent.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255]
              # 2d.shadow.gradient.alpha
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [127,0,127,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [127,0,127,255] +/- 2
              # 2d.shadow.transform.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.transform.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              # 2d.shadow.blur.low
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              # 2d.shadow.blur.high
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              # 2d.shadow.alpha.1
              • Passed
              • Passed
              • Failed assertion: got pixel [255,255,0,255] at (50,25), expected [0,255,0,255] +/- 4
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.alpha.2
              • Passed
              • Passed
              • Failed assertion: got pixel [136,18,119,255] at (50,25), expected [127,0,127,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.alpha.3
              • Passed
              • Passed
              • Failed assertion: got pixel [191,128,64,255] at (50,25), expected [127,0,127,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [0,0,255,255] at (50,25), expected [127,0,127,255] +/- 2
              # 2d.shadow.alpha.4
              • Passed
              • Passed
              • Failed assertion: got pixel [0,0,255,127] at (50,25), expected [127,0,127,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [74,0,180,254] at (50,25), expected [127,0,127,255] +/- 2
              # 2d.shadow.alpha.5
              • Passed
              • Passed
              • Failed assertion: got pixel [255,255,0,255] at (50,25), expected [127,0,127,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [0,0,255,255] at (50,25), expected [127,0,127,255] +/- 2
              # 2d.shadow.composite.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.composite.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.shadow.composite.3
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [0,0,0,0] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              # 2d.clearRect.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.clearRect.path
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.clearRect.zero
              • Passed
              • Passed
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.clearRect.negative
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.clearRect.transform
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.clearRect.globalalpha
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.clearRect.globalcomposite
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.clearRect.clip
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.clearRect.shadow
              • Passed
              • Passed
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.clearRect.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.fillRect.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillRect.path
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillRect.zero
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillRect.negative
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillRect.transform
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillRect.clip
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillRect.shadow
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.fillRect.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.path
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.zero.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.zero.2
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,0,0,0]
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.zero.3
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.zero.4
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,0,0,0]
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,0,0,0]
              • Passed
              # 2d.strokeRect.zero.5
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.negative
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.transform
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.globalalpha
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.globalcomposite
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,0,0,0]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.clip
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.shadow
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.strokeRect.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.path.initial
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.beginPath
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.moveTo.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.moveTo.newsubpath
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.moveTo.multiple
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.moveTo.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.path.closePath.empty
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.closePath.newline
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.closePath.nextpoint
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.lineTo.ensuresubpath.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.lineTo.ensuresubpath.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.lineTo.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.lineTo.nextpoint
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.lineTo.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.path.quadraticCurveTo.ensuresubpath.1
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.path.quadraticCurveTo.ensuresubpath.2
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255]
              • Passed
              # 2d.path.quadraticCurveTo.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.quadraticCurveTo.shape
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.quadraticCurveTo.scaled
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.quadraticCurveTo.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.path.bezierCurveTo.ensuresubpath.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.bezierCurveTo.ensuresubpath.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255]
              • Passed
              # 2d.path.bezierCurveTo.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.bezierCurveTo.shape
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.bezierCurveTo.scaled
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.bezierCurveTo.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.path.arcTo.ensuresubpath.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arcTo.ensuresubpath.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.path.arcTo.coincide.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,48), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.path.arcTo.coincide.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arcTo.collinear.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arcTo.collinear.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.path.arcTo.collinear.3
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.path.arcTo.shape.curve1
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (65,45), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [0,255,0,254] at (79,35), expected [0,255,0,255]
              # 2d.path.arcTo.shape.curve2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [0,255,0,254] at (73,27), expected [0,255,0,255]
              • Failed assertion: got pixel [0,255,0,254] at (78,36), expected [0,255,0,255]
              # 2d.path.arcTo.shape.start
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arcTo.shape.end
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arcTo.negative
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arcTo.zero.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Aborted with exception: INDEX_SIZE_ERR
              • Passed
              • Passed
              # 2d.path.arcTo.zero.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Aborted with exception: INDEX_SIZE_ERR
              • Passed
              • Passed
              # 2d.path.arcTo.transformation
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (0,49), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arcTo.scale
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (0,49), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arcTo.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.empty
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.nonempty
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.end
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.angle.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.angle.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.angle.3
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              # 2d.path.arc.angle.4
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.angle.5
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              # 2d.path.arc.angle.6
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.zero.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.zero.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.twopie.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.twopie.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.twopie.3
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.twopie.4
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.shape.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [9,246,0,255] at (20,48), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.path.arc.shape.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.shape.3
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [42,213,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.path.arc.shape.4
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (98,48), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.path.arc.shape.5
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.selfintersect.1
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.path.arc.selfintersect.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [79,176,0,255] at (97,1), expected [0,255,0,255]
              • Failed assertion: got pixel [104,151,0,255] at (97,2), expected [0,255,0,255]
              • Failed assertion: got pixel [223,32,0,255] at (97,3), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (2,48), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.path.arc.negative
              • Passed
              • Passed
              • Passed
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.arc(0, 0, -1, 0, 0, true)
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.zeroradius
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.scale.1
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (0,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,49), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.arc.scale.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [239,16,0,255] at (98,1), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.path.arc.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.path.rect.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.rect.newsubpath
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.rect.closed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.rect.end.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.rect.end.2
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (98,1), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (1,48), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.rect.zero.1
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.rect.zero.2
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.rect.zero.3
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.rect.zero.4
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.path.rect.zero.5
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.rect.zero.6
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.path.rect.negative
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.rect.winding
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (25,12), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (75,12), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (25,37), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (75,37), expected [0,255,0,255]
              • Passed
              # 2d.path.rect.selfintersect
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              # 2d.path.rect.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.path.fill.overlap
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.fill.winding.add
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.fill.winding.subtract.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.fill.winding.subtract.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.fill.winding.subtract.3
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.fill.closed.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.fill.closed.unaffected
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.stroke.overlap
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.stroke.union
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.stroke.unaffected
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.stroke.scale1
              • Failed assertion: got pixel [255,0,0,255] at (0,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,0), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (99,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (99,25), expected [0,255,0,255]
              • Failed assertion: got pixel [2,253,0,255] at (99,49), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.stroke.scale2
              • Failed assertion: got pixel [255,0,0,255] at (0,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,0), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (99,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,25), expected [0,255,0,255]
              • Failed assertion: got pixel [1,254,0,255] at (99,25), expected [0,255,0,255]
              • Failed assertion: got pixel [15,240,0,255] at (0,49), expected [0,255,0,255]
              • Failed assertion: got pixel [2,253,0,255] at (99,49), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.stroke.skew
              • Failed assertion: got pixel [255,0,0,255] at (0,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,0), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (0,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,49), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (99,49), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.stroke.empty
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.stroke.prune.line
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.path.stroke.prune.closed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.path.stroke.prune.curve
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.path.stroke.prune.arc
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.path.stroke.prune.rect
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              # 2d.path.stroke.prune.corner
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.transformation.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.transformation.multiple
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.transformation.changing
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.clip.empty
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              # 2d.path.clip.basic.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.clip.basic.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.clip.intersect
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255]
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.clip.winding.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.clip.winding.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.clip.unaffected
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.basic.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.basic.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.edge
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion ctx.isPointInPath(0, 0) === true (got false[boolean], expected true[boolean])
              • Failed assertion ctx.isPointInPath(10, 0) === true (got false[boolean], expected true[boolean])
              • Failed assertion ctx.isPointInPath(20, 0) === true (got false[boolean], expected true[boolean])
              • Failed assertion ctx.isPointInPath(0, 20) === true (got false[boolean], expected true[boolean])
              • Failed assertion ctx.isPointInPath(0, 10) === true (got false[boolean], expected true[boolean])
              • Passed
              • Passed
              # 2d.path.isPointInPath.empty
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.subpath
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.outside
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.unclosed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.arc
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.bigarc
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.bezier
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.winding
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.transform.1
              • Passed
              • Passed
              • Passed
              • Failed assertion ctx.isPointInPath(10, 10) === false (got true[boolean], expected false[boolean])
              • Failed assertion ctx.isPointInPath(51, 10) === true (got false[boolean], expected true[boolean])
              • Failed assertion ctx.isPointInPath(69, 10) === true (got false[boolean], expected true[boolean])
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.transform.2
              • Passed
              • Passed
              • Passed
              • Failed assertion ctx.isPointInPath(10, 10) === false (got true[boolean], expected false[boolean])
              • Failed assertion ctx.isPointInPath(51, 10) === true (got false[boolean], expected true[boolean])
              • Failed assertion ctx.isPointInPath(69, 10) === true (got false[boolean], expected true[boolean])
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.transform.3
              • Passed
              • Passed
              • Passed
              • Failed assertion ctx.isPointInPath(51, 10) === true (got false[boolean], expected true[boolean])
              • Failed assertion ctx.isPointInPath(69, 10) === true (got false[boolean], expected true[boolean])
              • Passed
              • Passed
              • Passed
              # 2d.path.isPointInPath.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.3arg
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.5arg
              • Failed assertion: got pixel [255,0,0,255] at (99,0), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (99,49), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (99,0), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (99,49), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.9arg.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.9arg.sourcepos
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.9arg.sourcesize
              • Failed assertion: got pixel [255,0,0,255] at (99,0), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (0,49), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (80,20), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (20,30), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (99,0), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (0,49), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (80,20), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (20,30), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.9arg.destpos
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.9arg.destsize
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.canvas
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.self.1
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.self.2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.null
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]
              • Passed
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              • Passed
              # 2d.drawImage.wrongtype
              • Passed
              • Passed
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Invalid argument.
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]
              • Passed
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Type error
              # 2d.drawImage.floatsource
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.zerosource
              • Passed
              • Passed
              • Passed
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 10, 10, 0, 1, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 10, 10, 1, 0, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 10, 10, 0, 0, 0, 0, 100, 50)
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.negativesource
              • Passed
              • Passed
              • Passed
              • Aborted with exception: Index or size is negative or greater than the allowed amount
              • Aborted with exception: INDEX_SIZE_ERR
              • Passed
              • Passed
              # 2d.drawImage.negativedest
              • Passed
              • Passed
              • Passed
              • Aborted with exception: Index or size is negative or greater than the allowed amount
              • Aborted with exception: INDEX_SIZE_ERR
              • Passed
              • Passed
              # 2d.drawImage.negativedir
              • Passed
              • Passed
              • Passed
              • Aborted with exception: Index or size is negative or greater than the allowed amount
              • Aborted with exception: INDEX_SIZE_ERR
              • Passed
              • Passed
              # 2d.drawImage.outsidesource
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), -0.001, 0, 100, 50, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 0, -0.001, 100, 50, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 0, 0, 100.001, 50, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 0, 0, 100, 50.001, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 50, 0, 50.001, 50, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 0, 0, -5, 5, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 0, 0, 5, -5, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 110, 60, -20, -20, 0, 0, 100, 50)
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,0,255] +/- 2
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), -0.001, 0, 100, 50, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 0, -0.001, 100, 50, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 0, 0, 100.001, 50, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 0, 0, 100, 50.001, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 50, 0, 50.001, 50, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 0, 0, -5, 5, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 0, 0, 5, -5, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 110, 60, -20, -20, 0, 0, 100, 50)
              • Failed assertion: got pixel [0,0,0,0] at (50,25), expected [0,255,0,255] +/- 2
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 50, 0, 50.001, 50, 0, 0, 100, 50)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.drawImage(document.getElementById('red.png'), 110, 60, -20, -20, 0, 0, 100, 50)
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255] +/- 2
              • Aborted with exception: Index or size is negative or greater than the allowed amount
              • Aborted with exception: INDEX_SIZE_ERR
              • Passed
              • Passed
              # 2d.drawImage.incomplete
              • Passed
              • Passed
              • Passed
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              # 2d.drawImage.broken
              • Passed
              • Passed
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Aborted with exception: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              • Failed assertion img.complete === false (got true[boolean], expected false[boolean])
              # 2d.drawImage.zerocanvas
              • Passed
              • Passed
              • Passed
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.drawImage(canvas2, 0, 0)
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.drawImage(canvas2, 0, 0)
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.drawImage(canvas2, 0, 0)
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.drawImage(canvas2, 0, 0)
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.drawImage(canvas2, 0, 0)
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.drawImage(canvas2, 0, 0)
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.drawImage(canvas2, 0, 0)
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.drawImage(canvas2, 0, 0)
              • Failed assertion: should throw exception of type INVALID_STATE_ERR: ctx.drawImage(canvas2, 0, 0)
              • Passed
              # 2d.drawImage.animated.gif
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.animated.apng
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.animated.poster
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              # 2d.drawImage.path
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.transform
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.alpha
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.clip
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.composite
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.nowrap
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.drawImage.nonfinite
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Aborted with exception: INDEX_SIZE_ERR: DOM Exception 1
              • Passed
              # 2d.imageData.create2.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.create1.basic
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Aborted with exception: NOT_SUPPORTED_ERR: DOM Exception 9
              • Passed
              # 2d.imageData.create2.type
              • Failed assertion window.ImageData !== undefined (got [undefined], expected not [undefined])
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: 'window.ImageData.prototype' is null or not an object
              • Failed assertion window.ImageData !== undefined (got [undefined], expected not [undefined])
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: 'window.ImageData.prototype' is null or not an object
              • Passed
              • Failed assertion window.ImageData !== undefined (got [undefined], expected not [undefined])
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: window.ImageData is undefined
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: Cannot convert 'window.CanvasPixelArray' to object
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: Result of expression 'window.CanvasPixelArray' [undefined] is not an object.
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: Cannot read property 'prototype' of undefined
              # 2d.imageData.create1.type
              • Failed assertion window.ImageData !== undefined (got [undefined], expected not [undefined])
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: 'window.ImageData.prototype' is null or not an object
              • Failed assertion window.ImageData !== undefined (got [undefined], expected not [undefined])
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: 'window.ImageData.prototype' is null or not an object
              • Passed
              • Failed assertion window.ImageData !== undefined (got [undefined], expected not [undefined])
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: window.ImageData is undefined
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: Cannot convert 'window.CanvasPixelArray' to object
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: Result of expression 'window.CanvasPixelArray' [undefined] is not an object.
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: Cannot read property 'prototype' of undefined
              # 2d.imageData.create2.initial
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.create1.initial
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Aborted with exception: NOT_SUPPORTED_ERR: DOM Exception 9
              • Passed
              # 2d.imageData.create2.large
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.create2.tiny
              • Passed
              • Passed
              • Passed
              • Aborted with exception: Index or size is negative or greater than the allowed amount
              • Passed
              • Passed
              • Passed
              # 2d.imageData.create2.negative
              • Passed
              • Passed
              • Passed
              • Aborted with exception: Index or size is negative or greater than the allowed amount
              • Passed
              • Failed assertion imgdata1.data.length == imgdata2.data.length (got 800[number], expected 4[number])
              • Passed
              # 2d.imageData.create2.zero
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.createImageData(10, 0)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.createImageData(0, 10)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.createImageData(0, 0)
              • Passed
              # 2d.imageData.create2.nonfinite
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.imageData.create1.zero
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: WRONG_ARGUMENTS_ERR
              • Passed
              • Passed
              # 2d.imageData.create2.round
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion imgdata1.width == imgdata2.width (got 11[number], expected 10[number])
              • Failed assertion imgdata1.height == imgdata2.height (got 11[number], expected 10[number])
              • Passed
              • Passed
              # 2d.imageData.get.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.get.type
              • Failed assertion window.ImageData !== undefined (got [undefined], expected not [undefined])
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: 'window.ImageData.prototype' is null or not an object
              • Failed assertion window.ImageData !== undefined (got [undefined], expected not [undefined])
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: 'window.ImageData.prototype' is null or not an object
              • Passed
              • Failed assertion window.ImageData !== undefined (got [undefined], expected not [undefined])
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: window.ImageData is undefined
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: Cannot convert 'window.CanvasPixelArray' to object
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: Result of expression 'window.CanvasPixelArray' [undefined] is not an object.
              • Failed assertion window.CanvasPixelArray !== undefined (got [undefined], expected not [undefined])
              • Aborted with exception: Cannot read property 'prototype' of undefined
              # 2d.imageData.get.zero
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type INDEX_SIZE_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type INDEX_SIZE_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type INDEX_SIZE_ERR, got: An invalid or illegal string was specified
              • Passed
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.getImageData(1, 1, 10, 0)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.getImageData(1, 1, 0, 10)
              • Failed assertion: should throw exception of type INDEX_SIZE_ERR: ctx.getImageData(1, 1, 0, 0)
              • Passed
              # 2d.imageData.get.nonfinite
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Passed
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(Infinity, 10, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(-Infinity, 10, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(NaN, 10, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, Infinity, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, -Infinity, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, NaN, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, 10, Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, 10, -Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, 10, NaN, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, 10, 10, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, 10, 10, -Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, 10, 10, NaN)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(Infinity, Infinity, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(Infinity, Infinity, Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(Infinity, Infinity, Infinity, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(Infinity, Infinity, 10, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(Infinity, 10, Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(Infinity, 10, Infinity, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(Infinity, 10, 10, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, Infinity, Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, Infinity, Infinity, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, Infinity, 10, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.getImageData(10, 10, Infinity, Infinity)
              • Passed
              # 2d.imageData.get.source.outside
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Passed
              • Passed
              • Passed
              # 2d.imageData.get.source.negative
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Aborted with exception: INDEX_SIZE_ERR
              • Failed assertion imgdata1.data["0"] === 255 (got 0[number], expected 255[number])
              • Failed assertion imgdata1.data["1"] === 255 (got 0[number], expected 255[number])
              • Failed assertion imgdata1.data["2"] === 255 (got 0[number], expected 255[number])
              • Failed assertion imgdata2.data["3"] === 0 (got 255[number], expected 0[number])
              • Passed
              # 2d.imageData.get.source.size
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.get.tiny
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Aborted with exception: INDEX_SIZE_ERR
              • Passed
              • Passed
              # 2d.imageData.get.nonpremul
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.get.range
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.get.clamp
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.get.length
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.get.order.cols
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.get.order.rows
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.get.order.rgb
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.get.order.alpha
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.get.unaffected
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.object.properties
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.object.readonly
              • Failed assertion imgdata.width === w (got 123[number], expected 10[number])
              • Failed assertion imgdata.height === h (got 123[number], expected 10[number])
              • Failed assertion imgdata.data === d (got 100,100,100,100[object], expected 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0[object])
              • Failed assertion imgdata.data["0"] === 0 (got 100[number], expected 0[number])
              • Failed assertion imgdata.data["1"] === 0 (got 100[number], expected 0[number])
              • Failed assertion imgdata.data["2"] === 0 (got 100[number], expected 0[number])
              • Failed assertion imgdata.data["3"] === 0 (got 100[number], expected 0[number])
              • Failed assertion imgdata.width === w (got 123[number], expected 10[number])
              • Failed assertion imgdata.height === h (got 123[number], expected 10[number])
              • Failed assertion imgdata.data === d (got 100,100,100,100[object], expected 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0[object])
              • Failed assertion imgdata.data["0"] === 0 (got 100[number], expected 0[number])
              • Failed assertion imgdata.data["1"] === 0 (got 100[number], expected 0[number])
              • Failed assertion imgdata.data["2"] === 0 (got 100[number], expected 0[number])
              • Failed assertion imgdata.data["3"] === 0 (got 100[number], expected 0[number])
              • Aborted with exception: Assignment to read-only field or property
              • Failed assertion imgdata.width === w (got 123[number], expected 10[number])
              • Failed assertion imgdata.height === h (got 123[number], expected 10[number])
              • Failed assertion imgdata.data === d (got 100,100,100,100[object], expected 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0[object])
              • Failed assertion imgdata.data["0"] === 0 (got 100[number], expected 0[number])
              • Failed assertion imgdata.data["1"] === 0 (got 100[number], expected 0[number])
              • Failed assertion imgdata.data["2"] === 0 (got 100[number], expected 0[number])
              • Failed assertion imgdata.data["3"] === 0 (got 100[number], expected 0[number])
              • Passed
              • Passed
              • Passed
              # 2d.imageData.object.ctor
              • Failed assertion window.ImageData !== undefined (got [undefined], expected not [undefined])
              • Failed assertion window.ImageData !== undefined (got [undefined], expected not [undefined])
              • Passed
              • Failed assertion window.ImageData !== undefined (got [undefined], expected not [undefined])
              • Failed assertion: should throw exception: new window.ImageData(1,1)
              • Passed
              • Passed
              # 2d.imageData.object.set
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.object.undefined
              • Failed assertion imgdata.data["0"] === 0 (got [undefined], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got [undefined], expected 0[number])
              • Passed
              • Failed assertion imgdata.data["0"] === 0 (got [undefined], expected 0[number])
              • Passed
              • Passed
              • Passed
              # 2d.imageData.object.nan
              • Failed assertion imgdata.data["0"] === 0 (got NaN[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got cheese[string], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got NaN[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got cheese[string], expected 0[number])
              • Passed
              • Failed assertion imgdata.data["0"] === 0 (got NaN[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got cheese[string], expected 0[number])
              • Passed
              • Passed
              • Passed
              # 2d.imageData.object.string
              • Failed assertion imgdata.data["0"] === 110 (got 110[string], expected 110[number])
              • Failed assertion imgdata.data["0"] === 120 (got 0x78[string], expected 120[number])
              • Failed assertion imgdata.data["0"] === 130 (got +130e0 [string], expected 130[number])
              • Failed assertion imgdata.data["0"] === 110 (got 110[string], expected 110[number])
              • Failed assertion imgdata.data["0"] === 120 (got 0x78[string], expected 120[number])
              • Failed assertion imgdata.data["0"] === 130 (got +130e0 [string], expected 130[number])
              • Passed
              • Failed assertion imgdata.data["0"] === 110 (got 110[string], expected 110[number])
              • Failed assertion imgdata.data["0"] === 120 (got 0x78[string], expected 120[number])
              • Failed assertion imgdata.data["0"] === 130 (got +130e0 [string], expected 130[number])
              • Passed
              • Passed
              • Passed
              # 2d.imageData.object.wrap
              • Failed assertion imgdata.data["0"] === 44 (got 300[number], expected 44[number])
              • Failed assertion imgdata.data["0"] === 156 (got -100[number], expected 156[number])
              • Failed assertion imgdata.data["0"] === 200 (got 4294967496[number], expected 200[number])
              • Failed assertion imgdata.data["0"] === 56 (got -4294967496[number], expected 56[number])
              • Failed assertion imgdata.data["0"] === 0 (got -Infinity[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got Infinity[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 44 (got 300[number], expected 44[number])
              • Failed assertion imgdata.data["0"] === 156 (got -100[number], expected 156[number])
              • Failed assertion imgdata.data["0"] === 200 (got 4294967496[number], expected 200[number])
              • Failed assertion imgdata.data["0"] === 56 (got -4294967496[number], expected 56[number])
              • Failed assertion imgdata.data["0"] === 0 (got -Infinity[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got Infinity[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 44 (got 255[number], expected 44[number])
              • Failed assertion imgdata.data["0"] === 156 (got 0[number], expected 156[number])
              • Failed assertion imgdata.data["0"] === 200 (got 255[number], expected 200[number])
              • Failed assertion imgdata.data["0"] === 56 (got 0[number], expected 56[number])
              • Failed assertion imgdata.data["0"] === 0 (got 255[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 44 (got 300[number], expected 44[number])
              • Failed assertion imgdata.data["0"] === 156 (got -100[number], expected 156[number])
              • Failed assertion imgdata.data["0"] === 200 (got 4294967496[number], expected 200[number])
              • Failed assertion imgdata.data["0"] === 56 (got -4294967496[number], expected 56[number])
              • Failed assertion imgdata.data["0"] === 0 (got -Infinity[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got Infinity[number], expected 0[number])
              • Passed
              • Failed assertion imgdata.data["0"] === 44 (got 255[number], expected 44[number])
              • Failed assertion imgdata.data["0"] === 156 (got 0[number], expected 156[number])
              • Failed assertion imgdata.data["0"] === 200 (got 255[number], expected 200[number])
              • Failed assertion imgdata.data["0"] === 56 (got 0[number], expected 56[number])
              • Failed assertion imgdata.data["0"] === 0 (got 255[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 44 (got 255[number], expected 44[number])
              • Failed assertion imgdata.data["0"] === 156 (got 0[number], expected 156[number])
              • Failed assertion imgdata.data["0"] === 200 (got 255[number], expected 200[number])
              • Failed assertion imgdata.data["0"] === 56 (got 0[number], expected 56[number])
              • Failed assertion imgdata.data["0"] === 0 (got 255[number], expected 0[number])
              # 2d.imageData.object.round
              • Failed assertion imgdata.data["0"] === 0 (got 0.499[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got 0.5[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got 0.501[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 1 (got 1.499[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 1 (got 1.5[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 1 (got 1.501[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 2 (got 2.5[number], expected 2[number])
              • Failed assertion imgdata.data["0"] === 3 (got 3.5[number], expected 3[number])
              • Failed assertion imgdata.data["0"] === 252 (got 252.5[number], expected 252[number])
              • Failed assertion imgdata.data["0"] === 253 (got 253.5[number], expected 253[number])
              • Failed assertion imgdata.data["0"] === 254 (got 254.5[number], expected 254[number])
              • Failed assertion imgdata.data["0"] === 0 (got 256.5[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got -0.5[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 255 (got -1.5[number], expected 255[number])
              • Failed assertion imgdata.data["0"] === 0 (got 0.499[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got 0.5[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got 0.501[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 1 (got 1.499[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 1 (got 1.5[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 1 (got 1.501[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 2 (got 2.5[number], expected 2[number])
              • Failed assertion imgdata.data["0"] === 3 (got 3.5[number], expected 3[number])
              • Failed assertion imgdata.data["0"] === 252 (got 252.5[number], expected 252[number])
              • Failed assertion imgdata.data["0"] === 253 (got 253.5[number], expected 253[number])
              • Failed assertion imgdata.data["0"] === 254 (got 254.5[number], expected 254[number])
              • Failed assertion imgdata.data["0"] === 0 (got 256.5[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got -0.5[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 255 (got -1.5[number], expected 255[number])
              • Failed assertion imgdata.data["0"] === 0 (got 1[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got 1[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 1 (got 2[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 1 (got 2[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 2 (got 3[number], expected 2[number])
              • Failed assertion imgdata.data["0"] === 3 (got 4[number], expected 3[number])
              • Failed assertion imgdata.data["0"] === 252 (got 253[number], expected 252[number])
              • Failed assertion imgdata.data["0"] === 253 (got 254[number], expected 253[number])
              • Failed assertion imgdata.data["0"] === 254 (got 255[number], expected 254[number])
              • Failed assertion imgdata.data["0"] === 0 (got 255[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 255 (got 0[number], expected 255[number])
              • Failed assertion imgdata.data["0"] === 0 (got 0.499[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got 0.5[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got 0.501[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 1 (got 1.499[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 1 (got 1.5[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 1 (got 1.501[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 2 (got 2.5[number], expected 2[number])
              • Failed assertion imgdata.data["0"] === 3 (got 3.5[number], expected 3[number])
              • Failed assertion imgdata.data["0"] === 252 (got 252.5[number], expected 252[number])
              • Failed assertion imgdata.data["0"] === 253 (got 253.5[number], expected 253[number])
              • Failed assertion imgdata.data["0"] === 254 (got 254.5[number], expected 254[number])
              • Failed assertion imgdata.data["0"] === 0 (got 256.5[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got -0.5[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 255 (got -1.5[number], expected 255[number])
              • Passed
              • Failed assertion imgdata.data["0"] === 0 (got 1[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got 1[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 1 (got 2[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 1 (got 2[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 2 (got 3[number], expected 2[number])
              • Failed assertion imgdata.data["0"] === 3 (got 4[number], expected 3[number])
              • Failed assertion imgdata.data["0"] === 252 (got 253[number], expected 252[number])
              • Failed assertion imgdata.data["0"] === 253 (got 254[number], expected 253[number])
              • Failed assertion imgdata.data["0"] === 254 (got 255[number], expected 254[number])
              • Failed assertion imgdata.data["0"] === 0 (got 255[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 255 (got 0[number], expected 255[number])
              • Failed assertion imgdata.data["0"] === 0 (got 1[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 0 (got 1[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 1 (got 2[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 1 (got 2[number], expected 1[number])
              • Failed assertion imgdata.data["0"] === 2 (got 3[number], expected 2[number])
              • Failed assertion imgdata.data["0"] === 3 (got 4[number], expected 3[number])
              • Failed assertion imgdata.data["0"] === 252 (got 253[number], expected 252[number])
              • Failed assertion imgdata.data["0"] === 253 (got 254[number], expected 253[number])
              • Failed assertion imgdata.data["0"] === 254 (got 255[number], expected 254[number])
              • Failed assertion imgdata.data["0"] === 0 (got 255[number], expected 0[number])
              • Failed assertion imgdata.data["0"] === 255 (got 0[number], expected 255[number])
              # 2d.imageData.put.null
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: WRONG_ARGUMENTS_ERR
              • Passed
              • Passed
              # 2d.imageData.put.nonfinite
              • Passed
              • Passed
              • Passed
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, 10, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, -Infinity, 10, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, NaN, 10, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, Infinity, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, -Infinity, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, NaN, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, -Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, NaN, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, 10, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, 10, -Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, 10, NaN)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: An invalid or illegal string was specified
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, Infinity, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, Infinity, Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, Infinity, Infinity, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, Infinity, 10, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, 10, Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, 10, Infinity, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, 10, 10, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, Infinity, Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, Infinity, Infinity, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, Infinity, 10, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, Infinity, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, 10, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, -Infinity, 10, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, NaN, 10, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, Infinity, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, -Infinity, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, NaN, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, -Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, NaN, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, 10, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, 10, -Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, 10, NaN)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, Infinity, 10, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, Infinity, Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, Infinity, Infinity, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, Infinity, 10, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, 10, Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, 10, Infinity, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, Infinity, 10, 10, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, Infinity, Infinity, 10)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, Infinity, Infinity, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, Infinity, 10, Infinity)
              • Failed assertion: should throw exception of type NOT_SUPPORTED_ERR: ctx.putImageData(imgdata, 10, 10, 10, 10, Infinity, Infinity)
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Failed assertion: expected exception of type NOT_SUPPORTED_ERR, got: INDEX_SIZE_ERR: DOM Exception 1
              • Passed
              # 2d.imageData.put.basic
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.put.created
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.put.wrongtype
              • Passed
              • Passed
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: Invalid argument.
              • Failed assertion: should throw exception of type TYPE_MISMATCH_ERR: ctx.putImageData(imgdata, 0, 0)
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: An invalid or illegal string was specified
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: An invalid or illegal string was specified
              • Failed assertion: should throw exception of type TYPE_MISMATCH_ERR: ctx.putImageData(imgdata, 0, 0)
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: WRONG_ARGUMENTS_ERR
              • Failed assertion: expected exception of type TYPE_MISMATCH_ERR, got: WRONG_ARGUMENTS_ERR
              • Passed
              • Passed
              # 2d.imageData.put.cross
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.put.alpha
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.put.modified
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.put.dirty.zero
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              # 2d.imageData.put.dirty.rect1
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Failed assertion: got pixel [255,0,0,255] at (65,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (50,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              # 2d.imageData.put.dirty.rect2
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Failed assertion: got pixel [255,0,0,255] at (35,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (65,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (50,15), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              # 2d.imageData.put.dirty.negative
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Failed assertion: got pixel [255,0,0,255] at (65,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (50,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              # 2d.imageData.put.dirty.outside
              • Passed
              • Passed
              • Passed
              • Aborted with exception: An invalid or illegal string was specified
              • Failed assertion: got pixel [255,0,0,255] at (50,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (98,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (98,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (1,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (1,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              # 2d.imageData.put.unchanged
              • Failed assertion olddata["653"] === imgdata2.data["653"] (got 243[number], expected 242[number])
              • Failed assertion olddata["665"] === imgdata2.data["665"] (got 248[number], expected 247[number])
              • Failed assertion olddata["673"] === imgdata2.data["673"] (got 251[number], expected 250[number])
              • Failed assertion olddata["694"] === imgdata2.data["694"] (got 189[number], expected 188[number])
              • Failed assertion olddata["708"] === imgdata2.data["708"] (got 176[number], expected 175[number])
              • Failed assertion olddata["728"] === imgdata2.data["728"] (got 181[number], expected 180[number])
              • Failed assertion olddata["734"] === imgdata2.data["734"] (got 166[number], expected 165[number])
              • Failed assertion olddata["746"] === imgdata2.data["746"] (got 236[number], expected 235[number])
              • Failed assertion olddata["808"] === imgdata2.data["808"] (got 201[number], expected 200[number])
              • Failed assertion olddata["810"] === imgdata2.data["810"] (got 97[number], expected 96[number])
              • Failed assertion olddata["828"] === imgdata2.data["828"] (got 206[number], expected 205[number])
              • Failed assertion olddata["834"] === imgdata2.data["834"] (got 237[number], expected 236[number])
              • Failed assertion olddata["844"] === imgdata2.data["844"] (got 209[number], expected 208[number])
              • Failed assertion olddata["852"] === imgdata2.data["852"] (got 212[number], expected 211[number])
              • Failed assertion olddata["864"] === imgdata2.data["864"] (got 215[number], expected 214[number])
              • Failed assertion olddata["865"] === imgdata2.data["865"] (got 67[number], expected 66[number])
              • Failed assertion olddata["874"] === imgdata2.data["874"] (got 214[number], expected 213[number])
              • Failed assertion olddata["876"] === imgdata2.data["876"] (got 218[number], expected 217[number])
              • Failed assertion olddata["908"] === imgdata2.data["908"] (got 226[number], expected 225[number])
              • Failed assertion olddata["918"] === imgdata2.data["918"] (got 214[number], expected 213[number])
              • Failed assertion olddata["924"] === imgdata2.data["924"] (got 230[number], expected 229[number])
              • Failed assertion olddata["928"] === imgdata2.data["928"] (got 231[number], expected 230[number])
              • Failed assertion olddata["929"] === imgdata2.data["929"] (got 91[number], expected 90[number])
              • Failed assertion olddata["940"] === imgdata2.data["940"] (got 233[number], expected 232[number])
              • Failed assertion olddata["945"] === imgdata2.data["945"] (got 97[number], expected 96[number])
              • Failed assertion olddata["948"] === imgdata2.data["948"] (got 236[number], expected 235[number])
              • Failed assertion olddata["952"] === imgdata2.data["952"] (got 237[number], expected 236[number])
              • Failed assertion olddata["968"] === imgdata2.data["968"] (got 240[number], expected 239[number])
              • Failed assertion olddata["980"] === imgdata2.data["980"] (got 244[number], expected 243[number])
              • Failed assertion olddata["984"] === imgdata2.data["984"] (got 245[number], expected 244[number])
              • Failed assertion olddata["988"] === imgdata2.data["988"] (got 246[number], expected 245[number])
              • Failed assertion olddata["992"] === imgdata2.data["992"] (got 247[number], expected 246[number])
              • Failed assertion olddata["993"] === imgdata2.data["993"] (got 115[number], expected 114[number])
              • Failed assertion olddata["994"] === imgdata2.data["994"] (got 145[number], expected 144[number])
              • Failed assertion olddata["998"] === imgdata2.data["998"] (got 168[number], expected 167[number])
              • Failed assertion olddata["1002"] === imgdata2.data["1002"] (got 192[number], expected 191[number])
              • Failed assertion olddata["653"] === imgdata2.data["653"] (got 243[number], expected 242[number])
              • Failed assertion olddata["665"] === imgdata2.data["665"] (got 248[number], expected 247[number])
              • Failed assertion olddata["673"] === imgdata2.data["673"] (got 251[number], expected 250[number])
              • Failed assertion olddata["694"] === imgdata2.data["694"] (got 189[number], expected 188[number])
              • Failed assertion olddata["708"] === imgdata2.data["708"] (got 176[number], expected 175[number])
              • Failed assertion olddata["728"] === imgdata2.data["728"] (got 181[number], expected 180[number])
              • Failed assertion olddata["734"] === imgdata2.data["734"] (got 166[number], expected 165[number])
              • Failed assertion olddata["746"] === imgdata2.data["746"] (got 236[number], expected 235[number])
              • Failed assertion olddata["808"] === imgdata2.data["808"] (got 201[number], expected 200[number])
              • Failed assertion olddata["810"] === imgdata2.data["810"] (got 97[number], expected 96[number])
              • Failed assertion olddata["828"] === imgdata2.data["828"] (got 206[number], expected 205[number])
              • Failed assertion olddata["834"] === imgdata2.data["834"] (got 237[number], expected 236[number])
              • Failed assertion olddata["844"] === imgdata2.data["844"] (got 209[number], expected 208[number])
              • Failed assertion olddata["852"] === imgdata2.data["852"] (got 212[number], expected 211[number])
              • Failed assertion olddata["864"] === imgdata2.data["864"] (got 215[number], expected 214[number])
              • Failed assertion olddata["865"] === imgdata2.data["865"] (got 67[number], expected 66[number])
              • Failed assertion olddata["874"] === imgdata2.data["874"] (got 214[number], expected 213[number])
              • Failed assertion olddata["876"] === imgdata2.data["876"] (got 218[number], expected 217[number])
              • Failed assertion olddata["908"] === imgdata2.data["908"] (got 226[number], expected 225[number])
              • Failed assertion olddata["918"] === imgdata2.data["918"] (got 214[number], expected 213[number])
              • Failed assertion olddata["924"] === imgdata2.data["924"] (got 230[number], expected 229[number])
              • Failed assertion olddata["928"] === imgdata2.data["928"] (got 231[number], expected 230[number])
              • Failed assertion olddata["929"] === imgdata2.data["929"] (got 91[number], expected 90[number])
              • Failed assertion olddata["940"] === imgdata2.data["940"] (got 233[number], expected 232[number])
              • Failed assertion olddata["945"] === imgdata2.data["945"] (got 97[number], expected 96[number])
              • Failed assertion olddata["948"] === imgdata2.data["948"] (got 236[number], expected 235[number])
              • Failed assertion olddata["952"] === imgdata2.data["952"] (got 237[number], expected 236[number])
              • Failed assertion olddata["968"] === imgdata2.data["968"] (got 240[number], expected 239[number])
              • Failed assertion olddata["980"] === imgdata2.data["980"] (got 244[number], expected 243[number])
              • Failed assertion olddata["984"] === imgdata2.data["984"] (got 245[number], expected 244[number])
              • Failed assertion olddata["988"] === imgdata2.data["988"] (got 246[number], expected 245[number])
              • Failed assertion olddata["992"] === imgdata2.data["992"] (got 247[number], expected 246[number])
              • Failed assertion olddata["993"] === imgdata2.data["993"] (got 115[number], expected 114[number])
              • Failed assertion olddata["994"] === imgdata2.data["994"] (got 145[number], expected 144[number])
              • Failed assertion olddata["998"] === imgdata2.data["998"] (got 168[number], expected 167[number])
              • Failed assertion olddata["1002"] === imgdata2.data["1002"] (got 192[number], expected 191[number])
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.put.unaffected
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.put.clip
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.imageData.put.path
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.font.parse.basic
              • Failed assertion ctx.font === '20px serif' (got 20PX SERIF[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 20PX SERIF[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 20px SERIF[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 20PX SERIF[string], expected 20px serif[string])
              • Passed
              • Failed assertion ctx.font === '20px serif' (got 20PX SERIF[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 20PX SERIF[string], expected 20px serif[string])
              # 2d.text.font.parse.complex
              • Failed assertion ctx.font === 'italic small-caps 12px "Unknown Font", sans-serif' (got small-caps italic 400 12px/2 Unknown Font, sans-serif[string], expected italic small-caps 12px "Unknown Font", sans-serif[string])
              • Failed assertion ctx.font === 'italic small-caps 12px "Unknown Font", sans-serif' (got small-caps italic 400 12px/2 Unknown Font, sans-serif[string], expected italic small-caps 12px "Unknown Font", sans-serif[string])
              • Failed assertion ctx.font === 'italic small-caps 12px "Unknown Font", sans-serif' (got italic small-caps 12px Unknown Font, sans-serif[string], expected italic small-caps 12px "Unknown Font", sans-serif[string])
              • Failed assertion ctx.font === 'italic small-caps 12px "Unknown Font", sans-serif' (got small-caps italic 400 12px/2 Unknown Font, sans-serif[string], expected italic small-caps 12px "Unknown Font", sans-serif[string])
              • Passed
              • Failed assertion ctx.font === 'italic small-caps 12px "Unknown Font", sans-serif' (got small-caps italic 400 12px/2 Unknown Font, sans-serif[string], expected italic small-caps 12px "Unknown Font", sans-serif[string])
              • Failed assertion ctx.font === 'italic small-caps 12px "Unknown Font", sans-serif' (got small-caps italic 400 12px/2 Unknown Font, sans-serif[string], expected italic small-caps 12px "Unknown Font", sans-serif[string])
              # 2d.text.font.parse.size.percentage
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              • Failed assertion ctx.font === '72px serif' (got 50% serif[string], expected 72px serif[string])
              # 2d.text.font.parse.size.percentage.default
              • Aborted with exception: Object doesn't support this property or method
              • Aborted with exception: Object doesn't support this property or method
              • Failed assertion ctx.font === '100px serif' (got 1000% serif[string], expected 100px serif[string])
              • Failed assertion ctx.font === '100px serif' (got 1000% serif[string], expected 100px serif[string])
              • Failed assertion ctx.font === '100px serif' (got 1000% serif[string], expected 100px serif[string])
              • Failed assertion ctx.font === '100px serif' (got 1000% serif[string], expected 100px serif[string])
              • Failed assertion ctx.font === '100px serif' (got 1000% serif[string], expected 100px serif[string])
              # 2d.text.font.parse.system
              • Failed assertion ctx.font !== 'message-box' (got message-box[string], expected not message-box[string])
              • Failed assertion ctx.font !== 'message-box' (got message-box[string], expected not message-box[string])
              • Failed assertion ctx.font !== 'message-box' (got message-box[string], expected not message-box[string])
              • Failed assertion ctx.font !== 'message-box' (got message-box[string], expected not message-box[string])
              • Failed assertion ctx.font !== 'message-box' (got message-box[string], expected not message-box[string])
              • Failed assertion ctx.font !== 'message-box' (got message-box[string], expected not message-box[string])
              • Failed assertion ctx.font !== 'message-box' (got message-box[string], expected not message-box[string])
              # 2d.text.font.parse.invalid
              • Failed assertion ctx.font === '20px serif' (got bogus[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got inherit[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px {bogus}[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px initial[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px default[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px inherit[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got bogus[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got inherit[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px {bogus}[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px initial[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px default[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px inherit[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px default[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got bogus[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got inherit[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px {bogus}[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px initial[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px default[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px inherit[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px "initial"[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px "default"[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got inherit[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px initial[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px default[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px inherit[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got inherit[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px initial[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px default[string], expected 20px serif[string])
              • Failed assertion ctx.font === '20px serif' (got 10px inherit[string], expected 20px serif[string])
              # 2d.text.font.default
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.align.valid
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.align.invalid
              • Failed assertion ctx.textAlign === 'start' (got bogus[string], expected start[string])
              • Failed assertion ctx.textAlign === 'start' (got END[string], expected start[string])
              • Failed assertion ctx.textAlign === 'start' (got end [string], expected start[string])
              • Failed assertion ctx.textAlign === 'start' (got end
              • Passed
              • Failed assertion ctx.textAlign === 'start' (got end[string], expected start[string])
              • Aborted with exception: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMCanvasRenderingContext2D.textAlign]
              • Failed assertion ctx.textAlign === 'start' (got end[string], expected start[string])
              • Passed
              • Passed
              # 2d.text.align.default
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.baseline.valid
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.baseline.invalid
              • Failed assertion ctx.textBaseline === 'top' (got bogus[string], expected top[string])
              • Failed assertion ctx.textBaseline === 'top' (got MIDDLE[string], expected top[string])
              • Failed assertion ctx.textBaseline === 'top' (got middle [string], expected top[string])
              • Failed assertion ctx.textBaseline === 'top' (got middle
              • Passed
              • Failed assertion ctx.textBaseline === 'top' (got middle[string], expected top[string])
              • Aborted with exception: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMCanvasRenderingContext2D.textBaseline]
              • Failed assertion ctx.textBaseline === 'top' (got middle[string], expected top[string])
              • Passed
              • Passed
              # 2d.text.baseline.default
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.draw.fill.basic
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              # 2d.text.draw.fill.unaffected
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.draw.fill.rtl
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              # 2d.text.draw.fill.maxWidth.large
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              # 2d.text.draw.fill.maxWidth.small
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              # 2d.text.draw.fill.maxWidth.zero
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              # 2d.text.draw.stroke.basic
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              # 2d.text.draw.stroke.unaffected
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.draw.kern.consistent
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              • Cannot automatically verify result
              # 2d.text.draw.fill.maxWidth.fontface
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              # 2d.text.draw.fill.maxWidth.bound
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.draw.fontface
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.draw.fontface.repeat
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Passed
              # 2d.text.draw.fontface.notinpage
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              # 2d.text.draw.baseline.top
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              # 2d.text.draw.baseline.bottom
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              # 2d.text.draw.baseline.middle
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              # 2d.text.draw.baseline.alphabetic
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.draw.baseline.ideographic
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              # 2d.text.draw.baseline.hanging
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              # 2d.text.draw.align.left
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.draw.align.right
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              # 2d.text.draw.align.start.ltr
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.draw.align.start.rtl
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              # 2d.text.draw.align.end.ltr
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              # 2d.text.draw.align.end.rtl
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.draw.align.center
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (5,45), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (95,5), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (95,45), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              # 2d.text.draw.space.basic
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.draw.space.collapse.space
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              # 2d.text.draw.space.collapse.other
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              # 2d.text.draw.space.collapse.nonspace
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Passed
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              # 2d.text.draw.space.collapse.start
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (25,25), expected [0,255,0,255] +/- 2
              # 2d.text.draw.space.collapse.end
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Passed
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              • Failed assertion: got pixel [255,0,0,255] at (75,25), expected [0,255,0,255] +/- 2
              # 2d.text.measure.width.basic
              • Failed assertion ctx.measureText('A').width === 50 (got 32[number], expected 50[number])
              • Failed assertion ctx.measureText('AA').width === 100 (got 64[number], expected 100[number])
              • Failed assertion ctx.measureText('ABCD').width === 200 (got 129[number], expected 200[number])
              • Failed assertion ctx.measureText('A').width === 100 (got 63[number], expected 100[number])
              • Failed assertion ctx.measureText('A').width === 50 (got 32[number], expected 50[number])
              • Failed assertion ctx.measureText('AA').width === 100 (got 64[number], expected 100[number])
              • Failed assertion ctx.measureText('ABCD').width === 200 (got 129[number], expected 200[number])
              • Failed assertion ctx.measureText('A').width === 100 (got 63[number], expected 100[number])
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.measure.width.empty
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              • Passed
              # 2d.text.measure.width.space
              • Failed assertion ctx.measureText('A B').width === 150 (got 79[number], expected 150[number])
              • Failed assertion ctx.measureText('A B').width === 150 (got 94[number], expected 150[number])
              • Failed assertion ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width === 150 (got 229[number], expected 150[number])
              • Failed assertion: ctx.measureText('A \x0b B').width >= 200
              • Failed assertion ctx.measureText(' AB').width === 100 (got 79[number], expected 100[number])
              • Failed assertion ctx.measureText('AB ').width === 100 (got 79[number], expected 100[number])
              • Failed assertion ctx.measureText('A B').width === 150 (got 79[number], expected 150[number])
              • Failed assertion ctx.measureText('A B').width === 150 (got 94[number], expected 150[number])
              • Failed assertion ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width === 150 (got 229[number], expected 150[number])
              • Failed assertion: ctx.measureText('A \x0b B').width >= 200
              • Failed assertion ctx.measureText(' AB').width === 100 (got 79[number], expected 100[number])
              • Failed assertion ctx.measureText('AB ').width === 100 (got 79[number], expected 100[number])
              • Failed assertion ctx.measureText('A B').width === 150 (got 200[number], expected 150[number])
              • Failed assertion ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width === 150 (got 650[number], expected 150[number])
              • Failed assertion ctx.measureText(' AB').width === 100 (got 150[number], expected 100[number])
              • Failed assertion ctx.measureText('AB ').width === 100 (got 150[number], expected 100[number])
              • Failed assertion ctx.measureText('A B').width === 150 (got 200[number], expected 150[number])
              • Failed assertion ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width === 150 (got 650[number], expected 150[number])
              • Failed assertion ctx.measureText(' AB').width === 100 (got 150[number], expected 100[number])
              • Failed assertion ctx.measureText('AB ').width === 100 (got 150[number], expected 100[number])
              • Failed assertion ctx.measureText('A B').width === 150 (got 200[number], expected 150[number])
              • Failed assertion ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width === 150 (got 650[number], expected 150[number])
              • Failed assertion ctx.measureText(' AB').width === 100 (got 150[number], expected 100[number])
              • Failed assertion ctx.measureText('AB ').width === 100 (got 150[number], expected 100[number])
              • Failed assertion ctx.measureText('A B').width === 150 (got 200[number], expected 150[number])
              • Failed assertion ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width === 150 (got 450[number], expected 150[number])
              • Failed assertion ctx.measureText(' AB').width === 100 (got 150[number], expected 100[number])
              • Failed assertion ctx.measureText('AB ').width === 100 (got 150[number], expected 100[number])
              • Failed assertion ctx.measureText('A B').width === 150 (got 200[number], expected 150[number])
              • Failed assertion ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width === 150 (got 450[number], expected 150[number])
              • Failed assertion ctx.measureText(' AB').width === 100 (got 150[number], expected 100[number])
              • Failed assertion ctx.measureText('AB ').width === 100 (got 150[number], expected 100[number])
              Passes 72.1% 78.0% 78.3% 74.0% 84.6% 78.8% 87.4%
              FlashCanvas Pro 1.5 (normal) FlashCanvas Pro 1.5 (strict) IE9 Platform Preview 7 (Windows 7) Firefox 3.6.13 (Windows XP) Opera 11.01 (Windows XP) Safari 5.0.3 (Windows XP) Chrome 9.0.597.84 (Windows XP)