• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2017 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef V8_SNAPSHOT_STARTUP_DESERIALIZER_H_
6 #define V8_SNAPSHOT_STARTUP_DESERIALIZER_H_
7 
8 #include "src/snapshot/deserializer.h"
9 #include "src/snapshot/snapshot.h"
10 
11 namespace v8 {
12 namespace internal {
13 
14 // Initializes an isolate with context-independent data from a given snapshot.
15 class StartupDeserializer final : public Deserializer<> {
16  public:
StartupDeserializer(const SnapshotData * startup_data,const BuiltinSnapshotData * builtin_data)17   StartupDeserializer(const SnapshotData* startup_data,
18                       const BuiltinSnapshotData* builtin_data)
19       : Deserializer(startup_data, false), builtin_data_(builtin_data) {}
20 
21   // Deserialize the snapshot into an empty heap.
22   void DeserializeInto(Isolate* isolate);
23 
24  private:
25   void FlushICacheForNewIsolate();
26   void PrintDisassembledCodeObjects();
27 
28   // Rehash after deserializing an isolate.
29   void RehashHeap();
30 
31   const BuiltinSnapshotData* builtin_data_;
32 };
33 
34 }  // namespace internal
35 }  // namespace v8
36 
37 #endif  // V8_SNAPSHOT_STARTUP_DESERIALIZER_H_
38