v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::compiler::PropertyAccessInfo Class Referencefinal

#include <access-info.h>

Collaboration diagram for v8::internal::compiler::PropertyAccessInfo:

Public Types

enum  Kind {
  kInvalid , kNotFound , kDataField , kFastDataConstant ,
  kDictionaryProtoDataConstant , kFastAccessorConstant , kDictionaryProtoAccessorConstant , kModuleExport ,
  kStringLength , kStringWrapperLength , kTypedArrayLength
}
 

Public Member Functions

bool Merge (PropertyAccessInfo const *that, AccessMode access_mode, Zone *zone) V8_WARN_UNUSED_RESULT
 
void RecordDependencies (CompilationDependencies *dependencies)
 
bool IsInvalid () const
 
bool IsNotFound () const
 
bool IsDataField () const
 
bool IsFastDataConstant () const
 
bool IsFastAccessorConstant () const
 
bool IsModuleExport () const
 
bool IsStringLength () const
 
bool IsStringWrapperLength () const
 
bool IsTypedArrayLength () const
 
bool IsDictionaryProtoDataConstant () const
 
bool IsDictionaryProtoAccessorConstant () const
 
bool HasTransitionMap () const
 
bool HasDictionaryHolder () const
 
ConstFieldInfo GetConstFieldInfo () const
 
Kind kind () const
 
OptionalJSObjectRef holder () const
 
OptionalMapRef transition_map () const
 
OptionalObjectRef constant () const
 
FieldIndex field_index () const
 
Type field_type () const
 
Representation field_representation () const
 
OptionalMapRef field_map () const
 
ZoneVector< MapRef > const & lookup_start_object_maps () const
 
InternalIndex dictionary_index () const
 
NameRef name () const
 
void set_elements_kind (ElementsKind elements_kind)
 
ElementsKind elements_kind () const
 

Static Public Member Functions

static PropertyAccessInfo NotFound (Zone *zone, MapRef receiver_map, OptionalJSObjectRef holder)
 
static PropertyAccessInfo DataField (JSHeapBroker *broker, Zone *zone, MapRef receiver_map, ZoneVector< CompilationDependency const * > &&unrecorded_dependencies, FieldIndex field_index, Representation field_representation, Type field_type, MapRef field_owner_map, OptionalMapRef field_map, OptionalJSObjectRef holder, OptionalMapRef transition_map)
 
static PropertyAccessInfo FastDataConstant (Zone *zone, MapRef receiver_map, ZoneVector< CompilationDependency const * > &&unrecorded_dependencies, FieldIndex field_index, Representation field_representation, Type field_type, MapRef field_owner_map, OptionalMapRef field_map, OptionalJSObjectRef holder, OptionalMapRef transition_map)
 
static PropertyAccessInfo FastAccessorConstant (Zone *zone, MapRef receiver_map, OptionalJSObjectRef holder, OptionalObjectRef constant, OptionalJSObjectRef api_holder)
 
static PropertyAccessInfo ModuleExport (Zone *zone, MapRef receiver_map, CellRef cell)
 
static PropertyAccessInfo StringLength (Zone *zone, MapRef receiver_map)
 
static PropertyAccessInfo StringWrapperLength (Zone *zone, MapRef receiver_map)
 
static PropertyAccessInfo TypedArrayLength (Zone *zone, MapRef receiver_map)
 
static PropertyAccessInfo Invalid (Zone *zone)
 
static PropertyAccessInfo DictionaryProtoDataConstant (Zone *zone, MapRef receiver_map, JSObjectRef holder, InternalIndex dict_index, NameRef name)
 
static PropertyAccessInfo DictionaryProtoAccessorConstant (Zone *zone, MapRef receiver_map, OptionalJSObjectRef holder, ObjectRef constant, OptionalJSObjectRef api_holder, NameRef name)
 

Private Member Functions

 PropertyAccessInfo (Zone *zone)
 
 PropertyAccessInfo (Zone *zone, Kind kind, OptionalJSObjectRef holder, ZoneVector< MapRef > &&lookup_start_object_maps)
 
 PropertyAccessInfo (Zone *zone, Kind kind, OptionalJSObjectRef holder, OptionalObjectRef constant, OptionalJSObjectRef api_holder, OptionalNameRef name, ZoneVector< MapRef > &&lookup_start_object_maps)
 
 PropertyAccessInfo (Kind kind, OptionalJSObjectRef holder, OptionalMapRef transition_map, FieldIndex field_index, Representation field_representation, Type field_type, MapRef field_owner_map, OptionalMapRef field_map, ZoneVector< MapRef > &&lookup_start_object_maps, ZoneVector< CompilationDependency const * > &&dependencies)
 
 PropertyAccessInfo (Zone *zone, Kind kind, OptionalJSObjectRef holder, ZoneVector< MapRef > &&lookup_start_object_maps, InternalIndex dictionary_index, NameRef name)
 

