stream: remove undefined
check
`validChunk` allowed `undefined` as a chunk in object mode; however, this was redundant, since: - `validChunk()` is only used by `.write()` - If the `validChunk()` check passes for `undefined`, `.write()` calls `writeOrBuffer()` - If `writeOrBuffer()` does not receive a Buffer, it calls `decodeChunk()` - `decodeChunk()` ignores `undefined` because it checks `typeof chunk === 'string'` - After that call, `chunk.length` is accessed, which throws an error if `chunk` is undefined`. This “fixes” a bug in the sense that `state.pendingcb` is no longer incremented for write attempts that fail like this. PR-URL: https://github.com/nodejs/node/pull/17644 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jon Moss <me@jonathanmoss.me>
This commit is contained in:
parent
c8ac188e3f
commit
19b4485477
@ -249,9 +249,7 @@ function validChunk(stream, state, chunk, cb) {
|
||||
|
||||
if (chunk === null) {
|
||||
er = new errors.TypeError('ERR_STREAM_NULL_VALUES');
|
||||
} else if (typeof chunk !== 'string' &&
|
||||
chunk !== undefined &&
|
||||
!state.objectMode) {
|
||||
} else if (typeof chunk !== 'string' && !state.objectMode) {
|
||||
er = new errors.TypeError('ERR_INVALID_ARG_TYPE', 'chunk',
|
||||
['string', 'Buffer']);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user