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 <contexts.h>

Inheritance diagram for Context:
Collaboration diagram for Context:

Public Types

enum  {
  CLOSURE_INDEX, PREVIOUS_INDEX, EXTENSION_INDEX, GLOBAL_OBJECT_INDEX,
  MIN_CONTEXT_SLOTS, THROWN_OBJECT_INDEX = MIN_CONTEXT_SLOTS, GLOBAL_PROXY_INDEX = MIN_CONTEXT_SLOTS, SECURITY_TOKEN_INDEX,
  SLOPPY_ARGUMENTS_BOILERPLATE_INDEX, ALIASED_ARGUMENTS_BOILERPLATE_INDEX, STRICT_ARGUMENTS_BOILERPLATE_INDEX, REGEXP_RESULT_MAP_INDEX,
  SLOPPY_FUNCTION_MAP_INDEX, STRICT_FUNCTION_MAP_INDEX, SLOPPY_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX,
  INITIAL_OBJECT_PROTOTYPE_INDEX, INITIAL_ARRAY_PROTOTYPE_INDEX, BOOLEAN_FUNCTION_INDEX, NUMBER_FUNCTION_INDEX,
  STRING_FUNCTION_INDEX, STRING_FUNCTION_PROTOTYPE_MAP_INDEX, SYMBOL_FUNCTION_INDEX, OBJECT_FUNCTION_INDEX,
  INTERNAL_ARRAY_FUNCTION_INDEX, ARRAY_FUNCTION_INDEX, JS_ARRAY_MAPS_INDEX, DATE_FUNCTION_INDEX,
  JSON_OBJECT_INDEX, REGEXP_FUNCTION_INDEX, CREATE_DATE_FUN_INDEX, TO_NUMBER_FUN_INDEX,
  TO_STRING_FUN_INDEX, TO_DETAIL_STRING_FUN_INDEX, TO_OBJECT_FUN_INDEX, TO_INTEGER_FUN_INDEX,
  TO_UINT32_FUN_INDEX, TO_INT32_FUN_INDEX, TO_BOOLEAN_FUN_INDEX, GLOBAL_EVAL_FUN_INDEX,
  INSTANTIATE_FUN_INDEX, CONFIGURE_INSTANCE_FUN_INDEX, ARRAY_BUFFER_FUN_INDEX, UINT8_ARRAY_FUN_INDEX,
  INT8_ARRAY_FUN_INDEX, UINT16_ARRAY_FUN_INDEX, INT16_ARRAY_FUN_INDEX, UINT32_ARRAY_FUN_INDEX,
  INT32_ARRAY_FUN_INDEX, FLOAT32_ARRAY_FUN_INDEX, FLOAT64_ARRAY_FUN_INDEX, UINT8_CLAMPED_ARRAY_FUN_INDEX,
  DATA_VIEW_FUN_INDEX, MESSAGE_LISTENERS_INDEX, MAKE_MESSAGE_FUN_INDEX, GET_STACK_TRACE_LINE_INDEX,
  CONFIGURE_GLOBAL_INDEX, FUNCTION_CACHE_INDEX, JSFUNCTION_RESULT_CACHES_INDEX, NORMALIZED_MAP_CACHE_INDEX,
  RUNTIME_CONTEXT_INDEX, CALL_AS_FUNCTION_DELEGATE_INDEX, CALL_AS_CONSTRUCTOR_DELEGATE_INDEX, SCRIPT_FUNCTION_INDEX,
  OPAQUE_REFERENCE_FUNCTION_INDEX, CONTEXT_EXTENSION_FUNCTION_INDEX, OUT_OF_MEMORY_INDEX, EMBEDDER_DATA_INDEX,
  ALLOW_CODE_GEN_FROM_STRINGS_INDEX, ERROR_MESSAGE_FOR_CODE_GEN_FROM_STRINGS_INDEX, RUN_MICROTASKS_INDEX, ENQUEUE_EXTERNAL_MICROTASK_INDEX,
  IS_PROMISE_INDEX, PROMISE_CREATE_INDEX, PROMISE_RESOLVE_INDEX, PROMISE_REJECT_INDEX,
  PROMISE_CHAIN_INDEX, PROMISE_CATCH_INDEX, TO_COMPLETE_PROPERTY_DESCRIPTOR_INDEX, DERIVED_HAS_TRAP_INDEX,
  DERIVED_GET_TRAP_INDEX, DERIVED_SET_TRAP_INDEX, PROXY_ENUMERATE_INDEX, OBSERVERS_NOTIFY_CHANGE_INDEX,
  OBSERVERS_ENQUEUE_SPLICE_INDEX, OBSERVERS_BEGIN_SPLICE_INDEX, OBSERVERS_END_SPLICE_INDEX, SLOPPY_GENERATOR_FUNCTION_MAP_INDEX,
  STRICT_GENERATOR_FUNCTION_MAP_INDEX, GENERATOR_OBJECT_PROTOTYPE_MAP_INDEX, GENERATOR_RESULT_MAP_INDEX, OPTIMIZED_FUNCTIONS_LIST,
  OPTIMIZED_CODE_LIST, DEOPTIMIZED_CODE_LIST, MAP_CACHE_INDEX, NEXT_CONTEXT_LINK,
  NATIVE_CONTEXT_SLOTS, FIRST_WEAK_SLOT = OPTIMIZED_FUNCTIONS_LIST
}
 
