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
Map Class Reference

#include <objects.h>

Inheritance diagram for Map:
Collaboration diagram for Map:

Data Structures

class  Deprecated
 
class  DictionaryMap
 
class  EnumLengthBits
 
class  FunctionWithPrototype
 
class  HasInstanceCallHandler
 
class  IsFrozen
 
class  IsMigrationTarget
 
class  IsShared
 
class  IsUnstable
 
class  NumberOfOwnDescriptorsBits
 
class  OwnsDescriptors
 

Public Types

typedef void(* TraverseCallback )(Map *map, void *data)
 
typedef FixedBodyDescriptor
< kPointerFieldsBeginOffset,
kPointerFieldsEndOffset, kSize
BodyDescriptor
 
- Public Types inherited from Object
enum  ValueType { OPTIMAL_REPRESENTATION, FORCE_TAGGED }
 

Public Member Functions

int instance_size ()
 
void set_instance_size (int value)
 
int inobject_properties ()
 
void set_inobject_properties (int value)
 
int pre_allocated_property_fields ()
 
void set_pre_allocated_property_fields (int value)
 
InstanceType instance_type ()
 
void set_instance_type (InstanceType value)
 
int unused_property_fields ()
 
void set_unused_property_fields (int value)
 
byte bit_field ()
 
void set_bit_field (byte value)
 
byte bit_field2 ()
 
void set_bit_field2 (byte value)
 
uint32_t bit_field3 ()
 
void set_bit_field3 (uint32_t bits)
 
 STATIC_ASSERT (kDescriptorIndexBitCount+kDescriptorIndexBitCount==20)
 
void set_non_instance_prototype (bool value)
 
bool has_non_instance_prototype ()
 
void set_function_with_prototype (bool value)
 
bool function_with_prototype ()
 
void set_is_hidden_prototype ()
 
bool is_hidden_prototype ()
 
void set_has_named_interceptor ()
 
bool has_named_interceptor ()
 
void set_has_indexed_interceptor ()
 
bool has_indexed_interceptor ()
 
void set_is_undetectable ()
 
bool is_undetectable ()
 
void set_is_observed ()
 
bool is_observed ()
 
void set_is_extensible (bool value)
 
bool is_extensible ()
 
void set_elements_kind (ElementsKind elements_kind)
 
ElementsKind elements_kind ()
 
bool has_fast_smi_elements ()
 
bool has_fast_object_elements ()
 
bool has_fast_smi_or_object_elements ()
 
bool has_fast_double_elements ()
 
bool has_fast_elements ()
 
bool has_sloppy_arguments_elements ()
 
bool has_external_array_elements ()
 
bool has_fixed_typed_array_elements ()
 
bool has_dictionary_elements ()
 
bool has_slow_elements_kind ()
 
bool DictionaryElementsInPrototypeChainOnly ()
 
bool HasTransitionArray ()
 
bool HasElementsTransition ()
 
Mapelements_transition_map ()
 
MUST_USE_RESULT MaybeObject * set_elements_transition_map (Map *transitioned_map)
 
void SetTransition (int transition_index, Map *target)
 
MapGetTransition (int transition_index)
 
MUST_USE_RESULT MaybeObject * AddTransition (Name *key, Map *target, SimpleTransitionFlag flag)
 
