Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: src/snapshot/partial-serializer.h

Issue 2452333002: [serializer] introduce API to serialize internal fields (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_SNAPSHOT_PARTIAL_SERIALIZER_H_ 5 #ifndef V8_SNAPSHOT_PARTIAL_SERIALIZER_H_
6 #define V8_SNAPSHOT_PARTIAL_SERIALIZER_H_ 6 #define V8_SNAPSHOT_PARTIAL_SERIALIZER_H_
7 7
8 #include "src/address-map.h" 8 #include "src/address-map.h"
9 #include "src/snapshot/serializer.h" 9 #include "src/snapshot/serializer.h"
10 10
11 namespace v8 { 11 namespace v8 {
12 namespace internal { 12 namespace internal {
13 13
14 class StartupSerializer; 14 class StartupSerializer;
15 15
16 class PartialSerializer : public Serializer { 16 class PartialSerializer : public Serializer {
17 public: 17 public:
18 PartialSerializer(Isolate* isolate, StartupSerializer* startup_serializer); 18 PartialSerializer(Isolate* isolate, StartupSerializer* startup_serializer,
19 v8::SerializeInternalFieldsCallback callback);
19 20
20 ~PartialSerializer() override; 21 ~PartialSerializer() override;
21 22
22 // Serialize the objects reachable from a single object pointer. 23 // Serialize the objects reachable from a single object pointer.
23 void Serialize(Object** o); 24 void Serialize(Object** o);
24 25
25 private: 26 private:
26 void SerializeObject(HeapObject* o, HowToCode how_to_code, 27 void SerializeObject(HeapObject* o, HowToCode how_to_code,
27 WhereToPoint where_to_point, int skip) override; 28 WhereToPoint where_to_point, int skip) override;
28 29
29 bool ShouldBeInThePartialSnapshotCache(HeapObject* o); 30 bool ShouldBeInThePartialSnapshotCache(HeapObject* o);
30 31
32 void SerializeInternalFields();
33
31 StartupSerializer* startup_serializer_; 34 StartupSerializer* startup_serializer_;
35 List<JSObject*> internal_field_holders_;
36 v8::SerializeInternalFieldsCallback serialize_internal_fields_;
32 DISALLOW_COPY_AND_ASSIGN(PartialSerializer); 37 DISALLOW_COPY_AND_ASSIGN(PartialSerializer);
33 }; 38 };
34 39
35 } // namespace internal 40 } // namespace internal
36 } // namespace v8 41 } // namespace v8
37 42
38 #endif // V8_SNAPSHOT_PARTIAL_SERIALIZER_H_ 43 #endif // V8_SNAPSHOT_PARTIAL_SERIALIZER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698