dedicated.html (1275B)
1 <!doctype html> 2 <title>structured clone to dedicated worker</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src=/common/sab.js></script> 6 <script src=/html/webappapis/structured-clone/structured-clone-battery-of-tests.js></script> 7 <script src=/html/webappapis/structured-clone/structured-clone-battery-of-tests-with-transferables.js></script> 8 <script src=/html/webappapis/structured-clone/structured-clone-battery-of-tests-harness.js></script> 9 <div id=log></div> 10 <script> 11 runStructuredCloneBatteryOfTests({ 12 setup() { 13 const blob = new Blob([` 14 onmessage = ev => postMessage(ev.data, ev.data.transfer); 15 `], {type: 'text/javascript'}); 16 this.blobURL = URL.createObjectURL(blob); 17 this.worker = new Worker(this.blobURL); 18 }, 19 structuredClone(data, transfer) { 20 return new Promise(resolve => { 21 this.worker.addEventListener('message', function f(ev) { 22 this.worker.removeEventListener('message', f); 23 resolve(ev.data.data); 24 }.bind(this)); 25 this.worker.postMessage({data, transfer}, transfer); 26 }); 27 }, 28 teardown() { 29 this.worker.terminate(); 30 URL.revokeObjectURL(this.blobURL); 31 } 32 }); 33 </script>