// Test that ReadableStreamDefaultTeeReadRequest::ChunkSteps is traced correctly // during GC. This validates that microtasks holding onto JS values are properly // traced when many other microtasks are queued.
function gc() {
Cu.forceShrinkingGC();
Cu.forceCC();
Cu.forceGC();
}
add_task(async function test_tee_trace() {
let controller; const stream = new ReadableStream({
start(c) {
controller = c;
},
});
const [branch1] = stream.tee();
const reader = branch1.getReader();
const readPromise = reader.read();
for (let i = 0; i < 10; i++) {
controller.enqueue(`test data ${i}`);
}
await readPromise;
gc();
// Clean up
reader.releaseLock();
gc();
await controller.close();
});
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.