%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 'use strict'; const error1 = new Error('error1'); error1.name = 'error1'; const error2 = new Error('error2'); error2.name = 'error2'; promise_test(t => { const ws = new WritableStream({ start(controller) { controller.error(error1); } }); return promise_rejects_exactly(t, error1, ws.getWriter().closed, 'stream should be errored'); }, 'controller.error() should error the stream'); test(() => { let controller; const ws = new WritableStream({ start(c) { controller = c; } }); ws.abort(); controller.error(error1); }, 'controller.error() on erroring stream should not throw'); promise_test(t => { let controller; const ws = new WritableStream({ start(c) { controller = c; } }); controller.error(error1); controller.error(error2); return promise_rejects_exactly(t, error1, ws.getWriter().closed, 'first controller.error() should win'); }, 'surplus calls to controller.error() should be a no-op'); promise_test(() => { let controller; const ws = new WritableStream({ start(c) { controller = c; } }); return ws.abort().then(() => { controller.error(error1); }); }, 'controller.error() on errored stream should not throw'); promise_test(() => { let controller; const ws = new WritableStream({ start(c) { controller = c; } }); return ws.getWriter().close().then(() => { controller.error(error1); }); }, 'controller.error() on closed stream should not throw');