typedef FixedBodyDescriptor
< kHeaderSize, kSize, kSize
ScavengeBodyDescriptor
 
typedef FixedBodyDescriptor
< kHeaderSize, kHeaderSize+FIRST_WEAK_SLOT
*kPointerSize, kSize
MarkCompactBodyDescriptor
 
- Public Types inherited from Object
enum  ValueType { OPTIMAL_REPRESENTATION, FORCE_TAGGED }
 

Public Member Functions

JSFunctionclosure ()
 
void set_closure (JSFunction *closure)
 
Contextprevious ()
 
void set_previous (Context *context)
 
bool has_extension ()
 
Objectextension ()
 
void set_extension (Object *object)
 
JSModulemodule ()
 
void set_module (JSModule *module)
 
Contextdeclaration_context ()
 
GlobalObjectglobal_object ()
 
void set_global_object (GlobalObject *object)
 
JSObjectglobal_proxy ()
 
void set_global_proxy (JSObject *global)
 
JSBuiltinsObjectbuiltins ()
 
Contextglobal_context ()
 
Contextnative_context ()
 
bool IsNativeContext ()
 
bool IsFunctionContext ()
 
bool IsCatchContext ()
 
bool IsWithContext ()
 
bool IsBlockContext ()
 
bool IsModuleContext ()
 
bool IsGlobalContext ()
 
void AddOptimizedFunction (JSFunction *function)
 
void RemoveOptimizedFunction (JSFunction *function)
 
void SetOptimizedFunctionsListHead (Object *head)
 
ObjectOptimizedFunctionsListHead ()
 
void AddOptimizedCode (Code *code)
 
void SetOptimizedCodeListHead (Object *head)
 
ObjectOptimizedCodeListHead ()
 
void SetDeoptimizedCodeListHead (Object *head)
 
ObjectDeoptimizedCodeListHead ()
 
Handle< ObjectErrorMessageForCodeGenerationFromStrings ()
 
Handle< ObjectLookup (Handle< String > name, ContextLookupFlags flags, int *index, PropertyAttributes *attributes, BindingFlags *binding_flags)
 
- Public Member Functions inherited from FixedArray
Objectget (int index)
 
void set (int index, Object *value)
 
bool is_the_hole (int index)
 
void set (int index, Smi *value)
 
void set (int index, Object *value, WriteBarrierMode mode)
 
