chromium/third_party/blink/web_tests/fast/canvas/resources/canvas-ImageBitmap-transferable.js

self.onmessage = function(e) {
  // Worker does two things:
  // 1. call createImageBitmap() from the ImageBitmap that is transferred
  // from the main thread, which verifies that createImageBitmap(ImageBitmap)
  // works on the worker thread.
  // 2. send the created ImageBitmap back to the main thread, the
  // main thread exam the property of this ImageBitmap to make sure
  // the transfer between main and worker thread didn't lose data
  createImageBitmap(e.data.data).then(imageBitmap => {
    postMessage({data: imageBitmap}, [imageBitmap]);
  });
};