From 4c065540083b6ae485fe5dcb4627ad9a712c4221 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Sat, 13 Nov 2021 15:04:35 +0200 Subject: [PATCH 1/4] stream: fix non readable Duplex readableAborted --- lib/internal/streams/readable.js | 7 +++++-- test/parallel/test-stream-readable-aborted.js | 9 +++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/internal/streams/readable.js b/lib/internal/streams/readable.js index bd9c288aa71929..5eec1f2faae8f9 100644 --- a/lib/internal/streams/readable.js +++ b/lib/internal/streams/readable.js @@ -1187,8 +1187,11 @@ ObjectDefineProperties(Readable.prototype, { readableAborted: { enumerable: false, get: function() { - return !!(this._readableState.destroyed || this._readableState.errored) && - !this._readableState.endEmitted; + return !!( + this._readableState.readable && + (this._readableState.destroyed || this._readableState.errored) && + !this._readableState.endEmitted + ); } }, diff --git a/test/parallel/test-stream-readable-aborted.js b/test/parallel/test-stream-readable-aborted.js index 8915e07de45373..57a87b2ad2fcdb 100644 --- a/test/parallel/test-stream-readable-aborted.js +++ b/test/parallel/test-stream-readable-aborted.js @@ -55,3 +55,12 @@ const { Readable } = require('stream'); })); readable.resume(); } + +{ + const duplex = new Duplex({ + readable: false, + write () {} + }); + duplex.destroy(); + assert.strictEqual(readable.readableAborted, false); +} From 6507422081da5d620766f186fd945708418bcd9a Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Sat, 13 Nov 2021 16:12:02 +0200 Subject: [PATCH 2/4] fixup --- test/parallel/test-stream-readable-aborted.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/parallel/test-stream-readable-aborted.js b/test/parallel/test-stream-readable-aborted.js index 57a87b2ad2fcdb..2af8b4c02273d9 100644 --- a/test/parallel/test-stream-readable-aborted.js +++ b/test/parallel/test-stream-readable-aborted.js @@ -2,7 +2,7 @@ const common = require('../common'); const assert = require('assert'); -const { Readable } = require('stream'); +const { Readable, Duplex } = require('stream'); { const readable = new Readable({ From e2f41237cd2a2dff95f60305196448995ad6e99c Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Sat, 13 Nov 2021 16:12:20 +0200 Subject: [PATCH 3/4] fixup --- test/parallel/test-stream-readable-aborted.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-stream-readable-aborted.js b/test/parallel/test-stream-readable-aborted.js index 2af8b4c02273d9..9badffc51fc424 100644 --- a/test/parallel/test-stream-readable-aborted.js +++ b/test/parallel/test-stream-readable-aborted.js @@ -59,8 +59,8 @@ const { Readable, Duplex } = require('stream'); { const duplex = new Duplex({ readable: false, - write () {} + write() {} }); duplex.destroy(); - assert.strictEqual(readable.readableAborted, false); + assert.strictEqual(duplex.readableAborted, false); } From 2f814b86eda2f68d38af88a4bf073b18f4cd85cb Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Sat, 13 Nov 2021 18:27:59 +0200 Subject: [PATCH 4/4] fixup --- lib/internal/streams/readable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/streams/readable.js b/lib/internal/streams/readable.js index 5eec1f2faae8f9..37469311067c28 100644 --- a/lib/internal/streams/readable.js +++ b/lib/internal/streams/readable.js @@ -1188,7 +1188,7 @@ ObjectDefineProperties(Readable.prototype, { enumerable: false, get: function() { return !!( - this._readableState.readable && + this._readableState.readable !== false && (this._readableState.destroyed || this._readableState.errored) && !this._readableState.endEmitted );