Line data    Source code 
       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       60993 : class StartupDeserializer final : public Deserializer {
      16             :  public:
      17             :   StartupDeserializer(const SnapshotData* startup_data,
      18             :                       const SnapshotData* read_only_data)
      19       60993 :       : Deserializer(startup_data, false), read_only_data_(read_only_data) {}
      20             : 
      21             :   // Deserialize the snapshot into an empty heap.
      22             :   void DeserializeInto(Isolate* isolate);
      23             : 
      24             :  private:
      25             :   void FlushICache();
      26             :   void LogNewMapEvents();
      27             : 
      28             :   const SnapshotData* read_only_data_;
      29             : };
      30             : 
      31             : }  // namespace internal
      32             : }  // namespace v8
      33             : 
      34             : #endif  // V8_SNAPSHOT_STARTUP_DESERIALIZER_H_
       |