void set_undefined (int index)
 
void set_null (int index)
 
void set_the_hole (int index)
 
Object ** GetFirstElementAddress ()
 
bool ContainsOnlySmisOrHoles ()
 
Object ** data_start ()
 
void Shrink (int length)
 
MUST_USE_RESULT MaybeObject * Copy ()
 
MUST_USE_RESULT MaybeObject * CopySize (int new_length, PretenureFlag pretenure=NOT_TENURED)
 
MUST_USE_RESULT MaybeObject * AddKeysFromJSArray (JSArray *array)
 
MUST_USE_RESULT MaybeObject * UnionOfKeys (FixedArray *other)
 
void CopyTo (int pos, FixedArray *dest, int dest_pos, int len)
 
Object ** RawFieldOfElementAt (int index)
 
void SwapPairs (FixedArray *numbers, int i, int j)
 
void SortPairs (FixedArray *numbers, uint32_t len)
 
- Public Member Functions inherited from FixedArrayBase
int length ()
 
void set_length (int value)
 
- Public Member Functions inherited from HeapObject
Mapmap ()
 
void set_map (Map *value)
 
void set_map_no_write_barrier (Map *value)
 
MapWord map_word ()
 
void set_map_word (MapWord map_word)
 
HeapGetHeap ()
 
IsolateGetIsolate ()
 
Address address ()
 
void Iterate (ObjectVisitor *v)
 
void IterateBody (InstanceType type, int object_size, ObjectVisitor *v)
 
int Size ()
 
int SizeFromMap (Map *map)
 
WriteBarrierMode GetWriteBarrierMode (const DisallowHeapAllocation &promise)
 
void HeapObjectShortPrint (StringStream *accumulator)
 
 STATIC_CHECK (kMapOffset==Internals::kHeapObjectMapOffset)
 
- Public Member Functions inherited from Object
bool IsObject ()
 
bool IsFixedArrayBase ()
 
bool IsExternal ()
 
bool IsAccessorInfo ()
 
bool IsStruct ()
 
 INLINE (bool IsSpecObject())
 
 INLINE (bool IsSpecFunction())
 
bool IsCallable ()
 
 INLINE (bool IsUndefined())
 
 INLINE (bool IsNull())
 
 INLINE (bool IsTheHole())
 
 INLINE (bool IsUninitialized())
 
 INLINE (bool IsTrue())
 
 INLINE (bool IsFalse())
 
bool IsArgumentsMarker ()
 
bool NonFailureIsHeapObject ()
 
bool IsFiller ()
 
double Number ()
 
bool IsNaN ()
 
bool ToInt32 (int32_t *value)
 
bool ToUint32 (uint32_t *value)
 
Representation OptimalRepresentation (ValueType type=OPTIMAL_REPRESENTATION)
 
bool FitsRepresentation (Representation representation)
 
MaybeObject * AllocateNewStorageFor (Heap *heap, Representation representation)
 
bool HasValidElements ()
 
bool HasSpecificClassOf (String *name)
 
MUST_USE_RESULT MaybeObject * ToObject (Isolate *isolate)
 
bool BooleanValue ()
 
MUST_USE_RESULT MaybeObject * ToObject (Context *native_context)
 
MUST_USE_RESULT MaybeObject * ToSmi ()
 
void Lookup (Name *name, LookupResult *result)
 
MUST_USE_RESULT MaybeObject * GetProperty (Name *key)
 
MUST_USE_RESULT MaybeObject * GetProperty (Name *key, PropertyAttributes *attributes)
 
MUST_USE_RESULT MaybeObject * GetPropertyWithReceiver (Object *receiver, Name *key, PropertyAttributes *attributes)
 
MUST_USE_RESULT MaybeObject * GetProperty (Object *receiver, LookupResult *result, Name *key, PropertyAttributes *attributes)
 
