<!DOCTYPE html>
<html class="test-wait">
<script src="/common/gc.js"></script>
<script type="module">
  const b = new ReadableStream({
    start(c) {
      c.enqueue({}) // the value we will transfer
    },
  })
  const transferred = structuredClone(b, { transfer: [b] })
  // Here we request a read, triggering a message transfer
  transferred.getReader().read()
  // And immediately trigger GC without waiting for the read,
  // causing the actual transfer to be done after GC
  await garbageCollect()
  document.documentElement.classList.remove("test-wait")
</script>