void ClearTransitions (Heap *heap, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
void DeprecateTransitionTree ()
 
void DeprecateTarget (Name *key, DescriptorArray *new_descriptors)
 
MapFindRootMap ()
 
MapFindUpdatedMap (int verbatim, int length, DescriptorArray *descriptors)
 
MapFindLastMatchMap (int verbatim, int length, DescriptorArray *descriptors)
 
int GetInObjectPropertyOffset (int index)
 
int NumberOfFields ()
 
bool InstancesNeedRewriting (Map *target, int target_number_of_fields, int target_inobject, int target_unused)
 
void PrintGeneralization (FILE *file, const char *reason, int modify_index, int split, int descriptors, bool constant_to_field, Representation old_representation, Representation new_representation)
 
Stringconstructor_name ()
 
void set_attached_to_shared_function_info (bool value)
 
bool attached_to_shared_function_info ()
 
void set_is_shared (bool value)
 
bool is_shared ()
 
void set_dictionary_map (bool value)
 
bool is_dictionary_map ()
 
void set_is_access_check_needed (bool access_check_needed)
 
bool is_access_check_needed ()
 
bool has_code_cache ()
 
void InitializeDescriptors (DescriptorArray *descriptors)
 
ObjectGetBackPointer ()
 
void SetBackPointer (Object *value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
void init_back_pointer (Object *undefined)
 
FixedArrayGetPrototypeTransitions ()
 
MUST_USE_RESULT MaybeObject * SetPrototypeTransitions (FixedArray *prototype_transitions)
 
bool HasPrototypeTransitions ()
 
HeapObjectUncheckedPrototypeTransitions ()
 
TransitionArrayunchecked_transition_array ()
 
int NumberOfProtoTransitions ()
 
void SetNumberOfProtoTransitions (int value)
 
void LookupDescriptor (JSObject *holder, Name *name, LookupResult *result)
 
void LookupTransition (JSObject *holder, Name *name, LookupResult *result)
 
PropertyDetails GetLastDescriptorDetails ()
 
bool CanHaveMoreTransitions ()
 
int LastAdded ()
 
int NumberOfOwnDescriptors ()
 
void SetNumberOfOwnDescriptors (int number)
 
CellRetrieveDescriptorsPointer ()
 
int EnumLength ()
 
void SetEnumLength (int length)
 
bool owns_descriptors ()
 
void set_owns_descriptors (bool is_shared)
 
bool has_instance_call_handler ()
 
void set_has_instance_call_handler ()
 
void freeze ()
 
bool is_frozen ()
 
void mark_unstable ()
 
bool is_stable ()
 
void set_migration_target (bool value)
 
bool is_migration_target ()
 
void deprecate ()
 
bool is_deprecated ()
 
bool CanBeDeprecated ()
 
MUST_USE_RESULT MaybeObject * RawCopy (int instance_size)
 
MUST_USE_RESULT MaybeObject * CopyWithPreallocatedFieldDescriptors ()
 
MUST_USE_RESULT MaybeObject * CopyDropDescriptors ()
 
MUST_USE_RESULT MaybeObject * CopyReplaceDescriptors (DescriptorArray *descriptors, TransitionFlag flag, Name *name=NULL, SimpleTransitionFlag simple_flag=FULL_TRANSITION)
 
MUST_USE_RESULT MaybeObject * ShareDescriptor (DescriptorArray *descriptors, Descriptor *descriptor)
 
MUST_USE_RESULT MaybeObject * CopyAddDescriptor (Descriptor *descriptor, TransitionFlag flag)
 
MUST_USE_RESULT MaybeObject * CopyInsertDescriptor (Descriptor *descriptor, TransitionFlag flag)
 
MUST_USE_RESULT MaybeObject * CopyReplaceDescriptor (DescriptorArray *descriptors, Descriptor *descriptor, int index, TransitionFlag flag)
 
MUST_USE_RESULT MaybeObject * AsElementsKind (ElementsKind kind)
 
MUST_USE_RESULT MaybeObject * CopyAsElementsKind (ElementsKind kind, TransitionFlag flag)
 
void AppendDescriptor (Descriptor *desc, const DescriptorArray::WhitenessWitness &)
 
MUST_USE_RESULT MaybeObject * Copy ()
 
int NextFreePropertyIndex ()
 
int NumberOfDescribedProperties (DescriptorFlag which=OWN_DESCRIPTORS, PropertyAttributes filter=NONE)
 
int InitialPropertiesLength ()
 
AccessorDescriptorFindAccessor (Name *name)
 
void ClearCodeCache (Heap *heap)
 
MUST_USE_RESULT MaybeObject * UpdateCodeCache (Name *name, Code *code)
 
ObjectFindInCodeCache (Name *name, Code::Flags flags)
 
int IndexInCodeCache (Object *name, Code *code)
 
void RemoveFromCodeCache (Name *name, Code *code, int index)
 
void ClearNonLiveTransitions (Heap *heap)
 
int Hash ()
 
bool EquivalentToForTransition (Map *other)
 
bool EquivalentToForNormalization (Map *other, PropertyNormalizationMode mode)
 
MapLookupElementsTransitionMap (ElementsKind elements_kind)
 
Handle< MapFindTransitionedMap (MapHandleList *candidates)
 
MapFindTransitionedMap (MapList *candidates)
 
void ZapPrototypeTransitions ()
 
void ZapTransitions ()
 
bool CanTransition ()
 
bool IsJSObjectMap ()
 
bool IsJSGlobalProxyMap ()
 
bool IsJSGlobalObjectMap ()
 
bool IsGlobalObjectMap ()
 
void NotifyLeafMapLayoutChange ()
 
bool CanOmitMapChecks ()
 
void AddDependentCompilationInfo (DependentCode::DependencyGroup group, CompilationInfo *info)
 
void AddDependentCode (DependentCode::DependencyGroup group, Handle< Code > code)
 
bool IsMapInArrayPrototypeChain ()
 
int visitor_id ()
 
void set_visitor_id (int visitor_id)
 
void TraverseTransitionTree (TraverseCallback callback, void *data)
 
 STATIC_CHECK (kInstanceTypeOffset==Internals::kMapInstanceTypeOffset)
 
- 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 bool IsValidElementsTransition (ElementsKind from_kind, ElementsKind to_kind)
 
static Handle< TransitionArrayAddTransition (Handle< Map > map, Handle< Name > key, Handle< Map > target, SimpleTransitionFlag flag)
 
static Handle< MapGeneralizeAllFieldRepresentations (Handle< Map > map, Representation new_representation)
 
static Handle< MapGeneralizeRepresentation (Handle< Map > map, int modify_index, Representation new_representation, StoreMode store_mode)
 
static Handle< MapCopyGeneralizeAllRepresentations (Handle< Map > map, int modify_index, StoreMode store_mode, PropertyAttributes attributes, const char *reason)
 
static Handle< MapCurrentMapForDeprecated (Handle< Map > map)
 
static Handle< MapCurrentMapForDeprecatedInternal (Handle< Map > map)
 
static Handle< MapRawCopy (Handle< Map > map, int instance_size)
 
static Handle< MapCopyDropDescriptors (Handle< Map > map)
 
static Handle< MapCopyReplaceDescriptors (Handle< Map > map, Handle< DescriptorArray > descriptors, TransitionFlag flag, Handle< Name > name)
 
static Handle< MapCopyInstallDescriptors (Handle< Map > map, int new_descriptor, Handle< DescriptorArray > descriptors)
 
static Handle< MapAsElementsKind (Handle< Map > map, ElementsKind kind)
 
static Handle< MapCopyForObserved (Handle< Map > map)
 
static Handle< MapCopyNormalized (Handle< Map > map, PropertyNormalizationMode mode, NormalizedMapSharingMode sharing)
 
static Handle< MapCopy (Handle< Map > map)
 
static Mapcast (Object *obj)
 
static void UpdateCodeCache (Handle< Map > map, Handle< Name > name, Handle< Code > code)
 
static void AppendCallbackDescriptors (Handle< Map > map, Handle< Object > descriptors)
 
static void EnsureDescriptorSlack (Handle< Map > map, int slack)
 
static Handle< MapGetPrototypeTransition (Handle< Map > map, Handle< Object > prototype)
 
static Handle< MapPutPrototypeTransition (Handle< Map > map, Handle< Object > prototype, Handle< Map > target_map)
 
- 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 kProtoTransitionHeaderSize = 1
 
static const int kProtoTransitionNumberOfEntriesOffset = 0
 
static const int kProtoTransitionElementsPerEntry = 2
 
static const int kProtoTransitionPrototypeOffset = 0
 
static const int kProtoTransitionMapOffset = 1
 
static const int kMaxCachedPrototypeTransitions = 256
 
static const int kMaxPreAllocatedPropertyFields = 255
 
static const int kInstanceSizesOffset = HeapObject::kHeaderSize
 
static const int kInstanceAttributesOffset = kInstanceSizesOffset + kIntSize
 
static const int kPrototypeOffset = kInstanceAttributesOffset + kIntSize
 
static const int kConstructorOffset = kPrototypeOffset + kPointerSize
 
static const int kTransitionsOrBackPointerOffset
 
static const int kDescriptorsOffset
 
static const int kCodeCacheOffset = kDescriptorsOffset + kPointerSize
 
static const int kDependentCodeOffset = kCodeCacheOffset + kPointerSize
 
static const int kBitField3Offset = kDependentCodeOffset + kPointerSize
 
static const int kSize = kBitField3Offset + kPointerSize
 
static const int kPointerFieldsBeginOffset = Map::kPrototypeOffset
 
static const int kPointerFieldsEndOffset = kBitField3Offset + kPointerSize
 
static const int kInstanceSizeOffset = kInstanceSizesOffset + 0
 
static const int kInObjectPropertiesByte = 1
 
static const int kInObjectPropertiesOffset
 
static const int kPreAllocatedPropertyFieldsByte = 2
 
static const int kPreAllocatedPropertyFieldsOffset
 
static const int kVisitorIdByte = 3
 
static const int kVisitorIdOffset = kInstanceSizesOffset + kVisitorIdByte
 
static const int kInstanceTypeOffset = kInstanceAttributesOffset + 0
 
static const int kUnusedPropertyFieldsOffset = kInstanceAttributesOffset + 1
 
static const int kBitFieldOffset = kInstanceAttributesOffset + 2
 
static const int kBitField2Offset = kInstanceAttributesOffset + 3
 
static const int kUnused = 0
 
static const int kHasNonInstancePrototype = 1
 
static const int kIsHiddenPrototype = 2
 
static const int kHasNamedInterceptor = 3
 
static const int kHasIndexedInterceptor = 4
 
static const int kIsUndetectable = 5
 
static const int kIsObserved = 6
 
static const int kIsAccessCheckNeeded = 7
 
static const int kIsExtensible = 0
 
static const int kStringWrapperSafeForDefaultValueOf = 1
 
static const int kAttachedToSharedFunctionInfo = 2
 
static const int kElementsKindShift = 3
 
static const int kElementsKindBitCount = 5
 
static const int kElementsKindMask
 
static const int8_t kMaximumBitField2FastElementValue
 
static const int8_t kMaximumBitField2FastSmiElementValue
 
static const int8_t kMaximumBitField2FastHoleyElementValue
 
static const int8_t kMaximumBitField2FastHoleySmiElementValue
 
- 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)
 

Detailed Description

Definition at line 5817 of file objects.h.

Member Typedef Documentation

typedef void(* TraverseCallback)(Map *map, void *data)

Definition at line 6404 of file objects.h.

Member Function Documentation

void AddDependentCode ( DependentCode::DependencyGroup  group,
Handle< Code code 
)

Definition at line 11505 of file objects.cc.

References v8::internal::dependent_code, and DependentCode::Insert().

MaybeObject * AddTransition ( Name key,
Map target,
SimpleTransitionFlag  flag 
)
inline
void AppendCallbackDescriptors ( Handle< Map map,
Handle< Object descriptors 
)
static

Definition at line 3173 of file objects.cc.

References ASSERT.

Referenced by Factory::CreateApiFunction().

void AppendDescriptor ( Descriptor *  desc,
const DescriptorArray::WhitenessWitness witness 
)
inline
MaybeObject * AsElementsKind ( ElementsKind  kind)

Definition at line 3360 of file objects.cc.

References Map::elements_kind().

Referenced by JSObject::GetElementsTransitionMapSlow().

Handle< Map > AsElementsKind ( Handle< Map map,
ElementsKind  kind 
)
static

Definition at line 3353 of file objects.cc.

References CALL_HEAP_FUNCTION.

bool attached_to_shared_function_info ( )
inline

Definition at line 4111 of file objects-inl.h.

References Map::bit_field2(), and Map::kAttachedToSharedFunctionInfo.

bool CanBeDeprecated ( )
inline

Definition at line 4207 of file objects-inl.h.

References v8::internal::CONSTANT, and Map::LastAdded().

bool CanOmitMapChecks ( )
inline

Definition at line 4231 of file objects-inl.h.

References Map::is_stable().

void ClearCodeCache ( Heap heap)
inline

Definition at line 6600 of file objects-inl.h.

References ASSERT, Heap::InNewSpace(), Map::kCodeCacheOffset, and WRITE_FIELD.

Referenced by Map::CopyDropDescriptors().

Handle< Map > Copy ( Handle< Map map)
static

Definition at line 6985 of file objects.cc.

References CALL_HEAP_FUNCTION.

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

Handle< Map > CopyDropDescriptors ( Handle< Map map)
static

Definition at line 6712 of file objects.cc.

References CALL_HEAP_FUNCTION.

Referenced by NameDictionary::TransformPropertiesToFastFor().

Handle< Map > CopyForObserved ( Handle< Map map)
static
MaybeObject * CopyInsertDescriptor ( Descriptor *  descriptor,
TransitionFlag  flag 
)
Handle< Map > CopyInstallDescriptors ( Handle< Map map,
int  new_descriptor,
Handle< DescriptorArray descriptors 
)
static
Handle< Map > CopyReplaceDescriptors ( Handle< Map map,
Handle< DescriptorArray descriptors,
TransitionFlag  flag,
Handle< Name name 
)
static
Handle< Map > CurrentMapForDeprecatedInternal ( Handle< Map map)
static
void deprecate ( )
inline
bool DictionaryElementsInPrototypeChainOnly ( )
Map * elements_transition_map ( )
inline

Definition at line 4813 of file objects-inl.h.

References HeapObject::GetHeap().

Referenced by Map::CopyAsElementsKind().

void EnsureDescriptorSlack ( Handle< Map map,
int  slack 
)
static

Definition at line 3083 of file objects.cc.

References Isolate::factory(), and Factory::NewDescriptorArray().

Referenced by Factory::CreateApiFunction().

int EnumLength ( )
inline

Definition at line 6185 of file objects.h.

Referenced by JSReceiver::IsSimpleEnum(), and JSObject::NumberOfLocalProperties().

bool EquivalentToForNormalization ( Map other,
PropertyNormalizationMode  mode 
)
bool EquivalentToForTransition ( Map other)

Definition at line 9409 of file objects.cc.

Object * FindInCodeCache ( Name name,
Code::Flags  flags 
)

Definition at line 7173 of file objects.cc.

References CodeCache::cast(), HeapObject::GetHeap(), and CodeCache::Lookup().

Map * FindRootMap ( )

Definition at line 2571 of file objects.cc.

References Map::cast(), and Map::GetBackPointer().

Map* FindTransitionedMap ( MapList candidates)
void freeze ( )
inline
bool function_with_prototype ( )
inline
Handle< Map > GeneralizeAllFieldRepresentations ( Handle< Map map,
Representation  new_representation 
)
static
int GetInObjectPropertyOffset ( int  index)
inline
PropertyDetails GetLastDescriptorDetails ( )
inline

Definition at line 2555 of file objects-inl.h.

References Map::LastAdded().

Referenced by TransitionArray::GetTargetDetails().

Map * GetTransition ( int  transition_index)
inline

Definition at line 4840 of file objects-inl.h.

bool has_dictionary_elements ( )
inline

Definition at line 5984 of file objects.h.

References v8::internal::IsDictionaryElementsKind().

bool has_external_array_elements ( )
inline

Definition at line 5976 of file objects.h.

References v8::internal::IsExternalArrayElementsKind().

bool has_fast_double_elements ( )
inline

Definition at line 5964 of file objects.h.

References v8::internal::IsFastDoubleElementsKind().

bool has_fast_elements ( )
inline

Definition at line 5968 of file objects.h.

References v8::internal::IsFastElementsKind().

bool has_fast_object_elements ( )
inline

Definition at line 5956 of file objects.h.

References v8::internal::IsFastObjectElementsKind().

bool has_fast_smi_elements ( )
inline

Definition at line 5951 of file objects.h.

References v8::internal::IsFastSmiElementsKind().

bool has_fast_smi_or_object_elements ( )
inline

Definition at line 5960 of file objects.h.

References v8::internal::IsFastSmiOrObjectElementsKind().

bool has_fixed_typed_array_elements ( )
inline

Definition at line 5980 of file objects.h.

References v8::internal::IsFixedTypedArrayElementsKind().

bool has_indexed_interceptor ( )
inline

Definition at line 5907 of file objects.h.

Referenced by JSObject::HasIndexedInterceptor().

bool has_named_interceptor ( )
inline

Definition at line 5898 of file objects.h.

Referenced by JSObject::HasNamedInterceptor(), and v8::internal::RUNTIME_FUNCTION().

bool has_non_instance_prototype ( )
inline

Definition at line 4061 of file objects-inl.h.

References Map::bit_field(), and Map::kHasNonInstancePrototype.

Referenced by JSFunction::has_prototype().

bool has_sloppy_arguments_elements ( )
inline

Definition at line 5972 of file objects.h.

References v8::internal::SLOPPY_ARGUMENTS_ELEMENTS.

bool has_slow_elements_kind ( )
inline
bool HasElementsTransition ( )
inline

Definition at line 4802 of file objects-inl.h.

References Map::HasTransitionArray().

Referenced by Map::CopyAsElementsKind().

int Hash ( )

Definition at line 9379 of file objects.cc.

References Map::bit_field2().

int IndexInCodeCache ( Object name,
Code code 
)

Definition at line 7183 of file objects.cc.

References CodeCache::cast(), and CodeCache::GetIndex().

void init_back_pointer ( Object undefined)
inline

Definition at line 4922 of file objects-inl.h.

References ASSERT, Map::kTransitionsOrBackPointerOffset, and WRITE_FIELD.

Referenced by Heap::AllocateMap().

int InitialPropertiesLength ( )
inline

Definition at line 6281 of file objects.h.

Referenced by Heap::AllocateJSObjectFromMap().

bool InstancesNeedRewriting ( Map target,
int  target_number_of_fields,
int  target_inobject,
int  target_unused 
)
bool is_access_check_needed ( )
inline

Definition at line 4085 of file objects-inl.h.

References Map::bit_field(), and Map::kIsAccessCheckNeeded.

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

bool is_dictionary_map ( )
inline
bool is_extensible ( )
inline

Definition at line 4098 of file objects-inl.h.

References Map::bit_field2(), and Map::kIsExtensible.

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

bool is_frozen ( )
inline
bool is_hidden_prototype ( )
inline
bool is_migration_target ( )
inline
bool is_observed ( )
inline

Definition at line 5930 of file objects.h.

Referenced by v8::internal::RUNTIME_FUNCTION(), and KeyedStoreIC::Store().

bool is_shared ( )
inline
bool is_stable ( )
inline
bool is_undetectable ( )
inline

Definition at line 5921 of file objects.h.

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

bool IsGlobalObjectMap ( )
inline
bool IsJSGlobalObjectMap ( )
inline

Definition at line 6369 of file objects.h.

References v8::internal::JS_GLOBAL_OBJECT_TYPE.

bool IsJSGlobalProxyMap ( )
inline

Definition at line 6366 of file objects.h.

References v8::internal::JS_GLOBAL_PROXY_TYPE.

bool IsJSObjectMap ( )
inline

Definition at line 6363 of file objects.h.

References v8::internal::FIRST_JS_OBJECT_TYPE.

Referenced by FunctionTemplateInfo::IsTemplateFor().

bool IsMapInArrayPrototypeChain ( )

Definition at line 3272 of file objects.cc.

References HeapObject::GetIsolate().

bool IsValidElementsTransition ( ElementsKind  from_kind,
ElementsKind  to_kind 
)
static
int LastAdded ( )
inline
void LookupDescriptor ( JSObject holder,
Name name,
LookupResult *  result 
)
inline
Map * LookupElementsTransitionMap ( ElementsKind  elements_kind)

Definition at line 3265 of file objects.cc.

References Map::elements_kind(), and v8::internal::NULL.

Referenced by IC::IsTransitionOfMonomorphicTarget().

void LookupTransition ( JSObject holder,
Name name,
LookupResult *  result 
)
inline
void mark_unstable ( )
inline
int NextFreePropertyIndex ( )
int NumberOfFields ( )
int NumberOfProtoTransitions ( )
inline
int pre_allocated_property_fields ( )
inline
void PrintGeneralization ( FILE *  file,
const char *  reason,
int  modify_index,
int  split,
int  descriptors,
bool  constant_to_field,
Representation  old_representation,
Representation  new_representation 
)
Handle< Map > RawCopy ( Handle< Map map,
int  instance_size 
)
static

Definition at line 6652 of file objects.cc.

References CALL_HEAP_FUNCTION.

Referenced by Map::CopyDropDescriptors(), and Map::CopyNormalized().

void RemoveFromCodeCache ( Name name,
Code code,
int  index 
)

Definition at line 7192 of file objects.cc.

References ASSERT, CodeCache::cast(), and CodeCache::RemoveByIndex().

Cell* RetrieveDescriptorsPointer ( )
inline
void set_attached_to_shared_function_info ( bool  value)
inline
void set_bit_field ( byte  value)
inline
void set_dictionary_map ( bool  value)
inline
void set_elements_kind ( ElementsKind  elements_kind)
inline
MaybeObject * set_elements_transition_map ( Map transitioned_map)
inline
void set_function_with_prototype ( bool  value)
inline
void set_has_indexed_interceptor ( )
inline

Definition at line 5903 of file objects.h.

void set_has_instance_call_handler ( )
inline
void set_has_named_interceptor ( )
inline

Definition at line 5894 of file objects.h.

void set_inobject_properties ( int  value)
inline
void set_instance_size ( int  value)
inline
void set_instance_type ( InstanceType  value)
inline

Definition at line 4017 of file objects-inl.h.

References Map::kInstanceTypeOffset, and WRITE_BYTE_FIELD.

Referenced by Heap::AllocateMap().

void set_is_access_check_needed ( bool  access_check_needed)
inline
void set_is_extensible ( bool  value)
inline

Definition at line 4090 of file objects-inl.h.

References Map::bit_field2(), Map::kIsExtensible, and Map::set_bit_field2().

void set_is_hidden_prototype ( )
inline

Definition at line 5885 of file objects.h.

void set_is_observed ( )
inline

Definition at line 5926 of file objects.h.

void set_is_shared ( bool  value)
inline
void set_is_undetectable ( )
inline

Definition at line 5917 of file objects.h.

void set_migration_target ( bool  value)
inline
void set_non_instance_prototype ( bool  value)
inline
void set_pre_allocated_property_fields ( int  value)
inline
void set_unused_property_fields ( int  value)
inline
void set_visitor_id ( int  visitor_id)
inline

Definition at line 3917 of file objects-inl.h.

References ASSERT, Map::kVisitorIdOffset, and WRITE_BYTE_FIELD.

Referenced by Heap::AllocateMap().

void SetEnumLength ( int  length)
inline

Definition at line 6189 of file objects.h.

References ASSERT.

Referenced by Map::DeprecateTarget().

void SetNumberOfOwnDescriptors ( int  number)
inline

Definition at line 6178 of file objects.h.

References ASSERT.

Referenced by Map::AppendDescriptor(), and Map::InitializeDescriptors().

void SetNumberOfProtoTransitions ( int  value)
inline

Definition at line 6144 of file objects.h.

References ASSERT, Smi::FromInt(), FixedArrayBase::length(), and FixedArray::set().

Referenced by Map::SetPrototypeTransitions().

MaybeObject * SetPrototypeTransitions ( FixedArray prototype_transitions)
inline
void SetTransition ( int  transition_index,
Map target 
)
inline

Definition at line 4835 of file objects-inl.h.

STATIC_ASSERT ( kDescriptorIndexBitCount+  kDescriptorIndexBitCount = =20)
void UpdateCodeCache ( Handle< Map map,
Handle< Name name,
Handle< Code code 
)
static

Definition at line 7149 of file objects.cc.

References CALL_HEAP_FUNCTION_VOID.

Referenced by HeapObject::UpdateMapCodeCache().

MaybeObject * UpdateCodeCache ( Name name,
Code code 
)
int visitor_id ( )
inline
void ZapTransitions ( )

Field Documentation

const int kBitField2Offset = kInstanceAttributesOffset + 3
static

Definition at line 6462 of file objects.h.

Referenced by Map::bit_field2(), and Map::set_bit_field2().

const int kBitField3Offset = kDependentCodeOffset + kPointerSize
static

Definition at line 6439 of file objects.h.

Referenced by Map::bit_field3().

const int kBitFieldOffset = kInstanceAttributesOffset + 2
static

Definition at line 6461 of file objects.h.

Referenced by Map::bit_field(), and Map::set_bit_field().

const int kCodeCacheOffset = kDescriptorsOffset + kPointerSize
static

Definition at line 6437 of file objects.h.

Referenced by Map::ClearCodeCache(), and NormalizedMapCache::Get().

const int kConstructorOffset = kPrototypeOffset + kPointerSize
static

Definition at line 6428 of file objects.h.

const int kDependentCodeOffset = kCodeCacheOffset + kPointerSize
static
const int kDescriptorsOffset
static
Initial value:

Definition at line 6435 of file objects.h.

const int kElementsKindBitCount = 5
static

Definition at line 6483 of file objects.h.

const int kElementsKindMask
static
Initial value:

Definition at line 6486 of file objects.h.

const int kElementsKindShift = 3
static

Definition at line 6482 of file objects.h.

const int kHasIndexedInterceptor = 4
static

Definition at line 6471 of file objects.h.

const int kHasNamedInterceptor = 3
static

Definition at line 6470 of file objects.h.

const int kHasNonInstancePrototype = 1
static

Definition at line 6468 of file objects.h.

Referenced by Map::has_non_instance_prototype(), and Map::set_non_instance_prototype().

const int kInObjectPropertiesByte = 1
static

Definition at line 6449 of file objects.h.

const int kInObjectPropertiesOffset
static
const int kInstanceAttributesOffset = kInstanceSizesOffset + kIntSize
static

Definition at line 6426 of file objects.h.

const int kInstanceSizeOffset = kInstanceSizesOffset + 0
static
const int kInstanceSizesOffset = HeapObject::kHeaderSize
static

Definition at line 6425 of file objects.h.

const int kIsAccessCheckNeeded = 7
static

Definition at line 6474 of file objects.h.

Referenced by Map::is_access_check_needed(), and Map::set_is_access_check_needed().

const int kIsExtensible = 0
static

Definition at line 6477 of file objects.h.

Referenced by Heap::AllocateMap(), Map::is_extensible(), and Map::set_is_extensible().

const int kIsHiddenPrototype = 2
static

Definition at line 6469 of file objects.h.

const int kIsObserved = 6
static

Definition at line 6473 of file objects.h.

const int kIsUndetectable = 5
static

Definition at line 6472 of file objects.h.

const int kMaxCachedPrototypeTransitions = 256
static

Definition at line 6415 of file objects.h.

Referenced by Map::PutPrototypeTransition().

const int8_t kMaximumBitField2FastElementValue
static
Initial value:
= static_cast<int8_t>(

Definition at line 6488 of file objects.h.

const int8_t kMaximumBitField2FastHoleyElementValue
static
Initial value:
=
static_cast<int8_t>((FAST_HOLEY_ELEMENTS + 1) <<

Definition at line 6493 of file objects.h.

const int8_t kMaximumBitField2FastHoleySmiElementValue
static
Initial value:
=
static_cast<int8_t>((FAST_HOLEY_SMI_ELEMENTS + 1) <<

Definition at line 6496 of file objects.h.

const int8_t kMaximumBitField2FastSmiElementValue
static
Initial value:
=
static_cast<int8_t>((FAST_SMI_ELEMENTS + 1) <<

Definition at line 6490 of file objects.h.

const int kMaxPreAllocatedPropertyFields = 255
static

Definition at line 6422 of file objects.h.

const int kPointerFieldsBeginOffset = Map::kPrototypeOffset
static

Definition at line 6444 of file objects.h.

Referenced by StaticMarkingVisitor< StaticVisitor >::MarkMapContents().

const int kPointerFieldsEndOffset = kBitField3Offset + kPointerSize
static

Definition at line 6445 of file objects.h.

Referenced by StaticMarkingVisitor< StaticVisitor >::MarkMapContents().

const int kPreAllocatedPropertyFieldsByte = 2
static

Definition at line 6452 of file objects.h.

const int kPreAllocatedPropertyFieldsOffset
static
const int kProtoTransitionElementsPerEntry = 2
static

Definition at line 6133 of file objects.h.

Referenced by Map::GetPrototypeTransition(), Map::PutPrototypeTransition(), and TEST().

const int kProtoTransitionHeaderSize = 1
static

Definition at line 6131 of file objects.h.

Referenced by Map::GetPrototypeTransition(), Map::PutPrototypeTransition(), and TEST().

const int kProtoTransitionMapOffset = 1
static

Definition at line 6135 of file objects.h.

Referenced by Map::GetPrototypeTransition(), Map::PutPrototypeTransition(), and TEST().

const int kProtoTransitionNumberOfEntriesOffset = 0
static

Definition at line 6132 of file objects.h.

const int kProtoTransitionPrototypeOffset = 0
static

Definition at line 6134 of file objects.h.

Referenced by Map::GetPrototypeTransition(), Map::PutPrototypeTransition(), and TEST().

const int kPrototypeOffset = kInstanceAttributesOffset + kIntSize
static

Definition at line 6427 of file objects.h.

const int kStringWrapperSafeForDefaultValueOf = 1
static

Definition at line 6478 of file objects.h.

const int kTransitionsOrBackPointerOffset
static
const int kUnused = 0
static

Definition at line 6467 of file objects.h.

const int kUnusedPropertyFieldsOffset = kInstanceAttributesOffset + 1
static

Definition at line 6460 of file objects.h.

Referenced by Map::set_unused_property_fields(), and Map::unused_property_fields().

const int kVisitorIdByte = 3
static

Definition at line 6455 of file objects.h.

const int kVisitorIdOffset = kInstanceSizesOffset + kVisitorIdByte
static

Definition at line 6456 of file objects.h.

Referenced by Map::set_visitor_id(), and Map::visitor_id().


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