// deno-fmt-ignore-file // deno-lint-ignore-file // Copyright Joyent and Node contributors. All rights reserved. MIT license. // Taken from Node 18.12.1 // This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually 'use strict'; const common = require('../common'); const stream = require('stream'); const assert = require('assert'); { const r = new stream.Readable({ captureRejections: true, read() { } }); r.push('hello'); r.push('world'); const err = new Error('kaboom'); r.on('error', common.mustCall((_err) => { assert.strictEqual(err, _err); assert.strictEqual(r.destroyed, true); })); r.on('data', async () => { throw err; }); } { const w = new stream.Writable({ captureRejections: true, highWaterMark: 1, write(chunk, enc, cb) { process.nextTick(cb); } }); const err = new Error('kaboom'); w.write('hello', () => { w.write('world'); }); w.on('error', common.mustCall((_err) => { assert.strictEqual(err, _err); assert.strictEqual(w.destroyed, true); })); w.on('drain', common.mustCall(async () => { throw err; }, 2)); }