tor-browser

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

WorkerDebugger_promise_debugger.js (999B)


      1 "use strict";
      2 
      3 var self = this;
      4 
      5 self.onmessage = function (event) {
      6  if (event.data !== "resolve") {
      7    return;
      8  }
      9  // This then-handler should be executed inside the top-level event loop,
     10  // within the context of the debugger's global.
     11  Promise.resolve().then(function () {
     12    var dbg = new Debugger(global);
     13    dbg.onDebuggerStatement = function () {
     14      self.onmessage = function (e) {
     15        if (e.data !== "resume") {
     16          return;
     17        }
     18        // This then-handler should be executed inside the nested event loop,
     19        // within the context of the debugger's global.
     20        Promise.resolve().then(function () {
     21          postMessage("resumed");
     22          leaveEventLoop();
     23        });
     24      };
     25      // Test bug 1392540 where DOM Promises from debugger principal
     26      // where frozen while hitting a worker breakpoint.
     27      Promise.resolve().then(() => {
     28        postMessage("paused");
     29      });
     30      enterEventLoop();
     31    };
     32    postMessage("resolved");
     33  });
     34 };