1
0
Fork 0
firefox/testing/web-platform/tests/streams/readable-streams/crashtests/garbage-collection.any.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

38 lines
1.1 KiB
JavaScript

// META: global=window,worker
// META: script=/common/gc.js
'use strict';
// See https://crbug.com/335506658 for details.
promise_test(async () => {
const closed = new ReadableStream({
pull(controller) {
controller.enqueue('is there anybody in there?');
}
}).getReader().closed;
// 3 GCs are actually required to trigger the bug at time of writing.
for (let i = 0; i < 5; ++i)
await garbageCollect();
}, 'Garbage-collecting a stream along with its reader should not crash');
promise_test(async () => {
let reader = new ReadableStream({
pull() { }
}).getReader();
const promise = reader.read();
reader = null;
for (let i = 0; i < 5; ++i)
await garbageCollect();
}, 'Garbage-collecting a stream with a pending read should not crash');
promise_test(async () => {
let reader = new ReadableStream({
type: "bytes",
pull() { return new Promise(resolve => {}); }
}).getReader({mode: "byob"});
const promise = reader.read(new Uint8Array(42));
reader = null;
for (let i = 0; i < 5; ++i)
await garbageCollect();
}, 'Garbage-collecting a stream with a pending BYOB read should not crash');