blob: 1b2a756ea2e0b365a56b82aa7e1d08d0753806af [file] [log] [blame]
description("This test ensures that Canvas and CanvasRenderingContext2D work correctly if the rendering context outlives the canvas element");
function dataToArray(data) {
var result = new Array(data.length)
for (var i = 0; i < data.length; i++)
result[i] = data[i];
return result;
}
function getPixel(x, y) {
var data = context.getImageData(x,y,1,1);
if (!data) // getImageData failed, which should never happen
return [-1,-1,-1,-1];
return dataToArray(data.data);
}
function pixelShouldBe(x, y, colour) {
shouldBe("getPixel(" + [x, y] +")", "["+colour+"]");
}
function prepareCanvas() {
var context = document.createElement("canvas").getContext("2d");
context.fillStyle = "green";
context.fillRect(0,0,100,100);
return context;
}
function clobberGC(count) {
for (var i = 0; i < 5000; ++i)
({a: i*i*i*0.5+"str", b: i/Math.sqrt(i)});
if (count > 0)
clobberGC(count-1);
}
function test() {
context = prepareCanvas();
clobberGC(40);
pixelShouldBe(50, 50, [0, 128, 0, 255]);
}
test();