v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Context Class Reference

#include <v8.h>

Data Structures

class  Scope
 

Public Member Functions

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

Static Public Member Functions

static Local< ContextNew (Isolate *isolate, ExtensionConfiguration *extensions=NULL, Handle< ObjectTemplate > global_template=Handle< ObjectTemplate >(), Handle< Value > global_object=Handle< 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 5177 of file v8.h.

Member Function Documentation

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.

Definition at line 5261 of file api.cc.

References ENTER_V8, Isolate::heap(), and Utils::OpenHandle().

Referenced by TEST(), and THREADED_TEST().

void DetachGlobal ( )

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

Definition at line 5253 of file api.cc.

References Isolate::bootstrapper(), Bootstrapper::DetachGlobal(), ENTER_V8, and Utils::OpenHandle().

Referenced by TEST().

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.

Definition at line 650 of file api.cc.

References Isolate::context(), ENTER_V8, HandleScopeImplementer::EnterContext(), Isolate::handle_scope_implementer(), Utils::OpenHandle(), HandleScopeImplementer::SaveContext(), and Isolate::set_context().

Referenced by DEPENDENT_TEST(), main(), Shell::ReportException(), TEST(), and THREADED_TEST().

void Exit ( )

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

Definition at line 661 of file api.cc.

References Utils::ApiCheck(), ENTER_V8, Isolate::handle_scope_implementer(), HandleScopeImplementer::LastEnteredContextWas(), HandleScopeImplementer::LeaveContext(), Utils::OpenHandle(), HandleScopeImplementer::RestoreContext(), and Isolate::set_context().

Referenced by main(), Shell::ReportException(), TEST(), and THREADED_TEST().

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 6637 of file v8.h.

References I.

Referenced by Context::SetAlignedPointerInEmbedderData(), and THREADED_TEST().

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 6622 of file v8.h.

References HandleScope::CreateHandle(), and I.

Referenced by Context::SetEmbedderData().

Handle< Value > GetSecurityToken ( )

Returns the security token of this context.

Definition at line 5224 of file api.cc.

References Utils::OpenHandle(), and Utils::ToLocal().

v8::Local< v8::Object > 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.

Definition at line 5239 of file api.cc.

References Utils::OpenHandle(), and Utils::ToLocal().

Referenced by CreateFramePointerGrabberConstructor(), Shell::ExecuteString(), Shell::GetCompletions(), JsHttpRequestProcessor::Initialize(), ExistsInHiddenPrototypeContext::PostInitializeContext(), JsHttpRequestProcessor::Process(), RunCppCycle(), TEST(), RequestInterruptTestWithFunctionCall::TestBody(), RequestInterruptTestWithMethodCall::TestBody(), RequestInterruptTestWithAccessor::TestBody(), RequestInterruptTestWithNativeAccessor::TestBody(), RequestInterruptTestWithMethodCallAndInterceptor::TestBody(), RequestInterruptTestWithMathAbs::TestBody(), THREADED_PROFILED_TEST(), THREADED_TEST(), and UNINITIALIZED_TEST().

bool HasOutOfMemoryException ( )
inline

Returns true if the context has experienced an out of memory situation.

Definition at line 5250 of file v8.h.

bool IsCodeGenerationFromStringsAllowed ( )

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

Definition at line 5270 of file api.cc.

References Utils::OpenHandle().

Referenced by THREADED_TEST().

Local< Context > New ( v8::Isolate external_isolate,
v8::ExtensionConfiguration extensions = NULL,
v8::Handle< ObjectTemplate global_template = Handle<ObjectTemplate>(),
v8::Handle< Value global_object = Handle<Value>() 
)
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.

Definition at line 5188 of file api.cc.

References HandleScope::CloseAndEscape(), Handle< T >::is_null(), LOG_API, NULL, ON_BAILOUT, and Utils::ToLocal().

Referenced by Shell::CreateEvaluationContext(), CreateShellContext(), DEPENDENT_TEST(), CcTest::InitializeVM(), main(), CcTest::NewContext(), Shell::RealmCreate(), ThreadA::Run(), ThreadB::Run(), IsolateNonlockingThread::Run(), LockerUnlockerThread::Run(), LockTwiceAndUnlockThread::Run(), LockAndUnlockDifferentIsolatesThread::Run(), IsolateGenesisThread::Run(), ApiCallOptimizationChecker::Run(), RunMain(), RunParserSyncTest(), TEST(), and THREADED_TEST().

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.

Definition at line 740 of file api.cc.

References ASSERT_EQ, and Context::GetAlignedPointerFromEmbedderData().

Referenced by THREADED_TEST().

void SetEmbedderData ( int  index,
v8::Handle< 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.

Definition at line 721 of file api.cc.

References ASSERT_EQ, Context::GetEmbedderData(), Handle< T >::is_null(), and Utils::OpenHandle().

void SetErrorMessageForCodeGenerationFromStrings ( Handle< 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.

Definition at line 5276 of file api.cc.

References Utils::OpenHandle().

Referenced by TEST().

void SetSecurityToken ( Handle< Value token)

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

Definition at line 5207 of file api.cc.

References ENTER_V8, and Utils::OpenHandle().

Referenced by TEST(), and THREADED_TEST().

void UseDefaultSecurityToken ( )

Restores the security token to the default value.

Definition at line 5216 of file api.cc.

References ENTER_V8, and Utils::OpenHandle().

Friends And Related Function Documentation

friend class Function
friend

Definition at line 5331 of file v8.h.

friend class Object
friend

Definition at line 5330 of file v8.h.

friend class Script
friend

Definition at line 5329 of file v8.h.

friend class Value
friend

Definition at line 5328 of file v8.h.


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