MUST_USE_RESULT MaybeObject * GetPropertyWithDefinedGetter (Object *receiver, JSReceiver *getter)
 
ObjectGetPrototype (Isolate *isolate)
 
MapGetMarkerMap (Isolate *isolate)
 
ObjectGetHash ()
 
bool SameValue (Object *other)
 
bool ToArrayIndex (uint32_t *index)
 
bool IsStringObjectWithCharacterAt (uint32_t index)
 
void VerifyApiCallResultType ()
 
void ShortPrint (FILE *out=stdout)
 
void ShortPrint (StringStream *accumulator)
 

Static Public Member Functions

static Contextcast (Object *context)
 
static int SlotOffset (int index)
 
static int FunctionMapIndex (StrictMode strict_mode, bool is_generator)
 
- Static Public Member Functions inherited from FixedArray
static int SizeFor (int length)
 
static int OffsetOfElementAt (int index)
 
static FixedArraycast (Object *obj)
 
- Static Public Member Functions inherited from FixedArrayBase
static FixedArrayBasecast (Object *object)
 
- Static Public Member Functions inherited from HeapObject
static HeapObjectFromAddress (Address address)
 
static Object ** RawField (HeapObject *obj, int offset)
 
static void UpdateMapCodeCache (Handle< HeapObject > object, Handle< Name > name, Handle< Code > code)
 
static HeapObjectcast (Object *obj)
 
- Static Public Member Functions inherited from Object
static MUST_USE_RESULT Handle
< Object
ToSmi (Isolate *isolate, Handle< Object > object)
 
static Handle< ObjectGetPropertyWithReceiver (Handle< Object > object, Handle< Object > receiver, Handle< Name > name, PropertyAttributes *attributes)
 
static Handle< ObjectGetProperty (Handle< Object > object, Handle< Name > key)
 
static Handle< ObjectGetProperty (Handle< Object > object, Handle< Object > receiver, LookupResult *result, Handle< Name > key, PropertyAttributes *attributes)
 
static MUST_USE_RESULT
MaybeObject * 
GetPropertyOrFail (Handle< Object > object, Handle< Object > receiver, LookupResult *result, Handle< Name > key, PropertyAttributes *attributes)
 
static Handle< ObjectGetElement (Isolate *isolate, Handle< Object > object, uint32_t index)
 
static Handle< ObjectGetElementNoExceptionThrown (Isolate *isolate, Handle< Object > object, uint32_t index)
 
static Handle< ObjectGetElementWithReceiver (Isolate *isolate, Handle< Object > object, Handle< Object > receiver, uint32_t index)
 
static Handle< ObjectGetOrCreateHash (Handle< Object > object, Isolate *isolate)
 
static Objectcast (Object *value)
 

Static Public Attributes

static const int kSize = kHeaderSize + NATIVE_CONTEXT_SLOTS * kPointerSize
 
- Static Public Attributes inherited from FixedArray
static const int kMaxSize = 128 * MB * kPointerSize
 
static const int kMaxLength = (kMaxSize - kHeaderSize) / kPointerSize
 
- Static Public Attributes inherited from FixedArrayBase
static const int kLengthOffset = HeapObject::kHeaderSize
 
static const int kHeaderSize = kLengthOffset + kPointerSize
 
- Static Public Attributes inherited from HeapObject
static const int kMapOffset = Object::kHeaderSize
 
static const int kHeaderSize = kMapOffset + kPointerSize
 
- Static Public Attributes inherited from Object
static const int kHeaderSize = 0
 

Additional Inherited Members

- Protected Member Functions inherited from HeapObject
void IteratePointers (ObjectVisitor *v, int start, int end)
 
void IteratePointer (ObjectVisitor *v, int offset)
 
void IterateNextCodeLink (ObjectVisitor *v, int offset)
 
- Static Protected Member Functions inherited from FixedArray
static void NoWriteBarrierSet (FixedArray *array, int index, Object *value)
 
