<!--
onmessage = function(e) {
  var imagedata = e.data;
  imagedata.data[0] = 128;
  postMessage(imagedata);
}

/*
-->
<!doctype html>
<title>structured clone of ImageData</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
(async_test()).step(function() {
  var worker = new Worker('#');
  var ctx = document.createElement('canvas').getContext('2d');
  var imagedata = ctx.getImageData(0, 0, 300, 150);
  worker.postMessage(imagedata);
  worker.onmessage = this.step_func(function(e) {
    assert_equals(''+e.data, '[object ImageData]');
    assert_equals(e.data.data[0], 128);
    this.done();
  });
});
</script>
<!--
*/
//-->
