10LOC

#workers

Web Platformadvanced

Transferable objects with postMessage for zero-copy worker handoff

const { port1, port2 } = new MessageChannel();

port2.onmessage = (event: MessageEvent<ArrayBuffer>) => {
  console.log("received", event.data.byteLength, "bytes, zero-copy");
};

Passing an ArrayBuffer in postMessage's transfer list hands off ownership instead of cloning it — the sender's reference goes to byteLength 0.