5#ifndef V8_SNAPSHOT_SNAPSHOT_H_
6#define V8_SNAPSHOT_SNAPSHOT_H_
65 Isolate* isolate,
bool clear_recompilable_data);
72 const std::vector<SerializeEmbedderFieldsCallback>&
73 embedder_fields_serializers,
125 const char* embedded_source =
nullptr,
140 const char* embedded_source);
147#ifdef V8_USE_EXTERNAL_STARTUP_DATA
161 const StartupData* existing_blob,
bool owns_isolate);
static constexpr size_t kFirstAddtlContextIndex
void SetDefaultContext(DirectHandle< NativeContext > context, SerializeEmbedderFieldsCallback callback)
size_t AddContext(DirectHandle< NativeContext > context, SerializeEmbedderFieldsCallback callback)
Isolate * isolate() const
static constexpr size_t kDefaultContextIndex
std::vector< SerializableContext > contexts_
SnapshotCreatorImpl(Isolate *isolate, const intptr_t *api_external_references, const StartupData *existing_blob, bool owns_isolate)
size_t AddData(DirectHandle< NativeContext > context, Address object)
static SnapshotCreatorImpl * FromSnapshotCreator(v8::SnapshotCreator *snapshot_creator)
DirectHandle< NativeContext > context_at(size_t i) const
void InitInternal(const StartupData *)
StartupData CreateBlob(SnapshotCreator::FunctionCodeHandling function_code_handling, Snapshot::SerializerFlags serializer_flags=Snapshot::kDefaultSerializerFlags)
std::unique_ptr< v8::ArrayBuffer::Allocator > array_buffer_allocator_
static bool VersionIsValid(const v8::StartupData *data)
static V8_EXPORT_PRIVATE void ClearReconstructableDataForSerialization(Isolate *isolate, bool clear_recompilable_data)
static V8_EXPORT_PRIVATE void SerializeDeserializeAndVerifyForTesting(Isolate *isolate, DirectHandle< Context > default_context)
static v8::StartupData Create(Isolate *isolate, std::vector< Tagged< Context > > *contexts, const std::vector< SerializeEmbedderFieldsCallback > &embedder_fields_serializers, const SafepointScope &safepoint_scope, const DisallowGarbageCollection &no_gc, SerializerFlags flags=kDefaultSerializerFlags)
base::Flags< SerializerFlag > SerializerFlags
static bool EmbedsScript(Isolate *isolate)
static bool ExtractRehashability(const v8::StartupData *data)
static bool Initialize(Isolate *isolate)
static const v8::StartupData * DefaultSnapshotBlob()
static V8_EXPORT_PRIVATE uint32_t GetExpectedChecksum(const v8::StartupData *data)
@ kReconstructReadOnlyAndSharedObjectCachesForTesting
@ kAllowActiveIsolateForTesting
@ kAllowUnknownExternalReferencesForTesting
static V8_EXPORT_PRIVATE constexpr SerializerFlags kDefaultSerializerFlags
static bool HasContextSnapshot(Isolate *isolate, size_t index)
static V8_EXPORT_PRIVATE uint32_t CalculateChecksum(const v8::StartupData *data)
static MaybeDirectHandle< Context > NewContextFromSnapshot(Isolate *isolate, DirectHandle< JSGlobalProxy > global_proxy, size_t context_index, DeserializeEmbedderFieldsCallback embedder_fields_deserializer)
static bool ShouldVerifyChecksum(const v8::StartupData *data)
static V8_EXPORT_PRIVATE bool VerifyChecksum(const v8::StartupData *data)
static V8_EXPORT_PRIVATE uint32_t ExtractReadOnlySnapshotChecksum(const v8::StartupData *data)
v8::StartupData CreateSnapshotDataBlobInternalForInspectorTest(v8::SnapshotCreator::FunctionCodeHandling function_code_handling, const char *embedded_source)
v8::StartupData WarmUpSnapshotDataBlobInternal(v8::StartupData cold_snapshot_blob, const char *warmup_source)
void SetSnapshotFromFile(StartupData *snapshot_blob)
v8::StartupData CreateSnapshotDataBlobInternal(v8::SnapshotCreator::FunctionCodeHandling function_code_handling, const char *embedded_source, SnapshotCreator &snapshot_creator, Snapshot::SerializerFlags serializer_flags)
#define V8_EXPORT_PRIVATE
SerializableContext(Address *handle_location, SerializeEmbedderFieldsCallback callback)
Address * handle_location
SerializeEmbedderFieldsCallback callback