Shannon Booth
9d0700e770
LibWeb: Fix IDL getter for ReadableByteStreamController byobRequest
...
We were previously only returning the controllers current
[[byobRequest]] instead of taking into account pending pull intos.
Rename the getter function which would return the controllers
[[byobRequest]] slot to `raw_byob_request` to differentiate it from
the IDL getter.
This also leaves a FIXME for a spec step which we are also not currently
implementing correctly.
2023-12-03 20:26:14 +01:00
Shannon Booth
b2a0a41503
LibWeb: Use TypedArrayBase::kind for pull into constructor lookup
2023-12-03 20:26:14 +01:00
Shannon Booth
673329e1bd
LibWeb: Use ArrayBufferView for ReadableStreamBYOBReader
...
Which means that we now have support for DataViews.
Using the ArrayBufferView class also seems to make this read a whole
bunch nicer as well.
2023-11-24 08:43:35 +01:00
Shannon Booth
dcb7bb4a92
LibWeb: Support BYOB readers in ReadableByteStreamControllerEnqueue
2023-11-19 18:53:17 +01:00
Shannon Booth
9662872b20
LibWeb: Implement AO ReadableStreamByobReaderRead
...
We've finally implemented enough of the Streams AOs so that we are close
to actually performing read operations with BYOB readers.
2023-11-19 18:53:17 +01:00
Shannon Booth
3d37cb0753
LibWeb: Partially implement ReadableByteStreamControllerPullInto
...
This implementation does not handle DataViews at the moment, but should
handle all of the typed arrays.
2023-11-19 18:53:17 +01:00
Shannon Booth
1443715775
LibWeb: Add ReadableBSControllerProcessPullIntoDescriptorsUsingQueue
2023-11-19 18:53:17 +01:00
Shannon Booth
737dc6ce4e
LibWeb: Add ReadableByteStreamControllerFillPullIntoDescriptorFromQueue
2023-11-19 18:53:17 +01:00
Shannon Booth
aca63fd947
LibWeb: Implement ReadableByteStreamControllerCommitPullIntoDescriptor
2023-11-19 18:53:17 +01:00
Shannon Booth
cdcc1ebbba
LibWeb: Implement ReadableByteStreamControllerFillHeadPullIntoDescriptor
2023-11-19 18:53:17 +01:00
Shannon Booth
26e393fbbc
LibWeb: Implement ReadableByteStreamControllerConvertPullIntoDescriptor
2023-11-19 18:53:17 +01:00
Shannon Booth
25f8b80eab
LibWeb: Use move on ByteBuffer in TransferArrayBuffer
2023-11-19 18:53:17 +01:00
Shannon Booth
446a78f30e
LibWeb: Implement Streams AO ReadableStreamAddReadIntoRequest
...
This is effectively identical to ReadableStreamAddReadRequest besides
from the fact that it takes a ReadIntoRequest instead of a ReadRequest,
and is instead intended to be used for BYOB readers.
2023-11-19 18:53:17 +01:00
Shannon Booth
f27e76b0b7
LibWeb: Make ReadableStreamAddReadRequest take a NonnullGCPtr
...
Make it more obvious in the function signature that this function will
be taking a GC ref to a ReadRequest by appending it to the
ReadableStreams pending read requests.
2023-11-19 18:53:17 +01:00
Shannon Booth
5ef41dca53
LibWeb: Implement Streams AO ReadableStreamFulfillReadIntoRequest
2023-11-19 18:53:17 +01:00
Shannon Booth
acda17ccc4
LibWeb/Streams: Handle BYOB reader in ReadableStreamError
2023-09-24 20:10:50 -06:00
Timothy Flynn
54d1f4e234
LibJS: Stop propagating small OOM errors from the Error object
2023-09-09 13:03:25 -04:00
Shannon Booth
b06d80e6fd
LibWeb: Implement ReadableStreamBYOBReaderRelease Streams AO
2023-08-31 19:28:56 +02:00
Shannon Booth
8ce4f5597c
LibWeb: Implement ReadableStreamBYOBReaderErrorReadIntoRequests AO
2023-08-31 19:28:56 +02:00
Shannon Booth
e08072ac2b
LibWeb: Explicitly clear read requests for default stream reader
...
Expecting the list to be cleared from the move() is quite strange and
not particularly clear. Explicitly clear the requests instead.
2023-08-31 19:28:56 +02:00
Andreas Kling
72c9f56c66
LibJS: Make Heap::allocate<T>() infallible
...
Stop worrying about tiny OOMs. Work towards #20449 .
While going through these, I also changed the function signature in many
places where returning ThrowCompletionOr<T> is no longer necessary.
2023-08-13 15:38:42 +02:00
Andreas Kling
9c3e9e8981
LibWeb/Streams: Make ReadRequest GC-allocated
...
This allows it to keep its edges alive. Fixes an intermittent crash seen
by UBSAN on CI. :^)
2023-08-09 19:16:07 +02:00
Andreas Kling
97ebfd9f0f
LibJS: Make Value::to_string_without_side_effects() infallible
...
Work towards #20449 .
2023-08-09 17:09:16 +02:00
Andreas Kling
c084269e5f
LibJS: Make PrimitiveString::utf8_string() infallible
...
Work towards #20449 .
2023-08-09 17:09:16 +02:00
Daniel Bertalan
9feb1ce39f
LibJS+LibWeb: Apply the Rule of Zero to {Nonnull,}GCPtr<T>
...
The compiler-generated copy constructor and copy assignment operator
already do the right thing (which is to simply copy the underlying
pointer).
The [Itanium C++ ABI][1] treats any class with non-trivial copy/move
constructors and destructors as non-trivial for the purposes of calls --
even if they are functionally identical to the compiler-generated ones.
If a class is non-trivial, it cannot be passed or returned in registers,
only via an invisible reference, which is worse for codegen. This commit
makes `{Nonnull,}GCPtr` trivial.
As the compiler can be sure that capturing a `GCPtr` by value has no
side effects, a few `-Wunused-lambda-capture` warnings had to be
addressed in LibWeb.
GCC seems to have a bug that prevents `ExceptionOr<Variant<GCPtr<T>>>`
from being implicitly constructed from `GCPtr<T>` after this change. A
non-invasive workaround is to explicitly construct the inner Variant
type.
[1]: https://itanium-cxx-abi.github.io/cxx-abi/abi.html#non-trivial
2023-08-07 22:20:03 -04:00
Shannon Booth
2b46e6f664
Everywhere: Update copyrights with my new serenityos.org e-mail :^)
2023-07-15 16:21:29 +02:00
Kenneth Myhra
7117cb7a35
LibWeb: Add set_up_transform_stream_default_controller_from_transformer
2023-07-15 11:59:39 +02:00
Kenneth Myhra
f7c532d093
LibWeb: Add AO set_up_transform_stream_default_controller()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
86455bbb74
LibWeb: Add AO initialize_transform_stream()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
a52f9970bc
LibWeb: Add AO create_readable_stream()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
8e6b386ff7
LibWeb: Add AO initialize_readable_stream()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
f91c150cfc
LibWeb: Add AO transform_stream_default_source_pull_algorithm()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
894f1e9d62
LibWeb: Add AO create_writable_stream()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
7d8f24c227
LibWeb: Add AO initialize_writable_stream()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
641b9edd89
LibWeb: Add AO transform_stream_default_sink_close_algorithm()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
48921add86
LibWeb: Add AO transform_stream_default_sink_abort_algorithm()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
18aa588968
LibWeb: Add AO transform_stream_default_sink_write_algorithm()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
11c0600729
LibWeb: Add AO transform_stream_default_controller_perform_transform()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
e1740938fc
LibWeb: Add AO transform_stream_default_controller_terminate()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
e028918a64
LibWeb: Add AO transform_stream_default_controller_enqueue()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
d2236e5ca5
LibWeb: Add AO readable_stream_default_controller_has_backpressure()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
9efcc01387
LibWeb: Add AO transform_stream_default_controller_error()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
69fb6f15f9
LibWeb: Add AO transform_stream_error()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
ad73c03ea3
LibWeb: Add AO transform_stream_error_writable_and_unblock_write()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
91f58eb220
LibWeb: Add AO transform_stream_set_backpressure()
2023-07-15 11:59:39 +02:00
Kenneth Myhra
d8d0e8a6ea
LibWeb: Add AO transform_stream_default_controller_clear_algorithms()
2023-07-15 11:59:39 +02:00
Shannon Booth
729f4838c2
LibWeb: Implement the Streams AcquireReadableStreamBYOBReader AO
...
Co-Authored-By: Matthew Olsson <mattco@serenityos.org>
2023-07-05 23:33:20 +01:00
Shannon Booth
9ccadf61a2
LibWeb: Implement the Streams SetUpReadableStreamBYOBReader AO
...
Co-Authored-By: Matthew Olsson <mattco@serenityos.org>
2023-07-05 23:33:20 +01:00
Shannon Booth
33f6e5d516
LibWeb: Implement Streams AO ExtractSizeAlgorithm(strategy)
2023-06-22 06:58:23 +02:00
Shannon Booth
060c130c82
LibWeb: Implement SetUpReadableByteStreamControllerFromUnderlyingSource
2023-06-22 06:58:23 +02:00