tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test-worker-promise-error.html (1059B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4  <title>Worker/Worklet promise error</title>
      5 </head>
      6 <body>
      7 <script>
      8 "use strict";
      9 
     10 // Promise rejection in Worker (via async function)
     11 const workerScript = `
     12 self.onmessage = async () => {
     13  throw "worker-error"
     14 }
     15 `;
     16 const workerScriptUrl = URL.createObjectURL(new Blob([workerScript]));
     17 const worker = new Worker(workerScriptUrl);
     18 worker.postMessage({});
     19 
     20 // Promise rejection in Worklet (via async function)
     21 const workletScript = `
     22 async function throw_process() {
     23  throw "worklet-error";
     24 }
     25 
     26 class ErrorProcessor extends AudioWorkletProcessor {
     27  process() {
     28    throw_process();
     29  }
     30 }
     31 registerProcessor("error", ErrorProcessor);
     32 `;
     33 const workletScriptUrl = URL.createObjectURL(new Blob([workletScript]));
     34 const context = new AudioContext();
     35 context.audioWorklet.addModule(workletScriptUrl).then(() => {
     36  const workletNode = new AudioWorkletNode(context, "error");
     37  const oscillator = new OscillatorNode(context);
     38  oscillator.connect(workletNode);
     39  oscillator.start();
     40  oscillator.stop();
     41 });
     42 </script>
     43 </body>
     44 </html>