no-transferring.https.html (1340B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>SharedArrayBuffers cannot be transferred</title> 4 <link rel="help" href="https://html.spec.whatwg.org/#structuredclone"> 5 <link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 9 <script> 10 "use strict"; 11 12 test(() => { 13 const sab = new SharedArrayBuffer(); 14 assert_throws_dom("DataCloneError", () => window.postMessage(sab, "*", [sab])); 15 assert_throws_dom("DataCloneError", () => window.postMessage("test", "*", [sab])); 16 }, "Trying to transfer a SharedArrayBuffer to this window throws"); 17 18 test(() => { 19 const sab = new SharedArrayBuffer(); 20 const worker = new Worker("../resources/echo-worker.js"); 21 assert_throws_dom("DataCloneError", () => worker.postMessage(sab, [sab])); 22 assert_throws_dom("DataCloneError", () => worker.postMessage("test", [sab])); 23 }, "Trying to transfer a SharedArrayBuffer to a worker throws"); 24 25 test(() => { 26 const sab = new SharedArrayBuffer(); 27 const channel = new MessageChannel(); 28 assert_throws_dom("DataCloneError", () => channel.port1.postMessage(sab, [sab])); 29 assert_throws_dom("DataCloneError", () => channel.port1.postMessage("test", [sab])); 30 }, "Trying to transfer a SharedArrayBuffer through a MessagePort throws"); 31 </script>