V8 internals
The hooks to access V8 internals—including GC and statistics—are different across the supported versions of V8, therefore NAN provides its own hooks that call the appropriate V8 methods.
- {gfm-extraction-80001cafb09cad9f6307e4b33aff5266}
- {gfm-extraction-6331f65b756e08948138e2759fc7e53f}
- {gfm-extraction-b514ed260e3694c5198da3ce82557b83}
- {gfm-extraction-b3923df671175fd5cfb33495f96a2a3f}
- {gfm-extraction-c788505a8008b9be4744e9ec51de280a}
- {gfm-extraction-940addc7fa22004fae7840fce1ed32de}
- {gfm-extraction-664300ae01e0d2a37b9fbdb31d49cd9d}
- {gfm-extraction-a26c1053bdc399c0b8432ddd9dd7dc77}
- {gfm-extraction-ae321cb9f7cff6b2acd57385ed12660e}
- {gfm-extraction-74c6f7ea08433ed1898265c873c7d5ca}
- {gfm-extraction-72be90e6cc7503b04c5c9515cd720d4f}
- {gfm-extraction-b4766b8ae624eb5c09be65563a3dbc04}
- {gfm-extraction-ebafcbc9a119b1e2d3c3db5285052762}
- {gfm-extraction-6eaab80719af429ca8e77c80da901e18}
- {gfm-extraction-f3ef1394b6d0488f675dc67ab3f85487}
NAN_GC_CALLBACK(callbackname)
Use NAN_GC_CALLBACK
to declare your callbacks for Nan::AddGCPrologueCallback()
and Nan::AddGCEpilogueCallback()
. Your new method receives the arguments v8::GCType type
and v8::GCCallbackFlags flags
.
static Nan::Persistent<Function> callback;
NAN_GC_CALLBACK(gcPrologueCallback) {
v8::Local<Value> argv[] = { Nan::New("prologue").ToLocalChecked() };
Nan::MakeCallback(Nan::GetCurrentContext()->Global(), Nan::New(callback), 1, argv);
}
NAN_METHOD(Hook) {
callback.Reset(To<Function>(args[0]).ToLocalChecked());
Nan::AddGCPrologueCallback(gcPrologueCallback);
info.GetReturnValue().Set(info.Holder());
}
Nan::AddGCEpilogueCallback()
Signature:
void Nan::AddGCEpilogueCallback(v8::Isolate::GCEpilogueCallback callback, v8::GCType gc_type_filter = v8::kGCTypeAll)
Calls V8's <code>AddGCEpilogueCallback()</code>.
Nan::RemoveGCEpilogueCallback()
Signature:
void Nan::RemoveGCEpilogueCallback(v8::Isolate::GCEpilogueCallback callback)
Calls V8's <code>RemoveGCEpilogueCallback()</code>.
Nan::AddGCPrologueCallback()
Signature:
void Nan::AddGCPrologueCallback(v8::Isolate::GCPrologueCallback, v8::GCType gc_type_filter callback)
Calls V8's <code>AddGCPrologueCallback()</code>.
Nan::RemoveGCPrologueCallback()
Signature:
void Nan::RemoveGCPrologueCallback(v8::Isolate::GCPrologueCallback callback)
Calls V8's <code>RemoveGCEpilogueCallback()</code>.
Nan::GetHeapStatistics()
Signature:
void Nan::GetHeapStatistics(v8::HeapStatistics *heap_statistics)
Calls V8's <code>GetHeapStatistics()</code>.
Nan::SetCounterFunction()
Signature:
void Nan::SetCounterFunction(v8::CounterLookupCallback cb)
Calls V8's <code>SetCounterFunction()</code>.
Nan::SetCreateHistogramFunction()
Signature:
void Nan::SetCreateHistogramFunction(v8::CreateHistogramCallback cb)
Calls V8's <code>SetCreateHistogramFunction()</code>.
Nan::SetAddHistogramSampleFunction()
Signature:
void Nan::SetAddHistogramSampleFunction(v8::AddHistogramSampleCallback cb)
Calls V8's <code>SetAddHistogramSampleFunction()</code>.
Nan::IdleNotification()
Signature:
void Nan::IdleNotification(v8::HeapStatistics *heap_statistics)
Calls V8's <code>IdleNotification()</code> or <code>IdleNotificationDeadline()</code> depending on V8 version.
Nan::LowMemoryNotification()
Signature:
void Nan::LowMemoryNotification()
Calls V8's <code>LowMemoryNotification()</code>.
Nan::ContextDisposedNotification()
Signature:
void Nan::ContextDisposedNotification()
Calls V8's <code>ContextDisposedNotification()</code>.
Nan::GetInternalFieldPointer()
Gets a pointer to the internal field with at index
from a V8 Object
handle.
Signature:
void* Nan::GetInternalFieldPointer(v8::Local<v8::Object> object, int index)
Calls the Object's <code>GetAlignedPointerFromInternalField()</code> or <code>GetPointerFromInternalField()</code> depending on the version of V8.
Nan::SetInternalFieldPointer()
Sets the value of the internal field at index
on a V8 Object
handle.
Signature:
void Nan::SetInternalFieldPointer(v8::Local<v8::Object> object, int index, void* value)
Calls the Object's <code>SetAlignedPointerInInternalField()</code> or <code>SetPointerInInternalField()</code> depending on the version of V8.
Nan::AdjustExternalMemory()
Signature:
int Nan::AdjustExternalMemory(int bytesChange)
Calls V8's <code>AdjustAmountOfExternalAllocatedMemory()</code>.