5#ifndef V8_SNAPSHOT_CODE_SERIALIZER_H_
6#define V8_SNAPSHOT_CODE_SERIALIZER_H_
16class PersistentHandles;
17class BackgroundMergeTask;
58static_assert(
static_cast<int>(SerializedCodeSanityCheckResult::kLast) == 9);
70 std::vector<IndirectHandle<Script>>
scripts;
94 Isolate* isolate, OffThreadDeserializeData&& data,
118 static const uint32_t kVersionHashOffset = kMagicNumberOffset +
kUInt32Size;
119 static const uint32_t kSourceHashOffset = kVersionHashOffset +
kUInt32Size;
120 static const uint32_t kFlagHashOffset = kSourceHashOffset +
kUInt32Size;
123 static const uint32_t kPayloadLengthOffset =
132 uint32_t expected_source_hash,
166 size_ - kHeaderSize);
170 uint32_t expected_ro_snapshot_checksum,
171 uint32_t expected_source_hash)
const;
173 uint32_t expected_source_hash)
const;
175 uint32_t expected_ro_snapshot_checksum)
const;
#define DISALLOW_GARBAGE_COLLECTION(name)
uint8_t data_[MAX_STACK_LENGTH]
bool HasDataOwnership() const
void AcquireDataOwnership()
void ReleaseDataOwnership()
const uint8_t * data() const
AlignedCachedData & operator=(const AlignedCachedData &)=delete
AlignedCachedData(const AlignedCachedData &)=delete
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< SharedFunctionInfo > FinishOffThreadDeserialize(Isolate *isolate, OffThreadDeserializeData &&data, AlignedCachedData *cached_data, DirectHandle< String > source, const ScriptDetails &script_details, BackgroundMergeTask *background_merge_task=nullptr)
void SerializeGeneric(Handle< HeapObject > heap_object, SlotType slot_type)
void SerializeObjectImpl(Handle< HeapObject > o, SlotType slot_type) override
CodeSerializer & operator=(const CodeSerializer &)=delete
static V8_EXPORT_PRIVATE ScriptCompiler::CachedData * Serialize(Isolate *isolate, Handle< SharedFunctionInfo > info)
CodeSerializer(const CodeSerializer &)=delete
AlignedCachedData * SerializeSharedFunctionInfo(Handle< SharedFunctionInfo > info)
uint32_t source_hash() const
~CodeSerializer() override
static V8_WARN_UNUSED_RESULT OffThreadDeserializeData StartDeserializeOffThread(LocalIsolate *isolate, AlignedCachedData *cached_data)
static V8_WARN_UNUSED_RESULT MaybeDirectHandle< SharedFunctionInfo > Deserialize(Isolate *isolate, AlignedCachedData *cached_data, DirectHandle< String > source, const ScriptDetails &script_details, MaybeDirectHandle< Script > maybe_cached_script={})
base::Vector< const uint8_t > ChecksummedContent() const
SerializedCodeData(const uint8_t *data, int size)
const std::vector< uint8_t > * Payload() const
void OutputStatistics(const char *name)
#define POINTER_SIZE_ALIGN(value)
DisallowGarbageCollection no_gc_
void DeleteArray(T *array)
v8::ScriptCompiler::CachedData::CompatibilityCheckResult SerializedCodeSanityCheckResult
constexpr int kUInt32Size
static const uint32_t kReadOnlySnapshotChecksumOffset
static const uint32_t kChecksumOffset
#define DCHECK(condition)
#define V8_EXPORT_PRIVATE
std::vector< IndirectHandle< Script > > scripts
MaybeIndirectHandle< SharedFunctionInfo > maybe_result
std::unique_ptr< PersistentHandles > persistent_handles
SerializedCodeSanityCheckResult sanity_check_result
DirectHandle< Script > GetOnlyScript(LocalHeap *heap)
#define V8_WARN_UNUSED_RESULT