Commit Graph

24 Commits

Author SHA1 Message Date
Jason Zhang
87a79cd8a1
stream: treat null asyncIterator as undefined
According to the spec, getIterator should normalize incoming method to
undefined if it is either undefined or null. This PR enforces that spec
compliance with passed WPT.

PR-URL: https://github.com/nodejs/node/pull/55119
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Matthew Aitken <maitken033380023@gmail.com>
Reviewed-By: Mattias Buelens <mattias@buelens.com>
2024-09-27 14:34:11 +00:00
devstone
1bcdba233d
test: update wpt test for streams
PR-URL: https://github.com/nodejs/node/pull/54129
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2024-08-06 05:57:48 +00:00
Mattias Buelens
20c63134fc
stream: fix code style
PR-URL: https://github.com/nodejs/node/pull/51168
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2023-12-26 13:43:36 +00:00
Debadree Chatterjee
7a2a4d07fe
stream: implement TransformStream cleanup using "transformer.cancel"
Fixes: https://github.com/nodejs/node/issues/49971
PR-URL: https://github.com/nodejs/node/pull/50126
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2023-12-15 07:54:19 +00:00
Mattias Buelens
177cfc88b9 test: add note about unresolved spec issue
PR-URL: https://github.com/nodejs/node/pull/50779
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2023-11-21 14:42:43 +00:00
Mattias Buelens
0a6a8d2b2f test: add note about readable streams with type owning
PR-URL: https://github.com/nodejs/node/pull/50779
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2023-11-21 14:42:42 +00:00
Mattias Buelens
1829c49d34 stream: fix enumerability of ReadableStream.from
PR-URL: https://github.com/nodejs/node/pull/50779
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2023-11-21 14:42:42 +00:00
Mattias Buelens
1729bacd6a stream: fix enumerability of ReadableStream.prototype.values
PR-URL: https://github.com/nodejs/node/pull/50779
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2023-11-21 14:42:41 +00:00
Filip Skokan
e0bbe8fd52 test: update WPT files for WebIDL tests
PR-URL: https://github.com/nodejs/node/pull/50712
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2023-11-19 07:36:31 +00:00
legendecas
a00f0b1f0a test: recognize wpt completion error
PR-URL: https://github.com/nodejs/node/pull/50429
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
2023-11-03 16:04:32 +00:00
Debadree Chatterjee
b361ad72ce
stream: implement ReadableStream.from
Fixes: https://github.com/nodejs/node/issues/48389
PR-URL: https://github.com/nodejs/node/pull/48395
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Matthew Aitken <maitken033380023@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2023-07-18 09:50:22 +00:00
Filip Skokan
68e83901f3 test: update WPT resources, common, streams, FileAPI, broadcastchannel
PR-URL: https://github.com/nodejs/node/pull/46912
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2023-03-07 10:19:23 +01:00
Daeyeon Jeong
3fdf6cfad9
stream: fix size function returned from QueuingStrategies
The `size` function returned from the `size` getter of
`ByteLengthQueuingStrategy` or `CountQueuingStrategy` should not have
a prototype property, nor be a constructor.

Refs: https://streams.spec.whatwg.org/#blqs-size
Refs: https://streams.spec.whatwg.org/#cqs-size

Signed-off-by: Daeyeon Jeong <daeyeon.dev@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/44867
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2022-10-12 10:26:35 +00:00
Daeyeon Jeong
43e2f60be0
stream: handle enqueuing chunks when a pending BYOB pull request exists
Signed-off-by: Daeyeon Jeong <daeyeon.dev@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/44770
Refs: https://streams.spec.whatwg.org/#readable-byte-stream-controller-enqueue
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2022-10-02 10:14:57 +00:00
Daeyeon Jeong
e213deabe5
stream: handle a pending pull request from a released reader
In order to meet the specification, this includes mainly the followings:

- Adding the 'release steps' to ReadableStreamController
- Responding to a pull request from a released reader in
ReadableByteStreamController

