// |jit-test| skip-if: !this.hasOwnProperty("ReadableStream") // Test uncatchable error when a stream's queuing strategy's size() method is called.
// Make `debugger;` raise an uncatchable exception.
let g = newGlobal({newCompartment: true});
g.parent = this;
g.hit = false;
g.eval(` var dbg = new Debugger(parent);
dbg.onDebuggerStatement = (_frame, exc) => (hit = true, null);
`);
let fnFinished = false;
async function fn() { // Await once to postpone the uncatchable error until we're running inside // a reaction job. We don't want the rest of the test to be terminated. // (`drainJobQueue` catches uncatchable errors!)
await 1;
try { // Create a stream with a strategy whose .size() method raises an // uncatchable exception, and have it call that method. new ReadableStream({
start(controller) {
controller.enqueue("FIRST POST"); // this calls .size()
}
}, {
size() {
debugger;
}
});
} finally {
fnFinished = true;
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.