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_
|