tor-browser

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

bug-1387503-1.js (972B)


      1 // Test uncatchable error when a stream source's pull() method is called.
      2 let readerCreated = false;
      3 let fnFinished = false;
      4 let g;
      5 
      6 add_task(async function test() {
      7  // Make `debugger;` raise an uncatchable error.
      8  g = newGlobal({ newCompartment: true });
      9  g.parent = this;
     10  g.hit = false;
     11  g.eval(
     12    ` new Debugger(parent).onDebuggerStatement = _frame => (hit = true, null);`
     13  );
     14 
     15  // Create a stream whose pull() method raises an uncatchable error,
     16  // and try reading from it.
     17 
     18  async function fn() {
     19    try {
     20      let stream = new ReadableStream({
     21        start() {},
     22        pull() {
     23          // eslint-disable-next-line no-debugger
     24          debugger;
     25        },
     26      });
     27 
     28      let reader = stream.getReader();
     29      let p = reader.read();
     30      readerCreated = true;
     31      await p;
     32    } finally {
     33      fnFinished = true;
     34    }
     35  }
     36 
     37  fn();
     38 });
     39 
     40 add_task(() => {
     41  equal(readerCreated, true);
     42  equal(g.hit, true);
     43  equal(fnFinished, false);
     44 });