Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRobert Nagy <ronagy@icloud.com>2019-12-23 13:49:48 +0300
committerRuben Bridgewater <ruben@bridgewater.de>2019-12-25 14:05:33 +0300
commitcd6b00df3376d23643467b4c53e2e93bd9c28ce6 (patch)
tree4eb0e8e89a7bd976ac68670d3ee53b887a54ad2d /lib
parent5661466921d18e04bcac766b9aea0c0f158c952e (diff)
stream: simplify isBuf
PR-URL: https://github.com/nodejs/node/pull/31067 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/_stream_writable.js29
1 files changed, 9 insertions, 20 deletions
diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js
index d20dd2e6d32..63a912186ae 100644
--- a/lib/_stream_writable.js
+++ b/lib/_stream_writable.js
@@ -323,7 +323,7 @@ Writable.prototype.write = function(chunk, encoding, cb) {
errorOrDestroy(this, err);
} else if (isBuf || validChunk(this, state, chunk, cb)) {
state.pendingcb++;
- ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
+ ret = writeOrBuffer(this, state, chunk, encoding, cb);
}
return ret;
@@ -367,15 +367,6 @@ ObjectDefineProperty(Writable.prototype, 'writableBuffer', {
}
});
-function decodeChunk(state, chunk, encoding) {
- if (!state.objectMode &&
- state.decodeStrings !== false &&
- typeof chunk === 'string') {
- chunk = Buffer.from(chunk, encoding);
- }
- return chunk;
-}
-
ObjectDefineProperty(Writable.prototype, 'writableEnded', {
// Making it explicit this property is not enumerable
// because otherwise some prototype manipulation in
@@ -409,14 +400,13 @@ ObjectDefineProperty(Writable.prototype, 'writableCorked', {
// If we're already writing something, then just put this
// in the queue, and wait our turn. Otherwise, call _write
// If we return false, then we need a drain event, so set that flag.
-function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
- if (!isBuf) {
- var newChunk = decodeChunk(state, chunk, encoding);
- if (chunk !== newChunk) {
- isBuf = true;
- encoding = 'buffer';
- chunk = newChunk;
- }
+function writeOrBuffer(stream, state, chunk, encoding, cb) {
+ if (!state.objectMode &&
+ state.decodeStrings !== false &&
+ encoding !== 'buffer' &&
+ typeof chunk === 'string') {
+ chunk = Buffer.from(chunk, encoding);
+ encoding = 'buffer';
}
const len = state.objectMode ? 1 : chunk.length;
@@ -432,7 +422,6 @@ function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
state.lastBufferedRequest = {
chunk,
encoding,
- isBuf,
callback: cb,
next: null
};
@@ -561,7 +550,7 @@ function clearBuffer(stream, state) {
var allBuffers = true;
while (entry) {
buffer[count] = entry;
- if (!entry.isBuf)
+ if (entry.encoding !== 'buffer')
allBuffers = false;
entry = entry.next;
count += 1;