summaryrefslogtreecommitdiff
path: root/lib/_stream_writable.js
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2017-01-09 19:05:06 +0100
committerAnna Henningsen <anna@addaleax.net>2017-05-27 11:19:39 +0200
commit9f610b5e265549f048ef00cf521a0d36771c9574 (patch)
treedd12b56b2d516ce5d4a61697ae539f2a370a4760 /lib/_stream_writable.js
parent0ecdf2934039b6e847aa3d1441e3ec235a70d125 (diff)
downloadandroid-node-v8-9f610b5e265549f048ef00cf521a0d36771c9574.tar.gz
android-node-v8-9f610b5e265549f048ef00cf521a0d36771c9574.tar.bz2
android-node-v8-9f610b5e265549f048ef00cf521a0d36771c9574.zip
stream: support Uint8Array input to methods
PR-URL: https://github.com/nodejs/node/pull/11608 Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to 'lib/_stream_writable.js')
-rw-r--r--lib/_stream_writable.js6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js
index 768d80a96e..615f5a3762 100644
--- a/lib/_stream_writable.js
+++ b/lib/_stream_writable.js
@@ -248,7 +248,11 @@ function validChunk(stream, state, chunk, cb) {
Writable.prototype.write = function(chunk, encoding, cb) {
var state = this._writableState;
var ret = false;
- var isBuf = (chunk instanceof Buffer);
+ var isBuf = Stream._isUint8Array(chunk) && !state.objectMode;
+
+ if (isBuf && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
+ chunk = Stream._uint8ArrayToBuffer(chunk);
+ }
if (typeof encoding === 'function') {
cb = encoding;