summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnto Aravinth <anto.aravinth.cse@gmail.com>2019-05-19 17:24:07 +0530
committerAnna Henningsen <anna@addaleax.net>2019-05-19 23:37:51 +0200
commitb4735ecebb390f467bba5b2d467f27f88dbbf09e (patch)
tree89f303d7efe1f14cf3857c735b552a7778d130ef
parentbe26f6e9d5e8f39048549fa4f18eef49adff3e55 (diff)
downloadandroid-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.md14
-rw-r--r--lib/_stream_readable.js7
-rw-r--r--lib/_stream_writable.js7
-rw-r--r--lib/internal/js_stream_socket.js2
-rw-r--r--test/parallel/test-stream2-basic.js13
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);
+}