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 });