Skip to content

ReadableStream: implement Cancel and Locked#33136

Merged
gterzian merged 2 commits intoservo:readablestream-re-implementationfrom
gterzian:implement_pulic_js_methods
Aug 20, 2024
Merged

ReadableStream: implement Cancel and Locked#33136
gterzian merged 2 commits intoservo:readablestream-re-implementationfrom
gterzian:implement_pulic_js_methods

Conversation

@gterzian
Copy link
Copy Markdown
Member

Implement the remaining public JS methods of ReadableStream: Closed and Cancel.


  • ./mach build -d does not report any errors
  • ./mach test-tidy does not report any errors
  • These changes fix #___ (GitHub issue number if applicable)
  • There are tests for these changes OR
  • These changes do not require tests because ___

@gterzian gterzian force-pushed the implement_pulic_js_methods branch from 6d8e0bc to 00bc629 Compare August 20, 2024 10:28
@gterzian gterzian changed the title implement Closed ReadableStream: implement Cancel and Locked Aug 20, 2024
@gterzian gterzian force-pushed the implement_pulic_js_methods branch from eebd144 to fb9f9d7 Compare August 20, 2024 11:09
@gterzian gterzian marked this pull request as ready for review August 20, 2024 11:12
@gterzian gterzian requested a review from wusyong August 20, 2024 11:12
@gterzian
Copy link
Copy Markdown
Member Author

I'll merge this to allow @Taym95 to continue on the reader part.

@gterzian gterzian merged commit e253b06 into servo:readablestream-re-implementation Aug 20, 2024
wusyong pushed a commit that referenced this pull request Aug 21, 2024
* implement Locked

* implement Cancel and close

Signed-off-by: Wu Wayne <[email protected]>
gterzian pushed a commit to gterzian/servo that referenced this pull request Oct 30, 2024
---------

