v8 10.2.154 (node 18.16.0)
V8 is Google's open source JavaScript engine
|
#include <v8-embedder-heap.h>
Public Member Functions | |
virtual | ~EmbedderRootsHandler ()=default |
virtual bool | IsRoot (const v8::TracedReference< v8::Value > &handle)=0 |
virtual void | ResetRoot (const v8::TracedReference< v8::Value > &handle)=0 |
Handler for embedder roots on non-unified heap garbage collections.
Definition at line 32 of file v8-embedder-heap.h.
|
virtualdefault |
|
pure virtual |
Returns true if the |TracedReference| handle should be considered as root for the currently running non-tracing garbage collection and false otherwise. The default implementation will keep all |TracedReference| references as roots.
If this returns false, then V8 may decide that the object referred to by such a handle is reclaimed. In that case, V8 calls |ResetRoot()| for the |TracedReference|.
Note that the handle
is different from the handle that the embedder holds for retaining the object. The embedder may use |WrapperClassId()| to distinguish cases where it wants handles to be treated as roots from not being treated as roots.
|
pure virtual |
Used in combination with |IsRoot|. Called by V8 when an object that is backed by a handle is reclaimed by a non-tracing garbage collection. It is up to the embedder to reset the original handle.
Note that the |handle| is different from the handle that the embedder holds for retaining the object. It is up to the embedder to find the original handle via the object or class id.