Skip to content

Commit f263659

Browse files
ronagMylesBorins
authored andcommitted
stream: eos make const state const
writable & readable is based on type and is not actual state, treat them as such. Backport-PR-URL: #32178 PR-URL: #32031 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
1 parent 4b04bf8 commit f263659

File tree

2 files changed

+8
-12
lines changed

2 files changed

+8
-12
lines changed

‎lib/internal/streams/end-of-stream.js‎

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ function eos(stream, opts, callback){
4747

4848
callback=once(callback);
4949

50-
letreadable=opts.readable||
50+
constreadable=opts.readable||
5151
(opts.readable!==false&&isReadable(stream));
52-
letwritable=opts.writable||
52+
constwritable=opts.writable||
5353
(opts.writable!==false&&isWritable(stream));
5454

5555
constonlegacyfinish=()=>{
@@ -59,35 +59,31 @@ function eos(stream, opts, callback){
5959
letwritableFinished=stream.writableFinished||
6060
(stream._writableState&&stream._writableState.finished);
6161
constonfinish=()=>{
62-
writable=false;
6362
writableFinished=true;
64-
if(!readable)callback.call(stream);
63+
if(!readable||readableEnded)callback.call(stream);
6564
};
6665

6766
letreadableEnded=stream.readableEnded||
6867
(stream._readableState&&stream._readableState.endEmitted);
6968
constonend=()=>{
70-
readable=false;
7169
readableEnded=true;
72-
if(!writable)callback.call(stream);
70+
if(!writable||writableFinished)callback.call(stream);
7371
};
7472

7573
constonerror=(err)=>{
7674
callback.call(stream,err);
7775
};
7876

7977
constonclose=()=>{
80-
leterr;
8178
if(readable&&!readableEnded){
8279
if(!stream._readableState||!stream._readableState.ended)
83-
err=newERR_STREAM_PREMATURE_CLOSE();
84-
returncallback.call(stream,err);
80+
returncallback.call(stream,newERR_STREAM_PREMATURE_CLOSE());
8581
}
8682
if(writable&&!writableFinished){
8783
if(!isWritableFinished(stream))
88-
err=newERR_STREAM_PREMATURE_CLOSE();
89-
returncallback.call(stream,err);
84+
returncallback.call(stream,newERR_STREAM_PREMATURE_CLOSE());
9085
}
86+
callback.call(stream);
9187
};
9288

9389
constonrequest=()=>{

‎test/parallel/test-stream-finished.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ const{promisify } = require('util');
181181
conststreamLike=newEE();
182182
streamLike.readableEnded=true;
183183
streamLike.readable=true;
184-
finished(streamLike,common.mustCall);
184+
finished(streamLike,common.mustCall());
185185
streamLike.emit('close');
186186
}
187187

0 commit comments

Comments
(0)