Signed-off-by: Daeyeon Jeong daeyeon.dev@gmail.com
PR-URL: https://github.com/nodejs/node/pull/44702
Refs: https://streams.spec.whatwg.org/#abstract-opdef-readablebytestreamcontroller-releasesteps
Refs: https://streams.spec.whatwg.org/#readable-byte-stream-controller-respond-in-readable-state
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
2022-09-23 12:01:52 +00:00
Daeyeon Jeong
e06384cb48
stream: add ReadableByteStream.tee()
This supports teeing readable byte streams to meet
the latest web streams standards.

Signed-off-by: Daeyeon Jeong daeyeon.dev@gmail.com
PR-URL: https://github.com/nodejs/node/pull/44505
Refs: https://streams.spec.whatwg.org/#readable-stream-tee
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2022-09-08 22:06:06 +00:00
Daeyeon Jeong
4af0a264da
stream: fix writableStream.abort()
This includes:

- Fixing `writableStream.abort(reason)`. Passing the reason was missing.

- Leaving a TODO to remove the internal abortReason property of
  WritableStreamDefaultController.

Signed-off-by: Daeyeon Jeong daeyeon.dev@gmail.com
PR-URL: https://github.com/nodejs/node/pull/44327
Refs: https://streams.spec.whatwg.org/#writable-stream-abort
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2022-09-05 15:07:11 +00:00
Daeyeon Jeong
aa90e7a9f4
stream: fix setting abort reason in ReadableStream.pipeTo()
In 14.2 in the specification, `error` should be signal’s abort reason.
The current behavior seems to assume that only an `AbortError` instance
is given as signal’s abort reason.

Refs: https://streams.spec.whatwg.org/#readable-stream-pipe-to

Signed-off-by: Daeyeon Jeong daeyeon.dev@gmail.com
PR-URL: https://github.com/nodejs/node/pull/44418
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2022-09-03 14:24:29 +00:00
Daeyeon Jeong
cc75a3c11e
stream: fix ReadableStreamReader.releaseLock()
Signed-off-by: Daeyeon Jeong daeyeon.dev@gmail.com
PR-URL: https://github.com/nodejs/node/pull/44292
Refs: https://streams.spec.whatwg.org/#default-reader-release-lock
Refs: https://streams.spec.whatwg.org/#byob-reader-release-lock
Refs: https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader/releaseLock
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2022-08-27 11:27:10 +00:00
Daeyeon Jeong
6dde81042f
test: update Web Streams WPT
This updates the tests and the status file via
running `git node wpt streams`.

Signed-off-by: Daeyeon Jeong daeyeon.dev@gmail.com
PR-URL: https://github.com/nodejs/node/pull/44234
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2022-08-17 18:36:25 +00:00
Daeyeon Jeong
46f6d225af
stream: improve views validation on BYOBRequest
- This throws if the view is zero-length when there is an active reader
when using `ReadableStreamBYOBRequest.respondWithNewView()`.

- By doing that, we can get all tests passed in
`readable-byte-streams/bad-buffers-and-views.any.js`.

Signed-off-by: Daeyeon Jeong daeyeon.dev@gmail.com
PR-URL: https://github.com/nodejs/node/pull/44155
Refs: https://streams.spec.whatwg.org/#readable-byte-stream-controller-respond-with-new-view
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2022-08-15 18:46:13 +00:00
Filip Skokan
c3ff198a77
test: update WPT runner
PR-URL: https://github.com/nodejs/node/pull/43455
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
2022-08-10 12:39:20 +00:00
James M Snell
fa0c6883a6
stream: implement WHATWG streams
Experimental implementation of the WHATWG streams standard.

Signed-off-by: James M Snell <jasnell@gmail.com>

PR-URL: https://github.com/nodejs/node/pull/39062
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2021-06-30 12:54:41 -07:00
James M Snell
52d32bdfbd
test: add WPT streams tests
Signed-off-by: James M Snell <jasnell@gmail.com>

PR-URL: https://github.com/nodejs/node/pull/39062
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2021-06-30 12:54:39 -07:00