Private Attributes

Kind kind_
 
ZoneVector< MapReflookup_start_object_maps_
 
OptionalObjectRef constant_
 
OptionalJSObjectRef holder_
 
OptionalJSObjectRef api_holder_
 
ZoneVector< CompilationDependency const * > unrecorded_dependencies_
 
OptionalMapRef transition_map_
 
FieldIndex field_index_
 
Representation field_representation_
 
Type field_type_
 
OptionalMapRef field_owner_map_
 
OptionalMapRef field_map_
 
InternalIndex dictionary_index_
 
OptionalNameRef name_
 
ElementsKind elements_kind_
 

Detailed Description

Definition at line 59 of file access-info.h.

Member Enumeration Documentation

◆ Kind

Enumerator
kInvalid 
kNotFound 
kDataField 
kFastDataConstant 
kDictionaryProtoDataConstant 
kFastAccessorConstant 
kDictionaryProtoAccessorConstant 
kModuleExport 
kStringLength 
kStringWrapperLength 
kTypedArrayLength 

Definition at line 61 of file access-info.h.

Constructor & Destructor Documentation

◆ PropertyAccessInfo() [1/5]

v8::internal::compiler::PropertyAccessInfo::PropertyAccessInfo ( Zone * zone)
explicitprivate

Definition at line 200 of file access-info.cc.

Here is the caller graph for this function:

◆ PropertyAccessInfo() [2/5]

v8::internal::compiler::PropertyAccessInfo::PropertyAccessInfo ( Zone * zone,
Kind kind,
OptionalJSObjectRef holder,
ZoneVector< MapRef > && lookup_start_object_maps )
private

Definition at line 208 of file access-info.cc.

◆ PropertyAccessInfo() [3/5]

v8::internal::compiler::PropertyAccessInfo::PropertyAccessInfo ( Zone * zone,
Kind kind,
OptionalJSObjectRef holder,
OptionalObjectRef constant,
OptionalJSObjectRef api_holder,
OptionalNameRef name,
ZoneVector< MapRef > && lookup_start_object_maps )
private

Definition at line 219 of file access-info.cc.

Here is the call graph for this function:

◆ PropertyAccessInfo() [4/5]

v8::internal::compiler::PropertyAccessInfo::PropertyAccessInfo ( Kind kind,
OptionalJSObjectRef holder,
OptionalMapRef transition_map,
FieldIndex field_index,
Representation field_representation,
Type field_type,
MapRef field_owner_map,
OptionalMapRef field_map,
ZoneVector< MapRef > && lookup_start_object_maps,
ZoneVector< CompilationDependency const * > && dependencies )
private

Definition at line 236 of file access-info.cc.

Here is the call graph for this function:

◆ PropertyAccessInfo() [5/5]

v8::internal::compiler::PropertyAccessInfo::PropertyAccessInfo ( Zone * zone,
Kind kind,
OptionalJSObjectRef holder,
ZoneVector< MapRef > && lookup_start_object_maps,
InternalIndex dictionary_index,
NameRef name )
private

Definition at line 257 of file access-info.cc.

Member Function Documentation

◆ constant()

OptionalObjectRef v8::internal::compiler::PropertyAccessInfo::constant ( ) const
inline

Definition at line 149 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DataField()

PropertyAccessInfo v8::internal::compiler::PropertyAccessInfo::DataField ( JSHeapBroker * broker,
Zone * zone,
MapRef receiver_map,
ZoneVector< CompilationDependency const * > && unrecorded_dependencies,
FieldIndex field_index,
Representation field_representation,
Type field_type,
MapRef field_owner_map,
OptionalMapRef field_map,
OptionalJSObjectRef holder,
OptionalMapRef transition_map )
static

Definition at line 111 of file access-info.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dictionary_index()

InternalIndex v8::internal::compiler::PropertyAccessInfo::dictionary_index ( ) const
inline

Definition at line 176 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DictionaryProtoAccessorConstant()

PropertyAccessInfo v8::internal::compiler::PropertyAccessInfo::DictionaryProtoAccessorConstant ( Zone * zone,
MapRef receiver_map,
OptionalJSObjectRef holder,
ObjectRef constant,
OptionalJSObjectRef api_holder,
NameRef name )
static

Definition at line 192 of file access-info.cc.

Here is the call graph for this function:

◆ DictionaryProtoDataConstant()

