aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/visitors.h
diff options
context:
space:
mode:
authorMichaƫl Zasso <targos@protonmail.com>2018-01-24 20:16:06 +0100
committerMyles Borins <mylesborins@google.com>2018-01-24 15:02:20 -0800
commit4c4af643e5042d615a60c6bbc05aee9d81b903e5 (patch)
tree3fb0a97988fe4439ae3ae06f26915d1dcf8cab92 /deps/v8/src/visitors.h
parentfa9f31a4fda5a3782c652e56e394465805ebb50f (diff)
downloadandroid-node-v8-4c4af643e5042d615a60c6bbc05aee9d81b903e5.tar.gz
android-node-v8-4c4af643e5042d615a60c6bbc05aee9d81b903e5.tar.bz2
android-node-v8-4c4af643e5042d615a60c6bbc05aee9d81b903e5.zip
deps: update V8 to 6.4.388.40
PR-URL: https://github.com/nodejs/node/pull/17489 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Diffstat (limited to 'deps/v8/src/visitors.h')
-rw-r--r--deps/v8/src/visitors.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/deps/v8/src/visitors.h b/deps/v8/src/visitors.h
index baf989182b..7696df8faf 100644
--- a/deps/v8/src/visitors.h
+++ b/deps/v8/src/visitors.h
@@ -10,6 +10,7 @@
namespace v8 {
namespace internal {
+class CodeDataContainer;
class Object;
#define ROOT_ID_LIST(V) \
@@ -75,6 +76,44 @@ class RootVisitor BASE_EMBEDDED {
virtual void Synchronize(VisitorSynchronization::SyncTag tag) {}
};
+// Abstract base class for visiting, and optionally modifying, the
+// pointers contained in Objects. Used in GC and serialization/deserialization.
+class ObjectVisitor BASE_EMBEDDED {
+ public:
+ virtual ~ObjectVisitor() {}
+
+ // Visits a contiguous arrays of pointers in the half-open range
+ // [start, end). Any or all of the values may be modified on return.
+ virtual void VisitPointers(HeapObject* host, Object** start,
+ Object** end) = 0;
+
+ // Handy shorthand for visiting a single pointer.
+ virtual void VisitPointer(HeapObject* host, Object** p) {
+ VisitPointers(host, p, p + 1);
+ }
+
+ // To allow lazy clearing of inline caches the visitor has
+ // a rich interface for iterating over Code objects ...
+
+ // Visits a code target in the instruction stream.
+ virtual void VisitCodeTarget(Code* host, RelocInfo* rinfo);
+
+ // Visits a runtime entry in the instruction stream.
+ virtual void VisitRuntimeEntry(Code* host, RelocInfo* rinfo) {}
+
+ // Visit pointer embedded into a code object.
+ virtual void VisitEmbeddedPointer(Code* host, RelocInfo* rinfo);
+
+ // Visits an external reference embedded into a code object.
+ virtual void VisitExternalReference(Code* host, RelocInfo* rinfo) {}
+
+ // Visits an external reference.
+ virtual void VisitExternalReference(Foreign* host, Address* p) {}
+
+ // Visits an (encoded) internal reference.
+ virtual void VisitInternalReference(Code* host, RelocInfo* rinfo) {}
+};
+
} // namespace internal
} // namespace v8