5#ifndef V8_OBJECTS_VALUE_SERIALIZER_H_
6#define V8_OBJECTS_VALUE_SERIALIZER_H_
27class JSArrayBufferView;
30class JSPrimitiveWrapper;
37class SharedObjectConveyorHandles;
39class WasmMemoryObject;
40class WasmModuleObject;
71 std::pair<uint8_t*, size_t>
Release();
106 template <
typename T>
108 template <
typename T>
142#if V8_ENABLE_WEBASSEMBLY
261 template <typename T>
263 template <typename T>
265 template <typename T>
311#if V8_ENABLE_WEBASSEMBLY
324 bool can_use_transitions);
MaybeDirectHandle< JSReceiver > GetObjectWithID(uint32_t id)
bool ReadByte(uint8_t *value) V8_WARN_UNUSED_RESULT
MaybeDirectHandle< String > ReadString() V8_WARN_UNUSED_RESULT
MaybeDirectHandle< JSArrayBuffer > ReadJSArrayBuffer(bool is_shared, bool is_resizable) V8_WARN_UNUSED_RESULT
MaybeDirectHandle< JSRegExp > ReadJSRegExp() V8_WARN_UNUSED_RESULT
Maybe< double > ReadDouble() V8_WARN_UNUSED_RESULT
MaybeDirectHandle< JSArray > ReadDenseJSArray() V8_WARN_UNUSED_RESULT
const SharedObjectConveyorHandles * shared_object_conveyor_
MaybeDirectHandle< JSArrayBuffer > ReadTransferredJSArrayBuffer() V8_WARN_UNUSED_RESULT
MaybeDirectHandle< Object > ReadObject() V8_WARN_UNUSED_RESULT
MaybeIndirectHandle< SimpleNumberDictionary > array_buffer_transfer_map_
Maybe< bool > ReadHeader() V8_WARN_UNUSED_RESULT
bool HasObjectWithID(uint32_t id)
bool ValidateJSArrayBufferViewFlags(Tagged< JSArrayBuffer > buffer, uint32_t serialized_flags, bool &is_length_tracking, bool &is_backed_by_rab) V8_WARN_UNUSED_RESULT
bool ReadUint64(uint64_t *value) V8_WARN_UNUSED_RESULT
MaybeDirectHandle< Object > ReadObjectUsingEntireBufferForLegacyFormat() V8_WARN_UNUSED_RESULT
uint32_t GetWireFormatVersion() const
V8_NOINLINE Maybe< T > ReadVarintLoop() V8_WARN_UNUSED_RESULT
void ConsumeTag(SerializationTag peeked_tag)
MaybeDirectHandle< JSDate > ReadJSDate() V8_WARN_UNUSED_RESULT
Maybe< base::Vector< const base::uc16 > > ReadRawTwoBytes(size_t size) V8_WARN_UNUSED_RESULT
MaybeDirectHandle< BigInt > ReadBigInt() V8_WARN_UNUSED_RESULT
bool ReadRawBytes(size_t length, const void **data) V8_WARN_UNUSED_RESULT
MaybeDirectHandle< JSArrayBufferView > ReadJSArrayBufferView(DirectHandle< JSArrayBuffer > buffer) V8_WARN_UNUSED_RESULT
MaybeDirectHandle< JSArray > ReadSparseJSArray() V8_WARN_UNUSED_RESULT
MaybeDirectHandle< Object > ReadObjectWrapper() V8_WARN_UNUSED_RESULT
const uint8_t * position_
MaybeDirectHandle< Object > ReadJSError() V8_WARN_UNUSED_RESULT
bool ReadUint32(uint32_t *value) V8_WARN_UNUSED_RESULT
v8::ValueDeserializer::Delegate *const delegate_
ValueDeserializer(const ValueDeserializer &)=delete
void TransferArrayBuffer(uint32_t transfer_id, DirectHandle< JSArrayBuffer > array_buffer)
MaybeDirectHandle< String > ReadOneByteString(AllocationType allocation=AllocationType::kYoung) V8_WARN_UNUSED_RESULT
MaybeDirectHandle< HeapObject > ReadSharedObject() V8_WARN_UNUSED_RESULT
void AddObjectWithID(uint32_t id, DirectHandle< JSReceiver > object)
Maybe< SerializationTag > ReadTag() V8_WARN_UNUSED_RESULT
MaybeDirectHandle< JSMap > ReadJSMap() V8_WARN_UNUSED_RESULT
const uint8_t *const end_
IndirectHandle< FixedArray > id_map_
MaybeDirectHandle< JSPrimitiveWrapper > ReadJSPrimitiveWrapper(SerializationTag tag) V8_WARN_UNUSED_RESULT
bool version_13_broken_data_mode_
Maybe< T > ReadZigZag() V8_WARN_UNUSED_RESULT
Maybe< uint32_t > ReadJSObjectProperties(DirectHandle< JSObject > object, SerializationTag end_tag, bool can_use_transitions)
MaybeDirectHandle< JSObject > ReadJSObject() V8_WARN_UNUSED_RESULT
MaybeDirectHandle< String > ReadUtf8String(AllocationType allocation=AllocationType::kYoung) V8_WARN_UNUSED_RESULT
MaybeDirectHandle< JSObject > ReadHostObject() V8_WARN_UNUSED_RESULT
MaybeDirectHandle< Object > ReadObjectInternal() V8_WARN_UNUSED_RESULT
ValueDeserializer & operator=(const ValueDeserializer &)=delete
Maybe< SerializationTag > PeekTag() const V8_WARN_UNUSED_RESULT
MaybeDirectHandle< JSSet > ReadJSSet() V8_WARN_UNUSED_RESULT
ValueDeserializer(Isolate *isolate, base::Vector< const uint8_t > data, v8::ValueDeserializer::Delegate *delegate)
bool suppress_deserialization_errors_
MaybeDirectHandle< String > ReadTwoByteString(AllocationType allocation=AllocationType::kYoung) V8_WARN_UNUSED_RESULT
V8_INLINE Maybe< T > ReadVarint() V8_WARN_UNUSED_RESULT
void WriteTag(SerializationTag tag)
void WriteVarint(T value)
Maybe< uint32_t > WriteJSObjectPropertiesSlow(DirectHandle< JSObject > object, DirectHandle< FixedArray > keys) V8_WARN_UNUSED_RESULT
Maybe< bool > WriteJSArray(DirectHandle< JSArray > array) V8_WARN_UNUSED_RESULT
Maybe< bool > ExpandBuffer(size_t required_capacity)
Maybe< bool > WriteSharedObject(DirectHandle< HeapObject > object) V8_WARN_UNUSED_RESULT
void WriteOddball(Tagged< Oddball > oddball)
Maybe< bool > ThrowIfOutOfMemory()
void WriteUint32(uint32_t value)
bool treat_array_buffer_views_as_host_objects_
Maybe< bool > WriteJSError(DirectHandle< JSObject > error) V8_WARN_UNUSED_RESULT
void WriteTwoByteString(base::Vector< const base::uc16 > chars)
void WriteZigZag(T value)
Maybe< bool > WriteJSMap(DirectHandle< JSMap > map) V8_WARN_UNUSED_RESULT
void WriteHeapNumber(Tagged< HeapNumber > number)
void SetTreatArrayBufferViewsAsHostObjects(bool mode)
ValueSerializer(Isolate *isolate, v8::ValueSerializer::Delegate *delegate)
void WriteJSRegExp(DirectHandle< JSRegExp > regexp)
void WriteString(DirectHandle< String > string)
void WriteOneByteString(base::Vector< const uint8_t > chars)
Maybe< bool > WriteJSSharedStruct(DirectHandle< JSSharedStruct > shared_struct) V8_WARN_UNUSED_RESULT
Maybe< bool > WriteHostObject(DirectHandle< JSObject > object) V8_WARN_UNUSED_RESULT
Maybe< bool > WriteJSSet(DirectHandle< JSSet > map) V8_WARN_UNUSED_RESULT
v8::ValueSerializer::Delegate *const delegate_
V8_NOINLINE Maybe< bool > ThrowDataCloneError(MessageTemplate template_index) V8_WARN_UNUSED_RESULT
void WriteJSDate(Tagged< JSDate > date)
ValueSerializer(const ValueSerializer &)=delete
void WriteSmi(Tagged< Smi > smi)
Maybe< bool > WriteJSArrayBufferView(Tagged< JSArrayBufferView > array_buffer)
void WriteByte(uint8_t value)
IdentityMap< uint32_t, ZoneAllocationPolicy > array_buffer_transfer_map_
bool has_custom_host_objects_
Maybe< bool > WriteJSArrayBuffer(DirectHandle< JSArrayBuffer > array_buffer) V8_WARN_UNUSED_RESULT
void WriteRawBytes(const void *source, size_t length)
void WriteBigIntContents(Tagged< BigInt > bigint)
Maybe< bool > WriteJSObjectSlow(DirectHandle< JSObject > object) V8_WARN_UNUSED_RESULT
IdentityMap< uint32_t, ZoneAllocationPolicy > id_map_
void TransferArrayBuffer(uint32_t transfer_id, DirectHandle< JSArrayBuffer > array_buffer)
Maybe< bool > WriteJSObject(DirectHandle< JSObject > object) V8_WARN_UNUSED_RESULT
Maybe< bool > WriteJSReceiver(DirectHandle< JSReceiver > receiver) V8_WARN_UNUSED_RESULT
void WriteBigInt(Tagged< BigInt > bigint)
Maybe< bool > WriteJSPrimitiveWrapper(DirectHandle< JSPrimitiveWrapper > value) V8_WARN_UNUSED_RESULT
Maybe< bool > WriteObject(DirectHandle< Object > object) V8_WARN_UNUSED_RESULT
Maybe< bool > IsHostObject(DirectHandle< JSObject > object)
ValueSerializer & operator=(const ValueSerializer &)=delete
Maybe< uint8_t * > ReserveRawBytes(size_t bytes)
SharedObjectConveyorHandles * shared_object_conveyor_
Maybe< bool > WriteJSSharedArray(DirectHandle< JSSharedArray > shared_array) V8_WARN_UNUSED_RESULT
void WriteDouble(double value)
std::pair< uint8_t *, size_t > Release()
void WriteUint64(uint64_t value)
JSArrayBuffer::IsDetachableBit is_shared
#define V8_WARN_UNUSED_RESULT