tor-browser

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

simpleThread_worker.js (1299B)


      1 /**
      2 * Any copyright is dedicated to the Public Domain.
      3 * http://creativecommons.org/publicdomain/zero/1.0/
      4 */
      5 "use strict";
      6 
      7 function messageListener(event) {
      8  var exception;
      9  try {
     10    event.bubbles = true;
     11  } catch (e) {
     12    exception = e;
     13  }
     14 
     15  if (!(exception instanceof TypeError)) {
     16    throw exception;
     17  }
     18 
     19  switch (event.data) {
     20    case "no-op":
     21      break;
     22    case "components":
     23      postMessage(Components.toString());
     24      break;
     25    case "start":
     26      for (var i = 0; i < 1000; i++) {}
     27      postMessage("started");
     28      break;
     29    case "stop":
     30      self.postMessage("no-op");
     31      postMessage("stopped");
     32      self.removeEventListener("message", messageListener);
     33      break;
     34    default:
     35      throw "Bad message: " + event.data;
     36  }
     37 }
     38 
     39 if (!("DedicatedWorkerGlobalScope" in self)) {
     40  throw new Error("DedicatedWorkerGlobalScope should be visible!");
     41 }
     42 if (!(self instanceof DedicatedWorkerGlobalScope)) {
     43  throw new Error("The global should be a SharedWorkerGlobalScope!");
     44 }
     45 if (!(self instanceof WorkerGlobalScope)) {
     46  throw new Error("The global should be a WorkerGlobalScope!");
     47 }
     48 if ("SharedWorkerGlobalScope" in self) {
     49  throw new Error("SharedWorkerGlobalScope should not be visible!");
     50 }
     51 
     52 addEventListener("message", { handleEvent: messageListener });