PropertyAccessInfo v8::internal::compiler::PropertyAccessInfo::DictionaryProtoDataConstant ( Zone * zone,
MapRef receiver_map,
JSObjectRef holder,
InternalIndex dict_index,
NameRef name )
static

Definition at line 184 of file access-info.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ elements_kind()

ElementsKind v8::internal::compiler::PropertyAccessInfo::elements_kind ( ) const
inline

Definition at line 189 of file access-info.h.

Here is the caller graph for this function:

◆ FastAccessorConstant()

PropertyAccessInfo v8::internal::compiler::PropertyAccessInfo::FastAccessorConstant ( Zone * zone,
MapRef receiver_map,
OptionalJSObjectRef holder,
OptionalObjectRef constant,
OptionalJSObjectRef api_holder )
static

Definition at line 145 of file access-info.cc.

Here is the call graph for this function:

◆ FastDataConstant()

PropertyAccessInfo v8::internal::compiler::PropertyAccessInfo::FastDataConstant ( Zone * zone,
MapRef receiver_map,
ZoneVector< CompilationDependency const * > && unrecorded_dependencies,
FieldIndex field_index,
Representation field_representation,
Type field_type,
MapRef field_owner_map,
OptionalMapRef field_map,
OptionalJSObjectRef holder,
OptionalMapRef transition_map )
static

Definition at line 131 of file access-info.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ field_index()

FieldIndex v8::internal::compiler::PropertyAccessInfo::field_index ( ) const
inline

Definition at line 155 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ field_map()

OptionalMapRef v8::internal::compiler::PropertyAccessInfo::field_map ( ) const
inline

Definition at line 168 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ field_representation()

Representation v8::internal::compiler::PropertyAccessInfo::field_representation ( ) const
inline

Definition at line 164 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ field_type()

Type v8::internal::compiler::PropertyAccessInfo::field_type ( ) const
inline

Definition at line 160 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetConstFieldInfo()

ConstFieldInfo v8::internal::compiler::PropertyAccessInfo::GetConstFieldInfo ( ) const

Definition at line 379 of file access-info.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HasDictionaryHolder()

bool v8::internal::compiler::PropertyAccessInfo::HasDictionaryHolder ( ) const
inline

Definition at line 130 of file access-info.h.

Here is the caller graph for this function:

◆ HasTransitionMap()

bool v8::internal::compiler::PropertyAccessInfo::HasTransitionMap ( ) const
inline

Definition at line 129 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ holder()

OptionalJSObjectRef v8::internal::compiler::PropertyAccessInfo::holder ( ) const
inline

Definition at line 139 of file access-info.h.

Here is the caller graph for this function:

◆ Invalid()

PropertyAccessInfo v8::internal::compiler::PropertyAccessInfo::Invalid ( Zone * zone)
static

Definition at line 100 of file access-info.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsDataField()

bool v8::internal::compiler::PropertyAccessInfo::IsDataField ( ) const
inline

Definition at line 113 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsDictionaryProtoAccessorConstant()

bool v8::internal::compiler::PropertyAccessInfo::IsDictionaryProtoAccessorConstant ( ) const
inline

Definition at line 125 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsDictionaryProtoDataConstant()

bool v8::internal::compiler::PropertyAccessInfo::IsDictionaryProtoDataConstant ( ) const
inline

Definition at line 122 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsFastAccessorConstant()

bool v8::internal::compiler::PropertyAccessInfo::IsFastAccessorConstant ( ) const
inline

Definition at line 115 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsFastDataConstant()

bool v8::internal::compiler::PropertyAccessInfo::IsFastDataConstant ( ) const
inline

Definition at line 114 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsInvalid()

bool v8::internal::compiler::PropertyAccessInfo::IsInvalid ( ) const
inline

Definition at line 111 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsModuleExport()

bool v8::internal::compiler::PropertyAccessInfo::IsModuleExport ( ) const
inline

Definition at line 118 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsNotFound()

bool v8::internal::compiler::PropertyAccessInfo::IsNotFound ( ) const
inline

Definition at line 112 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsStringLength()

bool v8::internal::compiler::PropertyAccessInfo::IsStringLength ( ) const
inline

Definition at line 119 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsStringWrapperLength()

bool v8::internal::compiler::PropertyAccessInfo::IsStringWrapperLength ( ) const
inline

Definition at line 120 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsTypedArrayLength()

bool v8::internal::compiler::PropertyAccessInfo::IsTypedArrayLength ( ) const
inline

Definition at line 121 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ kind()

Kind v8::internal::compiler::PropertyAccessInfo::kind ( ) const
inline

Definition at line 136 of file access-info.h.

Here is the caller graph for this function:

