summaryrefslogtreecommitdiff
path: root/test/parallel/test-stream-readable-async-iterators.js
diff options
context:
space:
mode:
authorGus Caplan <me@gus.host>2018-09-23 15:10:12 -0500
committerGus Caplan <me@gus.host>2018-10-08 22:17:29 -0500
commit8bce9e8f190ad2e10eb31bdceeaab4158d5ee8b4 (patch)
tree5803076ffdfa8e8dc713e69e21e6003107fef229 /test/parallel/test-stream-readable-async-iterators.js
parente688fe6b7e60d3dd50f0aa922a1ab74d85cb39b5 (diff)
downloadandroid-node-v8-8bce9e8f190ad2e10eb31bdceeaab4158d5ee8b4.tar.gz
android-node-v8-8bce9e8f190ad2e10eb31bdceeaab4158d5ee8b4.tar.bz2
android-node-v8-8bce9e8f190ad2e10eb31bdceeaab4158d5ee8b4.zip
streams: refactor ReadableStream asyncIterator creation and a few fixes
Closes: https://github.com/nodejs/node/issues/23041 - Rewrite `ReadableAsyncIterator` class into `ReadableStreamAsyncIteratorPrototype` which contains no constructor and inherits from `%AsyncIteratorPrototype%`. - Rewrite `AsyncIteratorRecord` into dumb function. PR-URL: https://github.com/nodejs/node/pull/23042 Fixes: https://github.com/nodejs/node/issues/23041 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'test/parallel/test-stream-readable-async-iterators.js')
-rw-r--r--test/parallel/test-stream-readable-async-iterators.js22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/parallel/test-stream-readable-async-iterators.js b/test/parallel/test-stream-readable-async-iterators.js
index d8eb83a585..fb3c55846c 100644
--- a/test/parallel/test-stream-readable-async-iterators.js
+++ b/test/parallel/test-stream-readable-async-iterators.js
@@ -5,6 +5,28 @@ const { Readable } = require('stream');
const assert = require('assert');
async function tests() {
+ {
+ const AsyncIteratorPrototype = Object.getPrototypeOf(
+ Object.getPrototypeOf(async function* () {}).prototype);
+ const rs = new Readable({});
+ assert.strictEqual(
+ Object.getPrototypeOf(Object.getPrototypeOf(rs[Symbol.asyncIterator]())),
+ AsyncIteratorPrototype);
+ }
+
+ await (async function() {
+ const readable = new Readable({ objectMode: true, read() {} });
+ readable.push(0);
+ readable.push(1);
+ readable.push(null);
+
+ const iter = readable[Symbol.asyncIterator]();
+ assert.strictEqual((await iter.next()).value, 0);
+ for await (const d of iter) {
+ assert.strictEqual(d, 1);
+ }
+ })();
+
await (async function() {
console.log('read without for..await');
const max = 5;