tor-browser

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

nested-dynamic-import-worker.js (1081B)


      1 // This script is meant to be imported by a module worker. It receives a
      2 // message from the worker and responds with the list of imported modules.
      3 
      4 const sourcePromise = new Promise(resolve => {
      5  if ('DedicatedWorkerGlobalScope' in self &&
      6      self instanceof DedicatedWorkerGlobalScope) {
      7    self.onmessage = e => {
      8      resolve(e.target);
      9    };
     10  } else if (
     11      'SharedWorkerGlobalScope' in self &&
     12      self instanceof SharedWorkerGlobalScope) {
     13    self.onconnect = e => {
     14      resolve(e.ports[0]);
     15    };
     16  } else if (
     17      'ServiceWorkerGlobalScope' in self &&
     18      self instanceof ServiceWorkerGlobalScope) {
     19    self.onmessage = e => {
     20      resolve(e.source);
     21    };
     22  }
     23 });
     24 
     25 const importedModulesPromise =
     26  import('./export-on-dynamic-import-script.js')
     27    .then(module => module.ready)
     28    .then(importedModules => importedModules)
     29    .catch(error => `Failed to do dynamic import: ${error}`);
     30 
     31 Promise.all([sourcePromise, importedModulesPromise]).then(results => {
     32  const [source, importedModules] = results;
     33  source.postMessage(importedModules);
     34 });