Co-authored-by: Jason Tsai <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Add remaining WebIDLs of ReadableStream (servo#32605)

* Add Reader's WebIDL files

* Add necessary methods in ReadableStream.webidl

Signed-off-by: Wu Wayne <[email protected]>

Create safe wrapper for JSFunctions (servo#32620)

* Create safe wrapper for JSFunctions

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add assert to check if the  name ends in a null character

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Create macro to wrap unsafe extern "C" function calls

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Remove WRAPPER_FN

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add macro example documentation

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Use  C-string literals

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Ensure name is Cstr type

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Scope #[allow(unsafe_code)]

Signed-off-by: Bentaimia Haddadi <[email protected]>

---------

Signed-off-by: Bentaimia Haddadi <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Start implementation of default controller and reader

Start implementation of default controller and reader

* implement basic internal slots, with todos

Signed-off-by: gterzian <[email protected]>

* enum for controller

Signed-off-by: gterzian <[email protected]>

* re-implement native controller methods

Signed-off-by: gterzian <[email protected]>

* add calling into pull algo

Signed-off-by: gterzian <[email protected]>

* more details on chunk enqueuing

Signed-off-by: gterzian <[email protected]>

* add fulfill read request, clean-up warnings

Signed-off-by: gterzian <[email protected]>

* read request and reader typing

Signed-off-by: gterzian <[email protected]>

* allow for more than one non-native underlying source type

Signed-off-by: gterzian <[email protected]>

* add todo for should pull

Signed-off-by: gterzian <[email protected]>

* add underlying source dom struct container

Signed-off-by: gterzian <[email protected]>

* remove rc around source type

* add default controller init in stream constructor

* setup source container with prototype of source dict

* clean-up docs, dispatch of controller in pull algo call

* turn off SM streams

* remove prototype setting on underlying source container

* fix read request promise resolving

* tidy

* clean-up js conversions in read req handlers

* add queue with sizes concept

* use dom in pull promise handlers

* Demonstrate using dictionary as callback this object.

* move value with size to a struct

* fmt

* put readable stream state in a cell

* nits in expectations

* remove allow unroot by passing read result directly to promise resolving

* tidy

* root default controller inside call_pull_if_needed

---------

Signed-off-by: gterzian <[email protected]>
Co-authored-by: Josh Matthews <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

ReadableStream: implement Cancel and Locked (servo#33136)

* implement Locked

* implement Cancel and close

Signed-off-by: Wu Wayne <[email protected]>

Add GetPromiseIsHandled and SetAnyPromiseIsHandled to Promise

Signed-off-by: Taym <[email protected]>

mach fmt

Signed-off-by: Taym <[email protected]>

Readablestream default controller: get desired size (servo#33497)

Signed-off-by: gterzian <[email protected]>

stream: implement controller close (servo#33498)

Signed-off-by: gterzian <[email protected]>

implement stream default controller error (servo#33503)

Signed-off-by: gterzian <[email protected]>

Readablestream default controller: enqueue (servo#33528)

* Implement ReadableStreamDefaultControllerMethods::Enqueue

Signed-off-by: Wu Wayne <[email protected]>

* Add spec comments

Signed-off-by: Wu Wayne <[email protected]>

---------

Signed-off-by: Wu Wayne <[email protected]>

readablestream default controller: fulfill read requests (servo#33542)

Signed-off-by: gterzian <[email protected]>

Fix extract_size_algorithm (servo#33561)

Signed-off-by: Wu Wayne <[email protected]>

Readablestream default controller: use strategy size (servo#33551)

* readablestream default controller: use strategy size, fallible enqueue

Signed-off-by: gterzian <[email protected]>

docs

* readablestream default controller: clear strategy size

Signed-off-by: gterzian <[email protected]>

* prevent potential re-borrow panics when calling into the strategy size

Signed-off-by: gterzian <[email protected]>

* document readablestream constructor

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

Readablestream: impl default controller should pull, start algo (servo#33586)

* implement should-pull algo for default controller

Signed-off-by: gterzian <[email protected]>

* add start algorithm setup for default controller

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

implement promise native handling for start and pull algorithms (servo#33603)

Signed-off-by: gterzian <[email protected]>

Implement ReadableStreamDefaultReader (servo#33160)

* Implement ReadableStreamDefaultReader

 Make the stream mutable
 readable-stream-reader-generic-release
 Proper error types when releasing
 Closed
 Cancel

Signed-off-by: Taym <[email protected]>

* follow the spec more closely

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Implement ReadableStreamDefaultReader read (servo#34007)

* Implement ReadableStreamDefaultReader read

Signed-off-by: Taym <[email protected]>

* Perform readRequest’s error steps with stream.stored_error

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Improve ReadableStreamDefaultReader close (servo#34014)

* improve ReadableStreamDefaultReader close

Signed-off-by: Taym <[email protected]>

* remove resolve_closed_promise

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Use Rc<Box<[u8]>> for queue to optimize get_in_memory_bytes

Signed-off-by: Taym <[email protected]>
Taym95 pushed a commit to Taym95/servo that referenced this pull request Oct 30, 2024
* implement Locked

* implement Cancel and close

Signed-off-by: Wu Wayne <[email protected]>
gterzian pushed a commit to gterzian/servo that referenced this pull request Nov 1, 2024
---------

Co-authored-by: Jason Tsai <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Add remaining WebIDLs of ReadableStream (servo#32605)

* Add Reader's WebIDL files

* Add necessary methods in ReadableStream.webidl

Signed-off-by: Wu Wayne <[email protected]>

Create safe wrapper for JSFunctions (servo#32620)

* Create safe wrapper for JSFunctions

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add assert to check if the  name ends in a null character

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Create macro to wrap unsafe extern "C" function calls

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Remove WRAPPER_FN

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add macro example documentation

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Use  C-string literals

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Ensure name is Cstr type

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Scope #[allow(unsafe_code)]

Signed-off-by: Bentaimia Haddadi <[email protected]>

---------

Signed-off-by: Bentaimia Haddadi <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Start implementation of default controller and reader

Start implementation of default controller and reader

* implement basic internal slots, with todos

Signed-off-by: gterzian <[email protected]>

* enum for controller

Signed-off-by: gterzian <[email protected]>

* re-implement native controller methods

Signed-off-by: gterzian <[email protected]>

* add calling into pull algo

Signed-off-by: gterzian <[email protected]>

* more details on chunk enqueuing

Signed-off-by: gterzian <[email protected]>

* add fulfill read request, clean-up warnings

Signed-off-by: gterzian <[email protected]>

* read request and reader typing

Signed-off-by: gterzian <[email protected]>

* allow for more than one non-native underlying source type

Signed-off-by: gterzian <[email protected]>

* add todo for should pull

Signed-off-by: gterzian <[email protected]>

* add underlying source dom struct container

Signed-off-by: gterzian <[email protected]>

* remove rc around source type

* add default controller init in stream constructor

* setup source container with prototype of source dict

* clean-up docs, dispatch of controller in pull algo call

* turn off SM streams

* remove prototype setting on underlying source container

* fix read request promise resolving

* tidy

* clean-up js conversions in read req handlers

* add queue with sizes concept

* use dom in pull promise handlers

* Demonstrate using dictionary as callback this object.

* move value with size to a struct

* fmt

* put readable stream state in a cell

* nits in expectations

* remove allow unroot by passing read result directly to promise resolving

* tidy

* root default controller inside call_pull_if_needed

---------

Signed-off-by: gterzian <[email protected]>
Co-authored-by: Josh Matthews <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

ReadableStream: implement Cancel and Locked (servo#33136)

* implement Locked

* implement Cancel and close

Signed-off-by: Wu Wayne <[email protected]>

Add GetPromiseIsHandled and SetAnyPromiseIsHandled to Promise

Signed-off-by: Taym <[email protected]>

mach fmt

Signed-off-by: Taym <[email protected]>

Readablestream default controller: get desired size (servo#33497)

Signed-off-by: gterzian <[email protected]>

stream: implement controller close (servo#33498)

Signed-off-by: gterzian <[email protected]>

implement stream default controller error (servo#33503)

Signed-off-by: gterzian <[email protected]>

Readablestream default controller: enqueue (servo#33528)

* Implement ReadableStreamDefaultControllerMethods::Enqueue

Signed-off-by: Wu Wayne <[email protected]>

* Add spec comments

Signed-off-by: Wu Wayne <[email protected]>

---------

Signed-off-by: Wu Wayne <[email protected]>

readablestream default controller: fulfill read requests (servo#33542)

Signed-off-by: gterzian <[email protected]>

Fix extract_size_algorithm (servo#33561)

Signed-off-by: Wu Wayne <[email protected]>

Readablestream default controller: use strategy size (servo#33551)

* readablestream default controller: use strategy size, fallible enqueue

Signed-off-by: gterzian <[email protected]>

docs

* readablestream default controller: clear strategy size

Signed-off-by: gterzian <[email protected]>

* prevent potential re-borrow panics when calling into the strategy size

Signed-off-by: gterzian <[email protected]>

* document readablestream constructor

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

Readablestream: impl default controller should pull, start algo (servo#33586)

* implement should-pull algo for default controller

Signed-off-by: gterzian <[email protected]>

* add start algorithm setup for default controller

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

implement promise native handling for start and pull algorithms (servo#33603)

Signed-off-by: gterzian <[email protected]>

Implement ReadableStreamDefaultReader (servo#33160)

* Implement ReadableStreamDefaultReader

 Make the stream mutable
 readable-stream-reader-generic-release
 Proper error types when releasing
 Closed
 Cancel

Signed-off-by: Taym <[email protected]>

* follow the spec more closely

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Implement ReadableStreamDefaultReader read (servo#34007)

* Implement ReadableStreamDefaultReader read

Signed-off-by: Taym <[email protected]>

* Perform readRequest’s error steps with stream.stored_error

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Improve ReadableStreamDefaultReader close (servo#34014)

* improve ReadableStreamDefaultReader close

Signed-off-by: Taym <[email protected]>

* remove resolve_closed_promise

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Use Rc<Box<[u8]>> for queue to optimize get_in_memory_bytes

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Taym95 pushed a commit that referenced this pull request Nov 18, 2024
---------

Co-authored-by: Jason Tsai <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Add remaining WebIDLs of ReadableStream (#32605)

* Add Reader's WebIDL files

* Add necessary methods in ReadableStream.webidl

Signed-off-by: Wu Wayne <[email protected]>

Create safe wrapper for JSFunctions (#32620)

* Create safe wrapper for JSFunctions

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add assert to check if the  name ends in a null character

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Create macro to wrap unsafe extern "C" function calls

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Remove WRAPPER_FN

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add macro example documentation

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Use  C-string literals

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Ensure name is Cstr type

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Scope #[allow(unsafe_code)]

Signed-off-by: Bentaimia Haddadi <[email protected]>

---------

Signed-off-by: Bentaimia Haddadi <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Start implementation of default controller and reader

Start implementation of default controller and reader

* implement basic internal slots, with todos

Signed-off-by: gterzian <[email protected]>

* enum for controller

Signed-off-by: gterzian <[email protected]>

* re-implement native controller methods

Signed-off-by: gterzian <[email protected]>

* add calling into pull algo

Signed-off-by: gterzian <[email protected]>

* more details on chunk enqueuing

Signed-off-by: gterzian <[email protected]>

* add fulfill read request, clean-up warnings

Signed-off-by: gterzian <[email protected]>

* read request and reader typing

Signed-off-by: gterzian <[email protected]>

* allow for more than one non-native underlying source type

Signed-off-by: gterzian <[email protected]>

* add todo for should pull

Signed-off-by: gterzian <[email protected]>

* add underlying source dom struct container

Signed-off-by: gterzian <[email protected]>

* remove rc around source type

* add default controller init in stream constructor

* setup source container with prototype of source dict

* clean-up docs, dispatch of controller in pull algo call

* turn off SM streams

* remove prototype setting on underlying source container

* fix read request promise resolving

* tidy

* clean-up js conversions in read req handlers

* add queue with sizes concept

* use dom in pull promise handlers

* Demonstrate using dictionary as callback this object.

* move value with size to a struct

* fmt

* put readable stream state in a cell

* nits in expectations

* remove allow unroot by passing read result directly to promise resolving

* tidy

* root default controller inside call_pull_if_needed

---------

Signed-off-by: gterzian <[email protected]>
Co-authored-by: Josh Matthews <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

ReadableStream: implement Cancel and Locked (#33136)

* implement Locked

* implement Cancel and close

Signed-off-by: Wu Wayne <[email protected]>

Add GetPromiseIsHandled and SetAnyPromiseIsHandled to Promise

Signed-off-by: Taym <[email protected]>

mach fmt

Signed-off-by: Taym <[email protected]>

Readablestream default controller: get desired size (#33497)

Signed-off-by: gterzian <[email protected]>

stream: implement controller close (#33498)

Signed-off-by: gterzian <[email protected]>

implement stream default controller error (#33503)

Signed-off-by: gterzian <[email protected]>

Readablestream default controller: enqueue (#33528)

* Implement ReadableStreamDefaultControllerMethods::Enqueue

Signed-off-by: Wu Wayne <[email protected]>

* Add spec comments

Signed-off-by: Wu Wayne <[email protected]>

---------

Signed-off-by: Wu Wayne <[email protected]>

readablestream default controller: fulfill read requests (#33542)

Signed-off-by: gterzian <[email protected]>

Fix extract_size_algorithm (#33561)

Signed-off-by: Wu Wayne <[email protected]>

Readablestream default controller: use strategy size (#33551)

* readablestream default controller: use strategy size, fallible enqueue

Signed-off-by: gterzian <[email protected]>

docs

* readablestream default controller: clear strategy size

Signed-off-by: gterzian <[email protected]>

* prevent potential re-borrow panics when calling into the strategy size

Signed-off-by: gterzian <[email protected]>

* document readablestream constructor

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

Readablestream: impl default controller should pull, start algo (#33586)

* implement should-pull algo for default controller

Signed-off-by: gterzian <[email protected]>

* add start algorithm setup for default controller

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

implement promise native handling for start and pull algorithms (#33603)

Signed-off-by: gterzian <[email protected]>

Implement ReadableStreamDefaultReader (#33160)

* Implement ReadableStreamDefaultReader

 Make the stream mutable
 readable-stream-reader-generic-release
 Proper error types when releasing
 Closed
 Cancel

Signed-off-by: Taym <[email protected]>

* follow the spec more closely

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Implement ReadableStreamDefaultReader read (#34007)

* Implement ReadableStreamDefaultReader read

Signed-off-by: Taym <[email protected]>

* Perform readRequest’s error steps with stream.stored_error

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Improve ReadableStreamDefaultReader close (#34014)

* improve ReadableStreamDefaultReader close

Signed-off-by: Taym <[email protected]>

* remove resolve_closed_promise

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Use Rc<Box<[u8]>> for queue to optimize get_in_memory_bytes

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Taym95 pushed a commit that referenced this pull request Dec 9, 2024
---------

Co-authored-by: Jason Tsai <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Add remaining WebIDLs of ReadableStream (#32605)

* Add Reader's WebIDL files

* Add necessary methods in ReadableStream.webidl

Signed-off-by: Wu Wayne <[email protected]>

Create safe wrapper for JSFunctions (#32620)

* Create safe wrapper for JSFunctions

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add assert to check if the  name ends in a null character

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Create macro to wrap unsafe extern "C" function calls

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Remove WRAPPER_FN

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add macro example documentation

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Use  C-string literals

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Ensure name is Cstr type

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Scope #[allow(unsafe_code)]

Signed-off-by: Bentaimia Haddadi <[email protected]>

---------

Signed-off-by: Bentaimia Haddadi <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Start implementation of default controller and reader

Start implementation of default controller and reader

* implement basic internal slots, with todos

Signed-off-by: gterzian <[email protected]>

* enum for controller

Signed-off-by: gterzian <[email protected]>

* re-implement native controller methods

Signed-off-by: gterzian <[email protected]>

* add calling into pull algo

Signed-off-by: gterzian <[email protected]>

* more details on chunk enqueuing

Signed-off-by: gterzian <[email protected]>

* add fulfill read request, clean-up warnings

Signed-off-by: gterzian <[email protected]>

* read request and reader typing

Signed-off-by: gterzian <[email protected]>

* allow for more than one non-native underlying source type

Signed-off-by: gterzian <[email protected]>

* add todo for should pull

Signed-off-by: gterzian <[email protected]>

* add underlying source dom struct container

Signed-off-by: gterzian <[email protected]>

* remove rc around source type

* add default controller init in stream constructor

* setup source container with prototype of source dict

* clean-up docs, dispatch of controller in pull algo call

* turn off SM streams

* remove prototype setting on underlying source container

* fix read request promise resolving

* tidy

* clean-up js conversions in read req handlers

* add queue with sizes concept

* use dom in pull promise handlers

* Demonstrate using dictionary as callback this object.

* move value with size to a struct

* fmt

* put readable stream state in a cell

* nits in expectations

* remove allow unroot by passing read result directly to promise resolving

* tidy

* root default controller inside call_pull_if_needed

---------

Signed-off-by: gterzian <[email protected]>
Co-authored-by: Josh Matthews <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

ReadableStream: implement Cancel and Locked (#33136)

* implement Locked

* implement Cancel and close

Signed-off-by: Wu Wayne <[email protected]>

Add GetPromiseIsHandled and SetAnyPromiseIsHandled to Promise

Signed-off-by: Taym <[email protected]>

mach fmt

Signed-off-by: Taym <[email protected]>

Readablestream default controller: get desired size (#33497)

Signed-off-by: gterzian <[email protected]>

stream: implement controller close (#33498)

Signed-off-by: gterzian <[email protected]>

implement stream default controller error (#33503)

Signed-off-by: gterzian <[email protected]>

Readablestream default controller: enqueue (#33528)

* Implement ReadableStreamDefaultControllerMethods::Enqueue

Signed-off-by: Wu Wayne <[email protected]>

* Add spec comments

Signed-off-by: Wu Wayne <[email protected]>

---------

Signed-off-by: Wu Wayne <[email protected]>

readablestream default controller: fulfill read requests (#33542)

Signed-off-by: gterzian <[email protected]>

Fix extract_size_algorithm (#33561)

Signed-off-by: Wu Wayne <[email protected]>

Readablestream default controller: use strategy size (#33551)

* readablestream default controller: use strategy size, fallible enqueue

Signed-off-by: gterzian <[email protected]>

docs

* readablestream default controller: clear strategy size

Signed-off-by: gterzian <[email protected]>

* prevent potential re-borrow panics when calling into the strategy size

Signed-off-by: gterzian <[email protected]>

* document readablestream constructor

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

Readablestream: impl default controller should pull, start algo (#33586)

* implement should-pull algo for default controller

Signed-off-by: gterzian <[email protected]>

* add start algorithm setup for default controller

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

implement promise native handling for start and pull algorithms (#33603)

Signed-off-by: gterzian <[email protected]>

Implement ReadableStreamDefaultReader (#33160)

* Implement ReadableStreamDefaultReader

 Make the stream mutable
 readable-stream-reader-generic-release
 Proper error types when releasing
 Closed
 Cancel

Signed-off-by: Taym <[email protected]>

* follow the spec more closely

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Implement ReadableStreamDefaultReader read (#34007)

* Implement ReadableStreamDefaultReader read

Signed-off-by: Taym <[email protected]>

* Perform readRequest’s error steps with stream.stored_error

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Improve ReadableStreamDefaultReader close (#34014)

* improve ReadableStreamDefaultReader close

Signed-off-by: Taym <[email protected]>

* remove resolve_closed_promise

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Use Rc<Box<[u8]>> for queue to optimize get_in_memory_bytes

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Taym95 pushed a commit that referenced this pull request Dec 12, 2024
---------

Co-authored-by: Jason Tsai <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Add remaining WebIDLs of ReadableStream (#32605)

* Add Reader's WebIDL files

* Add necessary methods in ReadableStream.webidl

Signed-off-by: Wu Wayne <[email protected]>

Create safe wrapper for JSFunctions (#32620)

* Create safe wrapper for JSFunctions

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add assert to check if the  name ends in a null character

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Create macro to wrap unsafe extern "C" function calls

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Remove WRAPPER_FN

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add macro example documentation

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Use  C-string literals

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Ensure name is Cstr type

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Scope #[allow(unsafe_code)]

Signed-off-by: Bentaimia Haddadi <[email protected]>

---------

Signed-off-by: Bentaimia Haddadi <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Start implementation of default controller and reader

Start implementation of default controller and reader

* implement basic internal slots, with todos

Signed-off-by: gterzian <[email protected]>

* enum for controller

Signed-off-by: gterzian <[email protected]>

* re-implement native controller methods

Signed-off-by: gterzian <[email protected]>

* add calling into pull algo

Signed-off-by: gterzian <[email protected]>

* more details on chunk enqueuing

Signed-off-by: gterzian <[email protected]>

* add fulfill read request, clean-up warnings

Signed-off-by: gterzian <[email protected]>

* read request and reader typing

Signed-off-by: gterzian <[email protected]>

* allow for more than one non-native underlying source type

Signed-off-by: gterzian <[email protected]>

* add todo for should pull

Signed-off-by: gterzian <[email protected]>

* add underlying source dom struct container

Signed-off-by: gterzian <[email protected]>

* remove rc around source type

* add default controller init in stream constructor

* setup source container with prototype of source dict

* clean-up docs, dispatch of controller in pull algo call

* turn off SM streams

* remove prototype setting on underlying source container

* fix read request promise resolving

* tidy

* clean-up js conversions in read req handlers

* add queue with sizes concept

* use dom in pull promise handlers

* Demonstrate using dictionary as callback this object.

* move value with size to a struct

* fmt

* put readable stream state in a cell

* nits in expectations

* remove allow unroot by passing read result directly to promise resolving

* tidy

* root default controller inside call_pull_if_needed

---------

Signed-off-by: gterzian <[email protected]>
Co-authored-by: Josh Matthews <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

ReadableStream: implement Cancel and Locked (#33136)

* implement Locked

* implement Cancel and close

Signed-off-by: Wu Wayne <[email protected]>

Add GetPromiseIsHandled and SetAnyPromiseIsHandled to Promise

Signed-off-by: Taym <[email protected]>

mach fmt

Signed-off-by: Taym <[email protected]>

Readablestream default controller: get desired size (#33497)

Signed-off-by: gterzian <[email protected]>

stream: implement controller close (#33498)

Signed-off-by: gterzian <[email protected]>

implement stream default controller error (#33503)

Signed-off-by: gterzian <[email protected]>

Readablestream default controller: enqueue (#33528)

* Implement ReadableStreamDefaultControllerMethods::Enqueue

Signed-off-by: Wu Wayne <[email protected]>

* Add spec comments

Signed-off-by: Wu Wayne <[email protected]>

---------

Signed-off-by: Wu Wayne <[email protected]>

readablestream default controller: fulfill read requests (#33542)

Signed-off-by: gterzian <[email protected]>

Fix extract_size_algorithm (#33561)

Signed-off-by: Wu Wayne <[email protected]>

Readablestream default controller: use strategy size (#33551)

* readablestream default controller: use strategy size, fallible enqueue

Signed-off-by: gterzian <[email protected]>

docs

* readablestream default controller: clear strategy size

Signed-off-by: gterzian <[email protected]>

* prevent potential re-borrow panics when calling into the strategy size

Signed-off-by: gterzian <[email protected]>

* document readablestream constructor

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

Readablestream: impl default controller should pull, start algo (#33586)

* implement should-pull algo for default controller

Signed-off-by: gterzian <[email protected]>

* add start algorithm setup for default controller

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

implement promise native handling for start and pull algorithms (#33603)

Signed-off-by: gterzian <[email protected]>

Implement ReadableStreamDefaultReader (#33160)

* Implement ReadableStreamDefaultReader

 Make the stream mutable
 readable-stream-reader-generic-release
 Proper error types when releasing
 Closed
 Cancel

Signed-off-by: Taym <[email protected]>

* follow the spec more closely

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Implement ReadableStreamDefaultReader read (#34007)

* Implement ReadableStreamDefaultReader read

Signed-off-by: Taym <[email protected]>

* Perform readRequest’s error steps with stream.stored_error

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Improve ReadableStreamDefaultReader close (#34014)

* improve ReadableStreamDefaultReader close

Signed-off-by: Taym <[email protected]>

* remove resolve_closed_promise

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Use Rc<Box<[u8]>> for queue to optimize get_in_memory_bytes

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Taym95 pushed a commit that referenced this pull request Dec 15, 2024
---------

Co-authored-by: Jason Tsai <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Add remaining WebIDLs of ReadableStream (#32605)

* Add Reader's WebIDL files

* Add necessary methods in ReadableStream.webidl

Signed-off-by: Wu Wayne <[email protected]>

Create safe wrapper for JSFunctions (#32620)

* Create safe wrapper for JSFunctions

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add assert to check if the  name ends in a null character

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Create macro to wrap unsafe extern "C" function calls

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Remove WRAPPER_FN

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add macro example documentation

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Use  C-string literals

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Ensure name is Cstr type

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Scope #[allow(unsafe_code)]

Signed-off-by: Bentaimia Haddadi <[email protected]>

---------

Signed-off-by: Bentaimia Haddadi <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Start implementation of default controller and reader

Start implementation of default controller and reader

* implement basic internal slots, with todos

Signed-off-by: gterzian <[email protected]>

* enum for controller

Signed-off-by: gterzian <[email protected]>

* re-implement native controller methods

Signed-off-by: gterzian <[email protected]>

* add calling into pull algo

Signed-off-by: gterzian <[email protected]>

* more details on chunk enqueuing

Signed-off-by: gterzian <[email protected]>

* add fulfill read request, clean-up warnings

Signed-off-by: gterzian <[email protected]>

* read request and reader typing

Signed-off-by: gterzian <[email protected]>

* allow for more than one non-native underlying source type

Signed-off-by: gterzian <[email protected]>

* add todo for should pull

Signed-off-by: gterzian <[email protected]>

* add underlying source dom struct container

Signed-off-by: gterzian <[email protected]>

* remove rc around source type

* add default controller init in stream constructor

* setup source container with prototype of source dict

* clean-up docs, dispatch of controller in pull algo call

* turn off SM streams

* remove prototype setting on underlying source container

* fix read request promise resolving

* tidy

* clean-up js conversions in read req handlers

* add queue with sizes concept

* use dom in pull promise handlers

* Demonstrate using dictionary as callback this object.

* move value with size to a struct

* fmt

* put readable stream state in a cell

* nits in expectations

* remove allow unroot by passing read result directly to promise resolving

* tidy

* root default controller inside call_pull_if_needed

---------

Signed-off-by: gterzian <[email protected]>
Co-authored-by: Josh Matthews <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

ReadableStream: implement Cancel and Locked (#33136)

* implement Locked

* implement Cancel and close

Signed-off-by: Wu Wayne <[email protected]>

Add GetPromiseIsHandled and SetAnyPromiseIsHandled to Promise

Signed-off-by: Taym <[email protected]>

mach fmt

Signed-off-by: Taym <[email protected]>

Readablestream default controller: get desired size (#33497)

Signed-off-by: gterzian <[email protected]>

stream: implement controller close (#33498)

Signed-off-by: gterzian <[email protected]>

implement stream default controller error (#33503)

Signed-off-by: gterzian <[email protected]>

Readablestream default controller: enqueue (#33528)

* Implement ReadableStreamDefaultControllerMethods::Enqueue

Signed-off-by: Wu Wayne <[email protected]>

* Add spec comments

Signed-off-by: Wu Wayne <[email protected]>

---------

Signed-off-by: Wu Wayne <[email protected]>

readablestream default controller: fulfill read requests (#33542)

Signed-off-by: gterzian <[email protected]>

Fix extract_size_algorithm (#33561)

Signed-off-by: Wu Wayne <[email protected]>

Readablestream default controller: use strategy size (#33551)

* readablestream default controller: use strategy size, fallible enqueue

Signed-off-by: gterzian <[email protected]>

docs

* readablestream default controller: clear strategy size

Signed-off-by: gterzian <[email protected]>

* prevent potential re-borrow panics when calling into the strategy size

Signed-off-by: gterzian <[email protected]>

* document readablestream constructor

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

Readablestream: impl default controller should pull, start algo (#33586)

* implement should-pull algo for default controller

Signed-off-by: gterzian <[email protected]>

* add start algorithm setup for default controller

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

implement promise native handling for start and pull algorithms (#33603)

Signed-off-by: gterzian <[email protected]>

Implement ReadableStreamDefaultReader (#33160)

* Implement ReadableStreamDefaultReader

 Make the stream mutable
 readable-stream-reader-generic-release
 Proper error types when releasing
 Closed
 Cancel

Signed-off-by: Taym <[email protected]>

* follow the spec more closely

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Implement ReadableStreamDefaultReader read (#34007)

* Implement ReadableStreamDefaultReader read

Signed-off-by: Taym <[email protected]>

* Perform readRequest’s error steps with stream.stored_error

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Improve ReadableStreamDefaultReader close (#34014)

* improve ReadableStreamDefaultReader close

Signed-off-by: Taym <[email protected]>

* remove resolve_closed_promise

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Use Rc<Box<[u8]>> for queue to optimize get_in_memory_bytes

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Taym95 pushed a commit that referenced this pull request Dec 17, 2024
---------

Co-authored-by: Jason Tsai <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Add remaining WebIDLs of ReadableStream (#32605)

* Add Reader's WebIDL files

* Add necessary methods in ReadableStream.webidl

Signed-off-by: Wu Wayne <[email protected]>

Create safe wrapper for JSFunctions (#32620)

* Create safe wrapper for JSFunctions

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add assert to check if the  name ends in a null character

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Create macro to wrap unsafe extern "C" function calls

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Remove WRAPPER_FN

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add macro example documentation

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Use  C-string literals

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Ensure name is Cstr type

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Scope #[allow(unsafe_code)]

Signed-off-by: Bentaimia Haddadi <[email protected]>

---------

Signed-off-by: Bentaimia Haddadi <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Start implementation of default controller and reader

Start implementation of default controller and reader

* implement basic internal slots, with todos

Signed-off-by: gterzian <[email protected]>

* enum for controller

Signed-off-by: gterzian <[email protected]>

* re-implement native controller methods

Signed-off-by: gterzian <[email protected]>

* add calling into pull algo

Signed-off-by: gterzian <[email protected]>

* more details on chunk enqueuing

Signed-off-by: gterzian <[email protected]>

* add fulfill read request, clean-up warnings

Signed-off-by: gterzian <[email protected]>

* read request and reader typing

Signed-off-by: gterzian <[email protected]>

* allow for more than one non-native underlying source type

Signed-off-by: gterzian <[email protected]>

* add todo for should pull

Signed-off-by: gterzian <[email protected]>

* add underlying source dom struct container

Signed-off-by: gterzian <[email protected]>

* remove rc around source type

* add default controller init in stream constructor

* setup source container with prototype of source dict

* clean-up docs, dispatch of controller in pull algo call

* turn off SM streams

* remove prototype setting on underlying source container

* fix read request promise resolving

* tidy

* clean-up js conversions in read req handlers

* add queue with sizes concept

* use dom in pull promise handlers

* Demonstrate using dictionary as callback this object.

* move value with size to a struct

* fmt

* put readable stream state in a cell

* nits in expectations

* remove allow unroot by passing read result directly to promise resolving

* tidy

* root default controller inside call_pull_if_needed

---------

Signed-off-by: gterzian <[email protected]>
Co-authored-by: Josh Matthews <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

ReadableStream: implement Cancel and Locked (#33136)

* implement Locked

* implement Cancel and close

Signed-off-by: Wu Wayne <[email protected]>

Add GetPromiseIsHandled and SetAnyPromiseIsHandled to Promise

Signed-off-by: Taym <[email protected]>

mach fmt

Signed-off-by: Taym <[email protected]>

Readablestream default controller: get desired size (#33497)

Signed-off-by: gterzian <[email protected]>

stream: implement controller close (#33498)

Signed-off-by: gterzian <[email protected]>

implement stream default controller error (#33503)

Signed-off-by: gterzian <[email protected]>

Readablestream default controller: enqueue (#33528)

* Implement ReadableStreamDefaultControllerMethods::Enqueue

Signed-off-by: Wu Wayne <[email protected]>

* Add spec comments

Signed-off-by: Wu Wayne <[email protected]>

---------

Signed-off-by: Wu Wayne <[email protected]>

readablestream default controller: fulfill read requests (#33542)

Signed-off-by: gterzian <[email protected]>

Fix extract_size_algorithm (#33561)

Signed-off-by: Wu Wayne <[email protected]>

Readablestream default controller: use strategy size (#33551)

* readablestream default controller: use strategy size, fallible enqueue

Signed-off-by: gterzian <[email protected]>

docs

* readablestream default controller: clear strategy size

Signed-off-by: gterzian <[email protected]>

* prevent potential re-borrow panics when calling into the strategy size

Signed-off-by: gterzian <[email protected]>

* document readablestream constructor

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

Readablestream: impl default controller should pull, start algo (#33586)

* implement should-pull algo for default controller

Signed-off-by: gterzian <[email protected]>

* add start algorithm setup for default controller

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

implement promise native handling for start and pull algorithms (#33603)

Signed-off-by: gterzian <[email protected]>

Implement ReadableStreamDefaultReader (#33160)

* Implement ReadableStreamDefaultReader

 Make the stream mutable
 readable-stream-reader-generic-release
 Proper error types when releasing
 Closed
 Cancel

Signed-off-by: Taym <[email protected]>

* follow the spec more closely

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Implement ReadableStreamDefaultReader read (#34007)

* Implement ReadableStreamDefaultReader read

Signed-off-by: Taym <[email protected]>

* Perform readRequest’s error steps with stream.stored_error

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Improve ReadableStreamDefaultReader close (#34014)

* improve ReadableStreamDefaultReader close

Signed-off-by: Taym <[email protected]>

* remove resolve_closed_promise

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Use Rc<Box<[u8]>> for queue to optimize get_in_memory_bytes

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
sagudev pushed a commit that referenced this pull request Dec 17, 2024
---------

Co-authored-by: Jason Tsai <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Add remaining WebIDLs of ReadableStream (#32605)

* Add Reader's WebIDL files

* Add necessary methods in ReadableStream.webidl

Signed-off-by: Wu Wayne <[email protected]>

Create safe wrapper for JSFunctions (#32620)

* Create safe wrapper for JSFunctions

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add assert to check if the  name ends in a null character

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Create macro to wrap unsafe extern "C" function calls

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Remove WRAPPER_FN

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add macro example documentation

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Use  C-string literals

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Ensure name is Cstr type

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Scope #[allow(unsafe_code)]

Signed-off-by: Bentaimia Haddadi <[email protected]>

---------

Signed-off-by: Bentaimia Haddadi <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Start implementation of default controller and reader

Start implementation of default controller and reader

* implement basic internal slots, with todos

Signed-off-by: gterzian <[email protected]>

* enum for controller

Signed-off-by: gterzian <[email protected]>

* re-implement native controller methods

Signed-off-by: gterzian <[email protected]>

* add calling into pull algo

Signed-off-by: gterzian <[email protected]>

* more details on chunk enqueuing

Signed-off-by: gterzian <[email protected]>

* add fulfill read request, clean-up warnings

Signed-off-by: gterzian <[email protected]>

* read request and reader typing

Signed-off-by: gterzian <[email protected]>

* allow for more than one non-native underlying source type

Signed-off-by: gterzian <[email protected]>

* add todo for should pull

Signed-off-by: gterzian <[email protected]>

* add underlying source dom struct container

Signed-off-by: gterzian <[email protected]>

* remove rc around source type

* add default controller init in stream constructor

* setup source container with prototype of source dict

* clean-up docs, dispatch of controller in pull algo call

* turn off SM streams

* remove prototype setting on underlying source container

* fix read request promise resolving

* tidy

* clean-up js conversions in read req handlers

* add queue with sizes concept

* use dom in pull promise handlers

* Demonstrate using dictionary as callback this object.

* move value with size to a struct

* fmt

* put readable stream state in a cell

* nits in expectations

* remove allow unroot by passing read result directly to promise resolving

* tidy

* root default controller inside call_pull_if_needed

---------

Signed-off-by: gterzian <[email protected]>
Co-authored-by: Josh Matthews <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

ReadableStream: implement Cancel and Locked (#33136)

* implement Locked

* implement Cancel and close

Signed-off-by: Wu Wayne <[email protected]>

Add GetPromiseIsHandled and SetAnyPromiseIsHandled to Promise

Signed-off-by: Taym <[email protected]>

mach fmt

Signed-off-by: Taym <[email protected]>

Readablestream default controller: get desired size (#33497)

Signed-off-by: gterzian <[email protected]>

stream: implement controller close (#33498)

Signed-off-by: gterzian <[email protected]>

implement stream default controller error (#33503)

Signed-off-by: gterzian <[email protected]>

Readablestream default controller: enqueue (#33528)

* Implement ReadableStreamDefaultControllerMethods::Enqueue

Signed-off-by: Wu Wayne <[email protected]>

* Add spec comments

Signed-off-by: Wu Wayne <[email protected]>

---------

Signed-off-by: Wu Wayne <[email protected]>

readablestream default controller: fulfill read requests (#33542)

Signed-off-by: gterzian <[email protected]>

Fix extract_size_algorithm (#33561)

Signed-off-by: Wu Wayne <[email protected]>

Readablestream default controller: use strategy size (#33551)

* readablestream default controller: use strategy size, fallible enqueue

Signed-off-by: gterzian <[email protected]>

docs

* readablestream default controller: clear strategy size

Signed-off-by: gterzian <[email protected]>

* prevent potential re-borrow panics when calling into the strategy size

Signed-off-by: gterzian <[email protected]>

* document readablestream constructor

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

Readablestream: impl default controller should pull, start algo (#33586)

* implement should-pull algo for default controller

Signed-off-by: gterzian <[email protected]>

* add start algorithm setup for default controller

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

implement promise native handling for start and pull algorithms (#33603)

Signed-off-by: gterzian <[email protected]>

Implement ReadableStreamDefaultReader (#33160)

* Implement ReadableStreamDefaultReader

 Make the stream mutable
 readable-stream-reader-generic-release
 Proper error types when releasing
 Closed
 Cancel

Signed-off-by: Taym <[email protected]>

* follow the spec more closely

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Implement ReadableStreamDefaultReader read (#34007)

* Implement ReadableStreamDefaultReader read

Signed-off-by: Taym <[email protected]>

* Perform readRequest’s error steps with stream.stored_error

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Improve ReadableStreamDefaultReader close (#34014)

* improve ReadableStreamDefaultReader close

Signed-off-by: Taym <[email protected]>

* remove resolve_closed_promise

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Use Rc<Box<[u8]>> for queue to optimize get_in_memory_bytes

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
github-merge-queue bot pushed a commit that referenced this pull request Dec 17, 2024
…troller` (#34064)

* Re-implement readablestream: basics and default reader and controller

---------

Co-authored-by: Jason Tsai <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Add remaining WebIDLs of ReadableStream (#32605)

* Add Reader's WebIDL files

* Add necessary methods in ReadableStream.webidl

Signed-off-by: Wu Wayne <[email protected]>

Create safe wrapper for JSFunctions (#32620)

* Create safe wrapper for JSFunctions

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add assert to check if the  name ends in a null character

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Create macro to wrap unsafe extern "C" function calls

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Remove WRAPPER_FN

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Add macro example documentation

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Use  C-string literals

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Ensure name is Cstr type

Signed-off-by: Bentaimia Haddadi <[email protected]>

* Scope #[allow(unsafe_code)]

Signed-off-by: Bentaimia Haddadi <[email protected]>

---------

Signed-off-by: Bentaimia Haddadi <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

Start implementation of default controller and reader

Start implementation of default controller and reader

* implement basic internal slots, with todos

Signed-off-by: gterzian <[email protected]>

* enum for controller

Signed-off-by: gterzian <[email protected]>

* re-implement native controller methods

Signed-off-by: gterzian <[email protected]>

* add calling into pull algo

Signed-off-by: gterzian <[email protected]>

* more details on chunk enqueuing

Signed-off-by: gterzian <[email protected]>

* add fulfill read request, clean-up warnings

Signed-off-by: gterzian <[email protected]>

* read request and reader typing

Signed-off-by: gterzian <[email protected]>

* allow for more than one non-native underlying source type

Signed-off-by: gterzian <[email protected]>

* add todo for should pull

Signed-off-by: gterzian <[email protected]>

* add underlying source dom struct container

Signed-off-by: gterzian <[email protected]>

* remove rc around source type

* add default controller init in stream constructor

* setup source container with prototype of source dict

* clean-up docs, dispatch of controller in pull algo call

* turn off SM streams

* remove prototype setting on underlying source container

* fix read request promise resolving

* tidy

* clean-up js conversions in read req handlers

* add queue with sizes concept

* use dom in pull promise handlers

* Demonstrate using dictionary as callback this object.

* move value with size to a struct

* fmt

* put readable stream state in a cell

* nits in expectations

* remove allow unroot by passing read result directly to promise resolving

* tidy

* root default controller inside call_pull_if_needed

---------

Signed-off-by: gterzian <[email protected]>
Co-authored-by: Josh Matthews <[email protected]>
Signed-off-by: Wu Wayne <[email protected]>

ReadableStream: implement Cancel and Locked (#33136)

* implement Locked

* implement Cancel and close

Signed-off-by: Wu Wayne <[email protected]>

Add GetPromiseIsHandled and SetAnyPromiseIsHandled to Promise

Signed-off-by: Taym <[email protected]>

mach fmt

Signed-off-by: Taym <[email protected]>

Readablestream default controller: get desired size (#33497)

Signed-off-by: gterzian <[email protected]>

stream: implement controller close (#33498)

Signed-off-by: gterzian <[email protected]>

implement stream default controller error (#33503)

Signed-off-by: gterzian <[email protected]>

Readablestream default controller: enqueue (#33528)

* Implement ReadableStreamDefaultControllerMethods::Enqueue

Signed-off-by: Wu Wayne <[email protected]>

* Add spec comments

Signed-off-by: Wu Wayne <[email protected]>

---------

Signed-off-by: Wu Wayne <[email protected]>

readablestream default controller: fulfill read requests (#33542)

Signed-off-by: gterzian <[email protected]>

Fix extract_size_algorithm (#33561)

Signed-off-by: Wu Wayne <[email protected]>

Readablestream default controller: use strategy size (#33551)

* readablestream default controller: use strategy size, fallible enqueue

Signed-off-by: gterzian <[email protected]>

docs

* readablestream default controller: clear strategy size

Signed-off-by: gterzian <[email protected]>

* prevent potential re-borrow panics when calling into the strategy size

Signed-off-by: gterzian <[email protected]>

* document readablestream constructor

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

Readablestream: impl default controller should pull, start algo (#33586)

* implement should-pull algo for default controller

Signed-off-by: gterzian <[email protected]>

* add start algorithm setup for default controller

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>

implement promise native handling for start and pull algorithms (#33603)

Signed-off-by: gterzian <[email protected]>

Implement ReadableStreamDefaultReader (#33160)

* Implement ReadableStreamDefaultReader

 Make the stream mutable
 readable-stream-reader-generic-release
 Proper error types when releasing
 Closed
 Cancel

Signed-off-by: Taym <[email protected]>

* follow the spec more closely

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Implement ReadableStreamDefaultReader read (#34007)

* Implement ReadableStreamDefaultReader read

Signed-off-by: Taym <[email protected]>

* Perform readRequest’s error steps with stream.stored_error

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Improve ReadableStreamDefaultReader close (#34014)

* improve ReadableStreamDefaultReader close

Signed-off-by: Taym <[email protected]>

* remove resolve_closed_promise

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>

Use Rc<Box<[u8]>> for queue to optimize get_in_memory_bytes

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>

* Improve read_a_chunk and stop_reading implemntation (#34077)

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Implement ReadableStreamDefaultReader::Constructor  (#34056)

* Implement ReadableStreamDefaultReader::Constructor

Signed-off-by: Taym <[email protected]>

* make start_reading returns ReadableStreamDefaultReader

Signed-off-by: Taym <[email protected]>

* Fix can_gc
Signed-off-by: Taym <[email protected]>

* Add canGc to ReadableStream::GetReader

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Readablestream fix CanGc (#34080)

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* correct ReadableStream::error_native implementation and fix clippy warnings (#34088)

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* turn assertion of stream present on controller on a early return with false (#34097)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Fix already mutably borrowed crash (#34105)

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Refactor `get_in_memory_bytes` to return `Option<Vec<u8>> and avoid `unreachable!` panic (#34123)

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Set ReadableStream ReadableStreamDefaultReader in start_reading (#34125)

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Fix  Unhandled rejection with value: object `TypeError: stream is not locked` (#34204)

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Fix  assert!(self.is_readable()) crash in ReadableStream::close (#34207)

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* fix call to to_js_object in underlying source algos (#34098)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* do not assume presence of a stream when performing pull steps (#34244)

* do not assume presence of a stream when performing pull steps

Signed-off-by: gterzian <[email protected]>

* add doc comments

Co-authored-by: Taym Haddadi <[email protected]>
Signed-off-by: Gregory Terzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Gregory Terzian <[email protected]>
Co-authored-by: Taym Haddadi <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* gracefully handle failure of underlying source algorithms (#34243)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* ensure result of calling start algo is an object (#34245)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* return js failed error if underlying source constructor threw (#34246)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Use JSVal for ValueWithSize::value (#34259)

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* fix release reader lock, (#34255)

fix setting stream on controller in new,
fix matching fallthrough,
reduce visibility of controller error method

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* in stream cancel, reject promist if locked (#34271)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Fix UnderlyingSourceContainer::call_start_algorithm (#34277)

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* implement controller cancel steps, fix stream cancel method (#34301)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* fix conditional in perform pull steps (#34324)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* set reader closed promise to one resolved with undefined if stream closed on init (#34321)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* fix init of stream and controller (#34323)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Stream: Fix reborrow in controller enqueue, and fix error and exception handling. (#34338)

* fix re-borrow in controller enqueue

Signed-off-by: gterzian <[email protected]>

* do not call to_jsval on JSFailed error in enqueue

Signed-off-by: gterzian <[email protected]>

* fix error and exception handling in controller enqueue

Signed-off-by: gterzian <[email protected]>

* remove TODO about correctness of stored error, since this was done as part of the switch to a js val.

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Stream: Fix incorrect "this" object in underlying source callbacks (#34368)

* in controller close, throw type error if stream cannot be closed

Signed-off-by: gterzian <[email protected]>

* store original js object for underlying source, for use as this object in callbacks

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* fix conditional logic in enqueue to ensure pull is called into (#34375)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Stream: Fix bytelength queueing strategy (#34376)

* fix handling of value that is not an object in bytelength queuing strategy

Signed-off-by: gterzian <[email protected]>

* return type error if strategy size call fails, to prevent panic because no exception is pending

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* set correct  default count queuing size strategy (#34389)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* use proto in stream constructor (#34441)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* fix edge cases in get_desired_size (#34440)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Stream: fix algo and strategy calls error handling. (#34424)

* fix error handling in cancel steps

Signed-off-by: gterzian <[email protected]>

* in pull steps, reject promise if pull algo throws

Signed-off-by: gterzian <[email protected]>

* if start algorithm fails, rethrow the error

Signed-off-by: gterzian <[email protected]>

* when the strategy size fails, directly get the pending exception and use it to error the stream

Signed-off-by: gterzian <[email protected]>

* add error handling to enqueue value with size

Signed-off-by: gterzian <[email protected]>

* when enqueueing a value errors, ensure we error and stream with the same error used to throw an exception

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* fix native use of streams (#34468)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Implement readablestreamdefaulttee (#34405)

* Implement readablestreamdefaulttee

Signed-off-by: Taym <[email protected]>

* Create UnderlyingSourceType::Tee each stream

Signed-off-by: Taym <[email protected]>

* Use Dom instead of DomRoot

Signed-off-by: Taym <[email protected]>

* Queue a microtask for readRequest chunk steps

Signed-off-by: Taym <[email protected]>

* fix create_readable_stream

Signed-off-by: Taym <[email protected]>

* Remove unnecessary Rc

Signed-off-by: Taym <[email protected]>

* Use correct doc link

Signed-off-by: Taym <[email protected]>

* Add #[allow(crown::unrooted_must_root)]

Signed-off-by: Taym <[email protected]>

* Fix crash in ClosedPromiseRejectionHandler

Signed-off-by: Taym <[email protected]>

* reflect TeeReadRequest and TeeUnderlyingSource
Signed-off-by: Taym <[email protected]>

* fix can_gc

Signed-off-by: Taym <[email protected]>

* reflect tee source, and fix use of mutable dom for tee source and request

Signed-off-by: gterzian <[email protected]>

* Fix typo that resolves multiple test failures in 'Tee' tests

Signed-off-by: Taym <[email protected]>

* Fix readable-streams/tee.any.js test

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Co-authored-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Align ReadableStreamDefaultReader with spec and fix additional tests in default-reader.any.js (#34531)

And fix crate::DomTypeHolder usage

* Align ReadableStreamDefaultReader with spec and fix additional tests in default-reader.any.js

Signed-off-by: Taym <[email protected]>

* make reader rooted in Constructor and acquire_default_reader

Signed-off-by: Taym <[email protected]>

* Remove spaces

Signed-off-by: Taym <[email protected]>

---------

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Streams: fetch stream chunks should be uint8 arrays (#34553)

* fetch stream chunks should be uint8 arrays

Signed-off-by: gterzian <[email protected]>

* fix clippy

Signed-off-by: Taym Haddadi <[email protected]>

---------

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>
Co-authored-by: Taym Haddadi <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Update wpt test for ReadableStream reimplementation (#34579)

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Fix ignore_malloc_size_of in readablestream tee (#34578)

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Remove incorrect use of handle array, fail test safely by giving only one reason (#34560)

Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Update more wpt test for ReadableStream reimplementation (#34598)

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Fix doc and rename Tee to DefaultTee (#34612)

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* fix: Address review comments

Signed-off-by: Taym <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>

* Update response-stream-with-broken-then.any.js.ini test expectation

Signed-off-by: Taym Haddadi <[email protected]>

* fix reflect_dom_object can_gc

Signed-off-by: Taym Haddadi <[email protected]>

* Fix compositeReason for DefaultTeeUnderlyingSource (#34627)

* Fix compositeReason for DefaultTeeUnderlyingSource

Signed-off-by: Taym Haddadi <[email protected]>

* Update test

Signed-off-by: Taym Haddadi <[email protected]>

---------

Signed-off-by: Taym Haddadi <[email protected]>

* Last fixes stream (#34636)

* remove now unsused from_js method of readable stream

* fix documenation of error steps

* return type error instread of panicking on a todo, when trying to construct a stream of type bytes

Signed-off-by: gterzian <[email protected]>

---------

Signed-off-by: Gregory Terzian <[email protected]>

* fix crown rooting related errors (#34662)

Signed-off-by: Gregory Terzian <[email protected]>

---------

Signed-off-by: Taym <[email protected]>
Signed-off-by: gterzian <[email protected]>
Signed-off-by: Taym Haddadi <[email protected]>
Signed-off-by: Gregory Terzian <[email protected]>
Co-authored-by: Wu Wayne <[email protected]>
Co-authored-by: Taym Haddadi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant