// DO NOT EDIT! This test has been generated by tools/gentest.py.
// OffscreenCanvas test in a worker:2d.imageData.object.properties
// Description:ImageData objects have the right properties
// Note:

importScripts("/resources/testharness.js");
importScripts("/common/canvas-tests.js");

var t = async_test("ImageData objects have the right properties");
t.step(function() {

var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');

var imgdata = ctx.getImageData(0, 0, 10, 10);
_assertSame(typeof(imgdata.width), 'number', "typeof(imgdata.width)", "'number'");
_assertSame(typeof(imgdata.height), 'number', "typeof(imgdata.height)", "'number'");
_assertSame(typeof(imgdata.data), 'object', "typeof(imgdata.data)", "'object'");

t.done();

});
done();
