// Copyright 2017 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef V8_SNAPSHOT_STARTUP_DESERIALIZER_H_ #define V8_SNAPSHOT_STARTUP_DESERIALIZER_H_ #include "src/snapshot/deserializer.h" #include "src/snapshot/snapshot-data.h" #include "src/snapshot/snapshot.h" namespace v8 { namespace internal { // Initializes an isolate with context-independent data from a given snapshot. class StartupDeserializer final : public Deserializer { public: explicit StartupDeserializer(Isolate* isolate, const SnapshotData* startup_data, bool can_rehash) : Deserializer(isolate, startup_data->Payload(), startup_data->GetMagicNumber(), false, can_rehash) {} // Deserialize the snapshot into an empty heap. void DeserializeIntoIsolate(); private: void DeserializeStringTable(); void FlushICache(); void LogNewMapEvents(); }; } // namespace internal } // namespace v8 #endif // V8_SNAPSHOT_STARTUP_DESERIALIZER_H_