V8 API Reference Guide for node.js v4.8.3 - v4.8.5
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
v8::Context Class Reference

#include <v8.h>


class  Scope

Public Types

enum  EmbedderDataFields { kDebugIdIndex = 0 }

Public Member Functions

Local< ObjectGlobal ()
void DetachGlobal ()
void SetSecurityToken (Local< Value > token)
void UseDefaultSecurityToken ()
Local< ValueGetSecurityToken ()
void Enter ()
void Exit ()
v8::IsolateGetIsolate ()
V8_INLINE Local< ValueGetEmbedderData (int index)
Local< ObjectGetExtrasExportsObject ()
void SetEmbedderData (int index, Local< Value > value)
V8_INLINE void * GetAlignedPointerFromEmbedderData (int index)
void SetAlignedPointerInEmbedderData (int index, void *value)
void AllowCodeGenerationFromStrings (bool allow)
bool IsCodeGenerationFromStringsAllowed ()
void SetErrorMessageForCodeGenerationFromStrings (Local< String > message)

Static Public Member Functions

static Local< ContextNew (Isolate *isolate, ExtensionConfiguration *extensions=NULL, Local< ObjectTemplate > global_template=Local< ObjectTemplate >(), Local< Value > global_object=Local< Value >())


class Value
class Script
class Object
class Function

Detailed Description

A sandboxed execution context with its own set of built-in objects and functions.

Member Enumeration Documentation

The field at kDebugIdIndex is reserved for V8 debugger implementation. The value is propagated to the scripts compiled in given Context and can be used for filtering scripts.

Member Function Documentation

void v8::Context::AllowCodeGenerationFromStrings ( bool  allow)

Control whether code generation from strings is allowed. Calling this method with false will disable 'eval' and the 'Function' constructor for code running in this context. If 'eval' or the 'Function' constructor are used an exception will be thrown.

If code generation from strings is not allowed the V8::AllowCodeGenerationFromStrings callback will be invoked if set before blocking the call to 'eval' or the 'Function' constructor. If that callback returns true, the call will be allowed, otherwise an exception will be thrown. If no callback is set an exception will be thrown.

void v8::Context::DetachGlobal ( )

Detaches the global object from its context before the global object can be reused to create a new context.

void v8::Context::Enter ( )

Enter this context. After entering a context, all code compiled and run is compiled and run in this context. If another context is already entered, this old context is saved so it can be restored when the new context is exited.

void v8::Context::Exit ( )

Exit this context. Exiting the current context restores the context that was in place when entering the current context.

void * v8::Context::GetAlignedPointerFromEmbedderData ( int  index)

Gets a 2-byte-aligned native pointer from the embedder data with the given index, which must have bees set by a previous call to SetAlignedPointerInEmbedderData with the same index. Note that index 0 currently has a special meaning for Chrome's debugger.

Local< Value > v8::Context::GetEmbedderData ( int  index)

Gets the embedder data with the given index, which must have been set by a previous call to SetEmbedderData with the same index. Note that index 0 currently has a special meaning for Chrome's debugger.

Local<Object> v8::Context::GetExtrasExportsObject ( )

Gets the exports object used by V8 extras. Extra natives get a reference to this object and can use it to export functionality.

v8::Isolate* v8::Context::GetIsolate ( )

Returns an isolate associated with a current context.

Local<Value> v8::Context::GetSecurityToken ( )

Returns the security token of this context.

Local<Object> v8::Context::Global ( )

Returns the global proxy object.

Global proxy object is a thin wrapper whose prototype points to actual context's global object with the properties like Object, etc. This is done that way for security reasons (for more details see https://wiki.mozilla.org/Gecko:SplitWindow).

Please note that changes to global proxy object prototype most probably would break VM—v8 expects only global object as a prototype of global proxy object.

bool v8::Context::IsCodeGenerationFromStringsAllowed ( )

Returns true if code generation from strings is allowed for the context. For more details see AllowCodeGenerationFromStrings(bool) documentation.

static Local<Context> v8::Context::New ( Isolate isolate,
ExtensionConfiguration extensions = NULL,
Local< ObjectTemplate global_template = LocalObjectTemplate >(),
Local< Value global_object = LocalValue >() 

Creates a new context and returns a handle to the newly allocated context.

isolateThe isolate in which to create the context.
extensionsAn optional extension configuration containing the extensions to be installed in the newly created context.
global_templateAn optional object template from which the global object for the newly created context will be created.
global_objectAn optional global object to be reused for the newly created context. This global object must have been created by a previous call to Context::New with the same global template. The state of the global object will be completely reset and only object identify will remain.
void v8::Context::SetAlignedPointerInEmbedderData ( int  index,
void *  value 

Sets a 2-byte-aligned native pointer in the embedder data with the given index, growing the data as needed. Note that index 0 currently has a special meaning for Chrome's debugger.

void v8::Context::SetEmbedderData ( int  index,
Local< Value value 

Sets the embedder data with the given index, growing the data as needed. Note that index 0 currently has a special meaning for Chrome's debugger.

void v8::Context::SetErrorMessageForCodeGenerationFromStrings ( Local< String message)

Sets the error description for the exception that is thrown when code generation from strings is not allowed and 'eval' or the 'Function' constructor are called.

void v8::Context::SetSecurityToken ( Local< Value token)

Sets the security token for the context. To access an object in another context, the security tokens must match.

void v8::Context::UseDefaultSecurityToken ( )

Restores the security token to the default value.

The documentation for this class was generated from the following file: