Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 198ab36c5090c7d17661cc8a395056b19ce99bec..ec0c9198517964c17ccafe67bb43831a085c2b8c 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -305,6 +305,7 @@ enum MarkingParity { |
EVEN_MARKING_PARITY |
}; |
+ |
// ICs store extra state in a Code object. The default extra state is |
// kNoExtraICState. |
typedef int ExtraICState; |
@@ -10685,6 +10686,13 @@ class VisitorSynchronization : public AllStatic { |
static const char* const kTagNames[kNumberOfSyncTags]; |
}; |
+ |
+enum WeakPointerMode { |
Michael Starzinger
2014/03/04 12:31:12
As discussed offline: I am not a particular fan of
ulan
2014/03/06 11:13:32
Done. Thanks for suggestion, it is cleaner indeed.
|
+ VISIT_WEAK_POINTERS, |
+ SKIP_WEAK_POINTERS |
+}; |
+ |
+ |
// Abstract base class for visiting, and optionally modifying, the |
// pointers contained in Objects. Used in GC and serialization/deserialization. |
class ObjectVisitor BASE_EMBEDDED { |
@@ -10742,6 +10750,8 @@ class ObjectVisitor BASE_EMBEDDED { |
// check for the presence of, a tag at this position in the stream. |
// Also used for marking up GC roots in heap snapshots. |
virtual void Synchronize(VisitorSynchronization::SyncTag tag) {} |
+ |
+ virtual WeakPointerMode weak_pointer_mode() { return VISIT_WEAK_POINTERS; } |
}; |