static void NoIncrementalWriteBarrierSet (FixedArray *array, int index, Object *value)
 

Detailed Description

Definition at line 241 of file contexts.h.

Member Typedef Documentation

Member Enumeration Documentation

anonymous enum
Enumerator
CLOSURE_INDEX 
PREVIOUS_INDEX 
EXTENSION_INDEX 
GLOBAL_OBJECT_INDEX 
MIN_CONTEXT_SLOTS 
THROWN_OBJECT_INDEX 
GLOBAL_PROXY_INDEX 
SECURITY_TOKEN_INDEX 
SLOPPY_ARGUMENTS_BOILERPLATE_INDEX 
ALIASED_ARGUMENTS_BOILERPLATE_INDEX 
STRICT_ARGUMENTS_BOILERPLATE_INDEX 
REGEXP_RESULT_MAP_INDEX 
SLOPPY_FUNCTION_MAP_INDEX 
STRICT_FUNCTION_MAP_INDEX 
SLOPPY_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX 
STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX 
INITIAL_OBJECT_PROTOTYPE_INDEX 
INITIAL_ARRAY_PROTOTYPE_INDEX 
BOOLEAN_FUNCTION_INDEX 
NUMBER_FUNCTION_INDEX 
STRING_FUNCTION_INDEX 
STRING_FUNCTION_PROTOTYPE_MAP_INDEX 
SYMBOL_FUNCTION_INDEX 
OBJECT_FUNCTION_INDEX 
INTERNAL_ARRAY_FUNCTION_INDEX 
ARRAY_FUNCTION_INDEX 
JS_ARRAY_MAPS_INDEX 
DATE_FUNCTION_INDEX 
JSON_OBJECT_INDEX 
REGEXP_FUNCTION_INDEX 
CREATE_DATE_FUN_INDEX 
TO_NUMBER_FUN_INDEX 
TO_STRING_FUN_INDEX 
TO_DETAIL_STRING_FUN_INDEX 
TO_OBJECT_FUN_INDEX 
TO_INTEGER_FUN_INDEX 
TO_UINT32_FUN_INDEX 
TO_INT32_FUN_INDEX 
TO_BOOLEAN_FUN_INDEX 
GLOBAL_EVAL_FUN_INDEX 
INSTANTIATE_FUN_INDEX 
CONFIGURE_INSTANCE_FUN_INDEX 
ARRAY_BUFFER_FUN_INDEX 
UINT8_ARRAY_FUN_INDEX 
INT8_ARRAY_FUN_INDEX 
UINT16_ARRAY_FUN_INDEX 
INT16_ARRAY_FUN_INDEX 
UINT32_ARRAY_FUN_INDEX 
INT32_ARRAY_FUN_INDEX 
FLOAT32_ARRAY_FUN_INDEX 
FLOAT64_ARRAY_FUN_INDEX 
UINT8_CLAMPED_ARRAY_FUN_INDEX 
DATA_VIEW_FUN_INDEX 
MESSAGE_LISTENERS_INDEX 
MAKE_MESSAGE_FUN_INDEX 
GET_STACK_TRACE_LINE_INDEX 
CONFIGURE_GLOBAL_INDEX 
FUNCTION_CACHE_INDEX 
JSFUNCTION_RESULT_CACHES_INDEX 
NORMALIZED_MAP_CACHE_INDEX 
RUNTIME_CONTEXT_INDEX 
CALL_AS_FUNCTION_DELEGATE_INDEX 
CALL_AS_CONSTRUCTOR_DELEGATE_INDEX 
SCRIPT_FUNCTION_INDEX 
OPAQUE_REFERENCE_FUNCTION_INDEX 
CONTEXT_EXTENSION_FUNCTION_INDEX 
OUT_OF_MEMORY_INDEX 
EMBEDDER_DATA_INDEX 
ALLOW_CODE_GEN_FROM_STRINGS_INDEX 
ERROR_MESSAGE_FOR_CODE_GEN_FROM_STRINGS_INDEX 
RUN_MICROTASKS_INDEX 
ENQUEUE_EXTERNAL_MICROTASK_INDEX 
IS_PROMISE_INDEX 
PROMISE_CREATE_INDEX 
PROMISE_RESOLVE_INDEX 
PROMISE_REJECT_INDEX 
PROMISE_CHAIN_INDEX 
PROMISE_CATCH_INDEX 
TO_COMPLETE_PROPERTY_DESCRIPTOR_INDEX 
DERIVED_HAS_TRAP_INDEX 
DERIVED_GET_TRAP_INDEX 
DERIVED_SET_TRAP_INDEX 
PROXY_ENUMERATE_INDEX 
OBSERVERS_NOTIFY_CHANGE_INDEX 
OBSERVERS_ENQUEUE_SPLICE_INDEX 
OBSERVERS_BEGIN_SPLICE_INDEX 
OBSERVERS_END_SPLICE_INDEX 
SLOPPY_GENERATOR_FUNCTION_MAP_INDEX 
STRICT_GENERATOR_FUNCTION_MAP_INDEX 
GENERATOR_OBJECT_PROTOTYPE_MAP_INDEX 
GENERATOR_RESULT_MAP_INDEX 
OPTIMIZED_FUNCTIONS_LIST 
OPTIMIZED_CODE_LIST 
DEOPTIMIZED_CODE_LIST 
MAP_CACHE_INDEX 
NEXT_CONTEXT_LINK 
NATIVE_CONTEXT_SLOTS 
FIRST_WEAK_SLOT 

