diff options
author | Anto Aravinth <anto.aravinth.cse@gmail.com> | 2019-05-19 17:24:07 +0530 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-05-19 23:37:51 +0200 |
commit | b4735ecebb390f467bba5b2d467f27f88dbbf09e (patch) | |
tree | 89f303d7efe1f14cf3857c735b552a7778d130ef | |
parent | be26f6e9d5e8f39048549fa4f18eef49adff3e55 (diff) | |
download | android-node-v8-b4735ecebb390f467bba5b2d467f27f88dbbf09e.tar.gz android-node-v8-b4735ecebb390f467bba5b2d467f27f88dbbf09e.tar.bz2 android-node-v8-b4735ecebb390f467bba5b2d467f27f88dbbf09e.zip |
stream: use readableObjectMode public api for js stream
PR-URL: https://github.com/nodejs/node/pull/27655
Refs: https://github.com/nodejs/node/issues/445
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
-rw-r--r-- | doc/api/stream.md | 14 | ||||
-rw-r--r-- | lib/_stream_readable.js | 7 | ||||
-rw-r--r-- | lib/_stream_writable.js | 7 | ||||
-rw-r--r-- | lib/internal/js_stream_socket.js | 2 | ||||
-rw-r--r-- | test/parallel/test-stream2-basic.js | 13 |
5 files changed, 42 insertions, 1 deletions
diff --git a/doc/api/stream.md b/doc/api/stream.md index 1e700e6f08..79623662e4 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -502,6 +502,13 @@ This property contains the number of bytes (or objects) in the queue ready to be written. The value provides introspection data regarding the status of the `highWaterMark`. +##### writable.writableObjectMode +<!-- YAML +added: REPLACEME +--> + +Getter for the property `objectMode` of a given `Writable` stream. + ##### writable.write(chunk[, encoding][, callback]) <!-- YAML added: v0.9.4 @@ -1089,6 +1096,13 @@ This property contains the number of bytes (or objects) in the queue ready to be read. The value provides introspection data regarding the status of the `highWaterMark`. +##### readable.readableObjectMode +<!-- YAML +added: REPLACEME +--> + +Getter for the property `objectMode` of a given `Readable` stream. + ##### readable.resume() <!-- YAML added: v0.9.4 diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js index 5f7f10420e..5905c56bd4 100644 --- a/lib/_stream_readable.js +++ b/lib/_stream_readable.js @@ -1081,6 +1081,13 @@ Object.defineProperty(Readable.prototype, 'readableLength', { } }); +Object.defineProperty(Readable.prototype, 'readableObjectMode', { + enumerable: false, + get() { + return this._readableState ? this._readableState.objectMode : false; + } +}); + // Pluck off n bytes from an array of buffers. // Length is the combined lengths of all the buffers in the list. // This function is designed to be inlinable, so please take care when making diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js index 83fd6d1f4d..267418e9d7 100644 --- a/lib/_stream_writable.js +++ b/lib/_stream_writable.js @@ -707,6 +707,13 @@ Object.defineProperty(Writable.prototype, 'destroyed', { } }); +Object.defineProperty(Writable.prototype, 'writableObjectMode', { + enumerable: false, + get() { + return this._writableState ? this._writableState.objectMode : false; + } +}); + Writable.prototype.destroy = destroyImpl.destroy; Writable.prototype._undestroy = destroyImpl.undestroy; Writable.prototype._destroy = function(err, cb) { diff --git a/lib/internal/js_stream_socket.js b/lib/internal/js_stream_socket.js index 7302c7a128..ebe90cccc7 100644 --- a/lib/internal/js_stream_socket.js +++ b/lib/internal/js_stream_socket.js @@ -50,7 +50,7 @@ class JSStreamSocket extends Socket { stream.on('error', (err) => this.emit('error', err)); const ondata = (chunk) => { if (typeof chunk === 'string' || - stream._readableState.objectMode === true) { + stream.readableObjectMode === true) { // Make sure that no further `data` events will happen. stream.pause(); stream.removeListener('data', ondata); diff --git a/test/parallel/test-stream2-basic.js b/test/parallel/test-stream2-basic.js index 682a033899..fa1443fd2a 100644 --- a/test/parallel/test-stream2-basic.js +++ b/test/parallel/test-stream2-basic.js @@ -23,6 +23,7 @@ const common = require('../common'); const R = require('_stream_readable'); +const W = require('_stream_writable'); const assert = require('assert'); const EE = require('events').EventEmitter; @@ -420,3 +421,15 @@ class TestWriter extends EE { const r2 = r.setEncoding('utf8').pause().resume().pause(); assert.strictEqual(r, r2); } + +{ + // Verify readableObjectMode property + const r = new R({ objectMode: true }); + assert.strictEqual(r.readableObjectMode, true); +} + +{ + // Verify writableObjectMode property + const w = new W({ objectMode: true }); + assert.strictEqual(w.writableObjectMode, true); +} |