Detailed Description

Member Function Documentation

Bootstrap an isolate and a context from scratch to create a startup snapshot. Include the side-effects of running the optional script. Returns { NULL, 0 } on failure. The caller acquires ownership of the data array in the return value.

static bool Dispose

(

)

static

Releases any resources used by v8 and stops any utility threads that may be running. Note that disposing v8 is permanent, it cannot be reinitialized.

It should generally not be necessary to dispose v8 before exiting a process, this should happen automatically. It is only necessary to use if the process needs the resources taken up by v8.

static const char* GetVersion

(

)

static

Get the version string.

static bool Initialize

(

)

static

Initializes V8. This function needs to be called before the first Isolate is created. It always returns true.

static void InitializeExternalStartupData

(

const char *

directory_path

)

static

Initialize the external startup data. The embedder only needs to invoke this method when external startup data was enabled in a build.

If V8 was compiled with the startup data in an external file, then V8 needs to be given those external files during startup. There are three ways to do this:

Call SetNativesDataBlob, SetNativesDataBlob. This will read the blobs from the given data structures and will not perform any file IO.

static void InitializeExternalStartupData

(

const char *

natives_blob,

const char *

snapshot_blob

)

static

static bool InitializeICUDefaultLocation

(

const char *

exec_path,

const char *

icu_data_file = nullptr

)

static

Initialize the ICU library bundled with V8. The embedder should only invoke this method when using the bundled ICU. If V8 was compiled with the ICU data in an external file and when the default location of that file should be used, a path to the executable must be provided. Returns true on success.

The default is a file called icudtl.dat side-by-side with the executable.

Optionally, the location of the data file can be provided to override the default.

Enables the host application to receive a notification before a garbage collection. Allocations are not allowed in the callback function, you therefore cannot manipulate objects (set or delete properties for example) since it is possible such operations will result in the allocation of objects. It is possible to specify the GCType filter for your callback. But it is not possible to register the same callback function two times with different GCType filters.

Enables the host application to receive a notification after a garbage collection. Allocations are not allowed in the callback function, you therefore cannot manipulate objects (set or delete properties for example) since it is possible such operations will result in the allocation of objects. It is possible to specify the GCType filter for your callback. But it is not possible to register the same callback function two times with different GCType filters.

Returns true if JavaScript execution is currently terminating because of a call to TerminateExecution. In that case there are still JavaScript frames on the stack and the termination exception is still active.

Resume execution capability in the given isolate, whose execution was previously forcefully terminated using TerminateExecution().

When execution is forcefully terminated using TerminateExecution(), the isolate can not resume execution until all JavaScript frames have propagated the uncatchable exception which is generated. This method allows the program embedding the engine to handle the termination event and resume execution capability, even if JavaScript frames remain on the stack.

This method can be used by any thread even if that thread has not acquired the V8 lock with a Locker object.

Iterates through all the persistent handles in the current isolate's heap that have class_ids and are candidates to be marked as partially dependent handles. This will visit handles to young objects created since the last garbage collection but is free to visit an arbitrary superset of these objects.

Bootstrap an isolate and a context from the cold startup blob, run the warm-up script to trigger code compilation. The side effects are then discarded. The resulting startup snapshot will include compiled code. Returns { NULL, 0 } on failure. The caller acquires ownership of the data array in the return value. The argument startup blob is untouched.