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 54968 : class StartupDeserializer final : public Deserializer<> {
16 : public:
17 : StartupDeserializer(const SnapshotData* startup_data,
18 : const BuiltinSnapshotData* builtin_data)
19 54968 : : 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 Rehash();
30 :
31 : const BuiltinSnapshotData* builtin_data_;
32 : };
33 :
34 : } // namespace internal
35 : } // namespace v8
36 :
37 : #endif // V8_SNAPSHOT_STARTUP_DESERIALIZER_H_
|