Home | History | Annotate | Download | only in snapshot
      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:
     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