tor-browser

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

audio-worklet-source-phase.js (1228B)


      1 import source modSource from './worker.wasm';
      2 
      3 class AudioProcessor extends AudioWorkletProcessor {
      4  constructor(...args) {
      5    super(...args);
      6    let port = this.port;
      7 
      8    port.onmessage = (e) => {
      9      let staticCheck = false;
     10      let dynamicCheck = false;
     11      const pm =
     12          (x) => {
     13            const message = {
     14              value: x,
     15              staticCheck: staticCheck,
     16              dynamicCheck: dynamicCheck
     17            };
     18            port.postMessage(message);
     19          }
     20 
     21      staticCheck = modSource instanceof WebAssembly.Module;
     22      // `import.source` should fail because dynamic imports aren't supported
     23      // in worklets.
     24      let import_promise = import.source('./execute-start.wasm');
     25      import_promise
     26          .catch((e) => {
     27            dynamicCheck = e instanceof TypeError;
     28          })
     29          .then(() => {
     30            // worker.wasm will call pm with the result, so instantiate this
     31            // after the dynamic check.
     32            WebAssembly.instantiate(
     33                modSource, {'./worker-helper.js': {'pm': pm}});
     34          });
     35    };
     36  }
     37 
     38  process(inputs, outputs, parameters) {
     39    return true;
     40  }
     41 }
     42 
     43 registerProcessor('audio-processor', AudioProcessor);