diff --git a/lib/internal/streams/end-of-stream.js b/lib/internal/streams/end-of-stream.js index fcbca7d21a5350..88bdcb643dd201 100644 --- a/lib/internal/streams/end-of-stream.js +++ b/lib/internal/streams/end-of-stream.js @@ -62,7 +62,7 @@ function eos(stream, opts, callback) { }; let writableFinished = stream.writableFinished || - (rState && rState.finished); + (wState && wState.finished); const onfinish = () => { writable = false; writableFinished = true; diff --git a/test/parallel/test-stream-finished.js b/test/parallel/test-stream-finished.js index e866ba3d740fcc..c9c6bafd642e97 100644 --- a/test/parallel/test-stream-finished.js +++ b/test/parallel/test-stream-finished.js @@ -312,7 +312,6 @@ testClosed((opts) => new Writable({ write() {}, ...opts })); })); } - { const r = new Readable({ autoDestroy: false @@ -332,3 +331,14 @@ testClosed((opts) => new Writable({ write() {}, ...opts })); finished(rs, common.mustCall()); })); } + +{ + const d = new EE(); + d._writableState = {}; + d._writableState.finished = true; + finished(d, { readable: false, writable: true }, common.mustCall((err) => { + assert.strictEqual(err, undefined); + })); + d._writableState.errored = true; + d.emit('close'); +}