Shannon Booth
d81b0e3c86
LibWeb/Streams: Make ReadIntoRequest GC-allocated
...
This ports the same change which was made in 9c3e9e8981
to
ReadRequest, although nothing actually implements this interface yet.
2023-09-24 20:10:50 -06: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
Timothy Flynn
df915f8a98
LibWeb: Add missing return statement to bail from a stream read request
...
As the spec states, we should invoke the failureSteps and abort.
2023-09-09 13:03:25 -04:00
Shannon Booth
6e9aeccf90
LibWeb: Implement releaseLock interface for ReadableStreamBYOBReader
2023-08-31 19:28:56 +02: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
Shannon Booth
c279d514e9
LibWeb: Implement ReadableStreamBYOBReader constructor
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
40bdcdf966
LibWeb/Streams: Add WritableStreamDefaultController::visit_edges()
2023-08-09 19:16:07 +02:00
Andreas Kling
26d5d86682
LibWeb/Streams: Mark ReadableStreamGenericReaderMixin::m_realm
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
Andreas Kling
18c54d8d40
LibJS: Make Cell::initialize() return void
...
Stop worrying about tiny OOMs.
Work towards #20405
2023-08-08 07:39:11 +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
Timothy Flynn
9d7215c636
LibJS+LibWeb: Move IteratorOperations.h AOs to Iterator.h
...
Rather than splitting the Iterator type and its AOs into two files,
let's combine them into one file to match every other JS runtime object
that we have.
2023-07-19 14:11:43 +01:00
Shannon Booth
2b46e6f664
Everywhere: Update copyrights with my new serenityos.org e-mail :^)
2023-07-15 16:21:29 +02:00
Kenneth Myhra
d4f729a6d3
LibWeb: Implement TransforStream's constructor
2023-07-15 11:59:39 +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
4d4fc53f5c
LibWeb: Implement TransformStreamDefaultController::terminate()
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
4ae82983a4
LibWeb: Implement TransformStreamDefaultController::enqueue()
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
2d0a2756b4
LibWeb: Implement TransformStreamDefaultController::error()
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
Kenneth Myhra
0091a60448
LibWeb: Add TransformStreamDefaultController scaffolding
...
This adds the scaffolding of TransformStreamDefaultController so we can
start implementing the necessary abstract operations for it.
2023-07-15 11:59:39 +02:00
Kenneth Myhra
f1d69d789b
LibWeb: Add TransformStream scaffolding
...
This adds the scaffolding of TransformStream so we can start
implementing the necessary abstract operations for it.
2023-07-15 11:59:39 +02:00
Kenneth Myhra
12ff48047f
LibWeb: Add Transformer API
...
This adds the Transformer API which the TransformStream() constructor
accepts as its first argument.
2023-07-15 11:59:39 +02:00
Shannon Booth
0f040456a7
LibWeb: Add ReadableStreamGetReaderOptions to ReadableStream.getReader
...
Co-Authored-By: Matthew Olsson <mattco@serenityos.org>
2023-07-05 23:33:20 +01: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
a975fca42e
LibWeb: Implement size attribute of ByteLengthQueuingStrategy
...
Co-authored-by: Matthew Olsson <mattco@serenityos.org>
2023-06-23 13:27:29 +02:00