tor-browser

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

errorPropagation_worker.js (1123B)


      1 /**
      2 * Any copyright is dedicated to the Public Domain.
      3 * http://creativecommons.org/publicdomain/zero/1.0/
      4 */
      5 var seenScopeError;
      6 onerror = function (message, filename, lineno) {
      7  if (!seenScopeError) {
      8    seenScopeError = true;
      9    postMessage({
     10      type: "scope",
     11      data: { message, filename, lineno },
     12    });
     13    return true;
     14  }
     15  return undefined;
     16 };
     17 
     18 onmessage = function (event) {
     19  var workerId = parseInt(event.data);
     20 
     21  if (workerId > 1) {
     22    var worker = new Worker("errorPropagation_worker.js");
     23 
     24    worker.onmessage = function (msg) {
     25      postMessage(msg.data);
     26    };
     27 
     28    var seenWorkerError;
     29    worker.onerror = function (error) {
     30      if (!seenWorkerError) {
     31        seenWorkerError = true;
     32        postMessage({
     33          type: "worker",
     34          data: {
     35            message: error.message,
     36            filename: error.filename,
     37            lineno: error.lineno,
     38          },
     39        });
     40        error.preventDefault();
     41      }
     42    };
     43 
     44    worker.postMessage(workerId - 1);
     45    return;
     46  }
     47 
     48  var interval = setInterval(function () {
     49    throw new Error("expectedError");
     50  }, 100);
     51 };