Definition at line 250 of file contexts.h.

Member Function Documentation

void AddOptimizedCode ( Code code)
Context * declaration_context ( )
Object * DeoptimizedCodeListHead ( )
Handle< Object > ErrorMessageForCodeGenerationFromStrings ( )
Context * global_context ( )

Definition at line 58 of file contexts.cc.

References Context::IsGlobalContext(), and Context::previous().

Referenced by v8::internal::RUNTIME_FUNCTION().

JSObject * global_proxy ( )
bool has_extension ( )
inline
bool IsBlockContext ( )
inline

Definition at line 429 of file contexts.h.

References HeapObject::GetHeap(), and HeapObject::map().

Referenced by Scope::DeserializeScopeChain().

bool IsCatchContext ( )
inline
bool IsFunctionContext ( )
inline
bool IsModuleContext ( )
inline

Definition at line 433 of file contexts.h.

References HeapObject::GetHeap(), and HeapObject::map().

Referenced by Scope::DeserializeScopeChain().

bool IsWithContext ( )
inline

Definition at line 425 of file contexts.h.

References HeapObject::GetHeap(), and HeapObject::map().

Referenced by Scope::DeserializeScopeChain().

JSModule* module ( )
inline
Object * OptimizedCodeListHead ( )

Definition at line 349 of file contexts.cc.

References ASSERT, Context::IsNativeContext(), and Context::OPTIMIZED_CODE_LIST.

Object * OptimizedFunctionsListHead ( )
void set_global_proxy ( JSObject global)

Definition at line 92 of file contexts.cc.

References Context::native_context().

void set_module ( JSModule module)
inline

Definition at line 382 of file contexts.h.

References Context::EXTENSION_INDEX, and FixedArray::set().

Referenced by v8::internal::RUNTIME_FUNCTION().

void SetDeoptimizedCodeListHead ( Object head)
void SetOptimizedCodeListHead ( Object head)
void SetOptimizedFunctionsListHead ( Object head)
static int SlotOffset ( int  index)
inlinestatic

Field Documentation

const int kSize = kHeaderSize + NATIVE_CONTEXT_SLOTS * kPointerSize
static

Definition at line 512 of file contexts.h.


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