%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
// META: global=window,worker,jsshell // META: script=../resources/test-utils.js 'use strict'; promise_test(() => { let controller; new ReadableStream({ start(c) { controller = c; } }); garbageCollect(); return delay(50).then(() => { controller.close(); assert_throws_js(TypeError, () => controller.close(), 'close should throw a TypeError the second time'); controller.error(); }); }, 'ReadableStreamController methods should continue working properly when scripts lose their reference to the ' + 'readable stream'); promise_test(() => { let controller; const closedPromise = new ReadableStream({ start(c) { controller = c; } }).getReader().closed; garbageCollect(); return delay(50).then(() => controller.close()).then(() => closedPromise); }, 'ReadableStream closed promise should fulfill even if the stream and reader JS references are lost'); promise_test(t => { const theError = new Error('boo'); let controller; const closedPromise = new ReadableStream({ start(c) { controller = c; } }).getReader().closed; garbageCollect(); return delay(50).then(() => controller.error(theError)) .then(() => promise_rejects_exactly(t, theError, closedPromise)); }, 'ReadableStream closed promise should reject even if stream and reader JS references are lost'); promise_test(() => { const rs = new ReadableStream({}); rs.getReader(); garbageCollect(); return delay(50).then(() => assert_throws_js(TypeError, () => rs.getReader(), 'old reader should still be locking the stream even after garbage collection')); }, 'Garbage-collecting a ReadableStreamDefaultReader should not unlock its stream');