Andrew Kaster
84ac6a454f
LibWeb: Use `Vector<Handle<Object>>
` in transfer variants of serialize
...
Also trap the invalid object index inserted for transferred values in
deserialization. In the future we should avoid inserting that
placeholder value in the data stream at all.
2023-12-14 08:36:11 -07:00
Andrew Kaster
bab9e75a96
LibWeb: Implement Structured{De}SerializeWithTransfer for transferables
...
This first cut at these APIs only works for platform objects that
implement the Transferable interface from Bindings.
2023-12-09 21:52:28 +01:00
Andrew Kaster
e21d1078a0
LibWeb: Add a Transferable interface to model the transferable property
...
This property is only shared by MessagePort and a few Image related APIs
but is important for the Structured{De}SerializeWithTransfer AOs.
2023-12-09 21:52:28 +01:00
Idan Horowitz
20734ac335
LibWeb: Support [de]serialization for {Map, Set, Object, Array} objects
2023-11-11 22:18:41 +01:00
Andrew Kaster
bddf3fbf2d
LibWeb: Make StructuredSerialize/Deserialize friendlier to recursion
...
Make the internal calls take objects by reference, and take writable
spans into data rather than const& to the underlying vector type.
2023-09-13 08:49:09 +02:00
Andrew Kaster
f3cf7496a1
LibWeb: Add spec steps to StructuredSerialize
...
In preparation for serializing more types, let's move the implementation
closer to the steps in the spec.
2023-08-22 13:08:08 +02:00
Daniel Ehrenberg
09841f56ed
LibWeb: Add initial implementation of structured clone
...
This implementation only works for cloning Numbers, and does not try to
do all the spec steps for structured serialize and deserialize.
Co-Authored-By: Andrew Kaster <akaster@serenityos.org>
2022-11-26 00:47:23 +01:00