Bug 1556663 [wpt PR 17159] - Add optional test for cloning of error stacks, a=testonly
[gecko.git] / testing / web-platform / tests / html / infrastructure / safe-passing-of-structured-data / shared-array-buffers / no-transferring.html
blobb39e37fd4966440dc01c2efab42ea99f30574f68
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>
9 <script>
10 "use strict";
12 test(() => {
13 const sab = new SharedArrayBuffer();
14 assert_throws("DataCloneError", () => window.postMessage(sab, "*", [sab]));
15 assert_throws("DataCloneError", () => window.postMessage("test", "*", [sab]));
16 }, "Trying to transfer a SharedArrayBuffer to this window throws");
18 test(() => {
19 const sab = new SharedArrayBuffer();
20 const worker = new Worker("../resources/echo-worker.js");
21 assert_throws("DataCloneError", () => worker.postMessage(sab, [sab]));
22 assert_throws("DataCloneError", () => worker.postMessage("test", [sab]));
23 }, "Trying to transfer a SharedArrayBuffer to a worker throws");
25 test(() => {
26 const sab = new SharedArrayBuffer();
27 const channel = new MessageChannel();
28 assert_throws("DataCloneError", () => channel.port1.postMessage(sab, [sab]));
29 assert_throws("DataCloneError", () => channel.port1.postMessage("test", [sab]));
30 }, "Trying to transfer a SharedArrayBuffer through a MessagePort throws");
31 </script>