v8
3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
|
#include <v8.h>
Data Structures | |
class | Scope |
Public Member Functions | |
Local< Object > | Global () |
void | DetachGlobal () |
void | ReattachGlobal (Handle< Object > global_object) |
void | SetSecurityToken (Handle< Value > token) |
void | UseDefaultSecurityToken () |
Handle< Value > | GetSecurityToken () |
void | Enter () |
void | Exit () |
bool | HasOutOfMemoryException () |
void | SetData (Handle< Value > data) |
Local< Value > | GetData () |
void | AllowCodeGenerationFromStrings (bool allow) |
bool | IsCodeGenerationFromStringsAllowed () |
void | SetErrorMessageForCodeGenerationFromStrings (Handle< String > message) |
Static Public Member Functions | |
static Persistent< Context > | New (ExtensionConfiguration *extensions=NULL, Handle< ObjectTemplate > global_template=Handle< ObjectTemplate >(), Handle< Value > global_object=Handle< Value >()) |
static Local< Context > | GetEntered () |
static Local< Context > | GetCurrent () |
static Local< Context > | GetCalling () |
static bool | InContext () |
Friends | |
class | Value |
class | Script |
class | Object |
class | Function |
A sandboxed execution context with its own set of built-in objects and functions.
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 4606 of file api.cc.
References Handle< T >::cast(), ENTER_V8, and Isolate::heap().
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 4582 of file api.cc.
References Isolate::bootstrapper(), Handle< T >::cast(), Bootstrapper::DetachGlobal(), and ENTER_V8.
Referenced by ExistsInHiddenPrototypeContext::PostInitializeContext(), TEST(), and THREADED_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 742 of file api.cc.
References Isolate::context(), ENTER_V8, HandleScopeImplementer::EnterContext(), Isolate::handle_scope_implementer(), HandleScopeImplementer::SaveContext(), and Isolate::set_context().
Referenced by 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 755 of file api.cc.
References Isolate::handle_scope_implementer(), Isolate::IsInitialized(), HandleScopeImplementer::LeaveLastContext(), HandleScopeImplementer::RestoreContext(), Isolate::set_context(), and Isolate::set_context_exit_happened().
|
static |
Returns the context of the calling JavaScript code. That is the context of the top-most JavaScript frame. If there are no JavaScript frames an empty handle is returned.
Definition at line 4557 of file api.cc.
References Handle< T >::cast(), Isolate::GetCallingNativeContext(), Handle< T >::is_null(), and Utils::ToLocal().
|
static |
Returns the context that is on the top of the stack.
Definition at line 4545 of file api.cc.
References Handle< T >::cast(), Handle< T >::is_null(), Isolate::native_context(), and Utils::ToLocal().
Referenced by RunCppCycle(), RunMain(), and TEST().
Definition at line 788 of file api.cc.
References ASSERT, and Utils::ToLocal().
|
static |
Returns the last entered context.
Definition at line 4532 of file api.cc.
References Handle< T >::cast(), Isolate::handle_scope_implementer(), Handle< T >::is_null(), HandleScopeImplementer::LastEnteredContext(), and Utils::ToLocal().
Returns the security token of this context.
Definition at line 4509 of file api.cc.
References Utils::ToLocal().
v8::Local< v8::Object > Global | ( | ) |
Returns the global proxy object or global object itself for detached contexts.
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.
If DetachGlobal() has been invoked, Global() would return actual global object until global is reattached with ReattachGlobal().
Definition at line 4570 of file api.cc.
References Handle< T >::cast(), and Utils::ToLocal().
Referenced by ExistsInHiddenPrototypeContext::PostInitializeContext(), TEST(), and THREADED_TEST().
bool HasOutOfMemoryException | ( | ) |
Returns true if the context has experienced an out of memory situation.
Definition at line 4521 of file api.cc.
Referenced by ProvokeOutOfMemory(), and TEST().
|
static |
Returns true if V8 has a current context.
Definition at line 4527 of file api.cc.
References NULL.
Referenced by Shell::ReportException().
bool IsCodeGenerationFromStringsAllowed | ( | ) |
Returns true if code generation from strings is allowed for the context. For more details see AllowCodeGenerationFromStrings(bool) documentation.
Definition at line 4620 of file api.cc.
References Handle< T >::cast(), and ENTER_V8.
Referenced by THREADED_TEST().
|
static |
Creates a new context.
Returns a persistent handle to the newly allocated context. This persistent handle has to be disposed when the context is no longer used so the context can be garbage collected.
extensions | An optional extension configuration containing the extensions to be installed in the newly created context. |
global_template | An optional object template from which the global object for the newly created context will be created. |
global_object | An 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 4411 of file api.cc.
References ASSERT, Isolate::bootstrapper(), Bootstrapper::CreateEnvironment(), Isolate::EnsureDefaultIsolate(), ENTER_V8, Isolate::heap(), Handle< T >::is_null(), Handle< T >::IsEmpty(), LOG_API, ObjectTemplate::New(), ON_BAILOUT, RuntimeProfiler::Reset(), Isolate::runtime_profiler(), and Utils::ToLocal().
Referenced by ContextInitializer::ContextInitializer(), Shell::CreateEvaluationContext(), CreateShellContext(), DEPENDENT_TEST(), main(), ThreadA::Run(), ThreadB::Run(), LoopingThread::Run(), IsolateNonlockingThread::Run(), LockerUnlockerThread::Run(), LockTwiceAndUnlockThread::Run(), LockAndUnlockDifferentIsolatesThread::Run(), IsolateGenesisThread::Run(), RunMain(), TEST(), and THREADED_TEST().
Reattaches a global object to a context. This can be used to restore the connection between a global object and a context after DetachGlobal has been called.
global_object | The global object to reattach to the context. For this to work, the global object must be the global object that was associated with this context before a call to DetachGlobal. |
Definition at line 4593 of file api.cc.
References Isolate::bootstrapper(), Handle< T >::cast(), ENTER_V8, and Bootstrapper::ReattachGlobal().
Referenced by ExistsInHiddenPrototypeContext::PostInitializeContext().
void SetData | ( | v8::Handle< Value > | data | ) |
Sets the security token for the context. To access an object in another context, the security tokens must match.
Definition at line 4485 of file api.cc.
References ENTER_V8.
Referenced by TEST(), and THREADED_TEST().
void UseDefaultSecurityToken | ( | ) |