summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/_stream_readable.js14
1 files changed, 5 insertions, 9 deletions
diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js
index bb9024e637..85c365c791 100644
--- a/lib/_stream_readable.js
+++ b/lib/_stream_readable.js
@@ -386,17 +386,9 @@ function howMuchToRead(n, state) {
else
return state.length;
}
- // If we're asking for more than the current hwm, then raise the hwm.
- if (n > state.highWaterMark)
- state.highWaterMark = computeNewHighWaterMark(n);
if (n <= state.length)
return n;
- // Don't have enough
- if (!state.ended) {
- state.needReadable = true;
- return 0;
- }
- return state.length;
+ return state.ended ? state.length : 0;
}
// You can override either this method, or the async _read(n) below.
@@ -412,6 +404,10 @@ Readable.prototype.read = function(n) {
const state = this._readableState;
const nOrig = n;
+ // If we're asking for more than the current hwm, then raise the hwm.
+ if (n > state.highWaterMark)
+ state.highWaterMark = computeNewHighWaterMark(n);
+
if (n !== 0)
state.emittedReadable = false;