◆ lookup_start_object_maps()

ZoneVector< MapRef > const & v8::internal::compiler::PropertyAccessInfo::lookup_start_object_maps ( ) const
inline

Definition at line 172 of file access-info.h.

Here is the caller graph for this function:

◆ Merge()

bool v8::internal::compiler::PropertyAccessInfo::Merge ( PropertyAccessInfo const * that,
AccessMode access_mode,
Zone * zone )

Definition at line 286 of file access-info.cc.

Here is the call graph for this function:

◆ ModuleExport()

PropertyAccessInfo v8::internal::compiler::PropertyAccessInfo::ModuleExport ( Zone * zone,
MapRef receiver_map,
CellRef cell )
static

Definition at line 153 of file access-info.cc.

Here is the call graph for this function:

◆ name()

NameRef v8::internal::compiler::PropertyAccessInfo::name ( ) const
inline

Definition at line 181 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NotFound()

PropertyAccessInfo v8::internal::compiler::PropertyAccessInfo::NotFound ( Zone * zone,
MapRef receiver_map,
OptionalJSObjectRef holder )
static

Definition at line 105 of file access-info.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordDependencies()

void v8::internal::compiler::PropertyAccessInfo::RecordDependencies ( CompilationDependencies * dependencies)

Definition at line 987 of file access-info.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_elements_kind()

void v8::internal::compiler::PropertyAccessInfo::set_elements_kind ( ElementsKind elements_kind)
inline

Definition at line 186 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StringLength()

PropertyAccessInfo v8::internal::compiler::PropertyAccessInfo::StringLength ( Zone * zone,
MapRef receiver_map )
static

Definition at line 162 of file access-info.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StringWrapperLength()

PropertyAccessInfo v8::internal::compiler::PropertyAccessInfo::StringWrapperLength ( Zone * zone,
MapRef receiver_map )
static

Definition at line 168 of file access-info.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ transition_map()

OptionalMapRef v8::internal::compiler::PropertyAccessInfo::transition_map ( ) const
inline

Definition at line 145 of file access-info.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TypedArrayLength()

PropertyAccessInfo v8::internal::compiler::PropertyAccessInfo::TypedArrayLength ( Zone * zone,
MapRef receiver_map )
static

Definition at line 175 of file access-info.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ api_holder_

OptionalJSObjectRef v8::internal::compiler::PropertyAccessInfo::api_holder_
private

Definition at line 214 of file access-info.h.

◆ constant_

OptionalObjectRef v8::internal::compiler::PropertyAccessInfo::constant_
private

Definition at line 212 of file access-info.h.

◆ dictionary_index_

InternalIndex v8::internal::compiler::PropertyAccessInfo::dictionary_index_
private

Definition at line 226 of file access-info.h.

◆ elements_kind_

ElementsKind v8::internal::compiler::PropertyAccessInfo::elements_kind_
private

Definition at line 230 of file access-info.h.

◆ field_index_

FieldIndex v8::internal::compiler::PropertyAccessInfo::field_index_
private

Definition at line 219 of file access-info.h.

◆ field_map_

OptionalMapRef v8::internal::compiler::PropertyAccessInfo::field_map_
private

Definition at line 223 of file access-info.h.

◆ field_owner_map_

OptionalMapRef v8::internal::compiler::PropertyAccessInfo::field_owner_map_
private

Definition at line 222 of file access-info.h.

◆ field_representation_

Representation v8::internal::compiler::PropertyAccessInfo::field_representation_
private

Definition at line 220 of file access-info.h.

◆ field_type_

Type v8::internal::compiler::PropertyAccessInfo::field_type_
private

Definition at line 221 of file access-info.h.

◆ holder_

OptionalJSObjectRef v8::internal::compiler::PropertyAccessInfo::holder_
private

Definition at line 213 of file access-info.h.

◆ kind_

Kind v8::internal::compiler::PropertyAccessInfo::kind_
private

Definition at line 210 of file access-info.h.

◆ lookup_start_object_maps_

ZoneVector<MapRef> v8::internal::compiler::PropertyAccessInfo::lookup_start_object_maps_
private

Definition at line 211 of file access-info.h.

◆ name_

OptionalNameRef v8::internal::compiler::PropertyAccessInfo::name_
private

Definition at line 227 of file access-info.h.

◆ transition_map_

OptionalMapRef v8::internal::compiler::PropertyAccessInfo::transition_map_
private

Definition at line 218 of file access-info.h.

◆ unrecorded_dependencies_

ZoneVector<CompilationDependency const*> v8::internal::compiler::PropertyAccessInfo::unrecorded_dependencies_
private

Definition at line 217 of file access-info.h.


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