v8  5.1.281 (node 6.17.1)
V8 is Google's open source JavaScript engine
Context Class Reference

#include <v8.h>

Data Structures

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< ObjectGetExtrasBindingObject ()
 
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)
 
size_t EstimatedSize ()
 

Static Public Member Functions

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

Friends

class Value
 
class Script
 
class Object
 
class Function
 

Detailed Description

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

Definition at line 6919 of file v8.h.

Member Enumeration Documentation

◆ EmbedderDataFields

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.

Enumerator
kDebugIdIndex 

Definition at line 6998 of file v8.h.

Member Function Documentation

◆ AllowCodeGenerationFromStrings()

void 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.

◆ DetachGlobal()

void DetachGlobal ( )

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

◆ Enter()

void 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.

Referenced by Context::Scope::Scope().

◆ EstimatedSize()

size_t EstimatedSize ( )

Estimate the memory in bytes retained by this context.

◆ Exit()

void Exit ( )

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

Referenced by Context::Scope::~Scope().

◆ GetAlignedPointerFromEmbedderData()

void * 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.

Definition at line 8617 of file v8.h.

References Internals::ReadEmbedderData().

◆ GetEmbedderData()

Local< Value > 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.

Definition at line 8602 of file v8.h.

References Local< T >::Local, and Internals::ReadEmbedderData().

◆ GetExtrasBindingObject()

Local<Object> GetExtrasBindingObject ( )

Gets the binding object used by V8 extras. Extra natives get a reference to this object and can use it to "export" functionality by adding properties. Extra natives can also "import" functionality by accessing properties added by the embedder using the V8 API.

◆ GetIsolate()

v8::Isolate* GetIsolate ( )

Returns an isolate associated with a current context.

◆ GetSecurityToken()

Local<Value> GetSecurityToken ( )

Returns the security token of this 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.

◆ IsCodeGenerationFromStringsAllowed()

bool IsCodeGenerationFromStringsAllowed ( )

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

◆ New()

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

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

Parameters
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.

◆ SetAlignedPointerInEmbedderData()

void 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.

◆ SetEmbedderData()

void 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.

◆ SetErrorMessageForCodeGenerationFromStrings()

void 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.

◆ SetSecurityToken()

void SetSecurityToken ( Local< Value token)

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

◆ UseDefaultSecurityToken()

void UseDefaultSecurityToken ( )

Restores the security token to the default value.

Friends And Related Function Documentation

◆ Function

friend class Function
friend

Definition at line 7089 of file v8.h.

◆ Object

friend class Object
friend

Definition at line 7088 of file v8.h.

◆ Script

friend class Script
friend

Definition at line 7087 of file v8.h.

◆ Value

friend class Value
friend

Definition at line 7086 of file v8.h.


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