%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
'use strict'; const common = require('../common'); const stream = require('stream'); const assert = require('assert'); { const r = new stream.Readable({ autoDestroy: true, read() { this.push('hello'); this.push('world'); this.push(null); }, destroy: common.mustCall((err, cb) => cb()) }); let ended = false; r.resume(); r.on('end', common.mustCall(() => { ended = true; })); r.on('close', common.mustCall(() => { assert(ended); })); } { const w = new stream.Writable({ autoDestroy: true, write(data, enc, cb) { cb(null); }, destroy: common.mustCall((err, cb) => cb()) }); let finished = false; w.write('hello'); w.write('world'); w.end(); w.on('finish', common.mustCall(() => { finished = true; })); w.on('close', common.mustCall(() => { assert(finished); })); } { const t = new stream.Transform({ autoDestroy: true, transform(data, enc, cb) { cb(null, data); }, destroy: common.mustCall((err, cb) => cb()) }); let ended = false; let finished = false; t.write('hello'); t.write('world'); t.end(); t.resume(); t.on('end', common.mustCall(() => { ended = true; })); t.on('finish', common.mustCall(() => { finished = true; })); t.on('close', common.mustCall(() => { assert(ended); assert(finished); })); } { const r = new stream.Readable({ read() { r2.emit('error', new Error('fail')); } }); const r2 = new stream.Readable({ autoDestroy: true, destroy: common.mustCall((err, cb) => cb()) }); r.pipe(r2); } { const r = new stream.Readable({ read() { w.emit('error', new Error('fail')); } }); const w = new stream.Writable({ autoDestroy: true, destroy: common.mustCall((err, cb) => cb()) }); r.pipe(w); }