%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 assert = require('assert'); const fs = require('fs'); const util = require('util'); const { Writable } = require('stream'); const { Worker, isMainThread } = require('worker_threads'); class BufferingWritable extends Writable { constructor() { super(); this.chunks = []; } _write(chunk, enc, cb) { this.chunks.push(chunk); cb(); } get buffer() { return Buffer.concat(this.chunks); } } if (isMainThread) { const original = new BufferingWritable(); const passed = new BufferingWritable(); const w = new Worker(__filename, { stdin: true, stdout: true }); const source = fs.createReadStream(process.execPath); source.pipe(w.stdin); source.pipe(original); w.stdout.pipe(passed); passed.on('finish', common.mustCall(() => { assert.strictEqual(original.buffer.compare(passed.buffer), 0, `Original: ${util.inspect(original.buffer)}, ` + `Actual: ${util.inspect(passed.buffer)}`); })); } else { process.stdin.pipe(process.stdout); }