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

#include <handler-configuration.h>

Inheritance diagram for v8::internal::StoreHandler:
Collaboration diagram for v8::internal::StoreHandler:

Public Types

enum class  Kind {
  kField , kConstField , kAccessorFromPrototype , kNativeDataProperty ,
  kSharedStructField , kApiSetter , kGlobalProxy , kNormal ,
  kInterceptor , kSlow , kProxy , kKindsNumber
}
 
using KindBits = base::BitField<Kind, 0, 4>
 
using DoAccessCheckOnLookupStartObjectBits = KindBits::Next<bool, 1>
 
using LookupOnLookupStartObjectBits
 
using DescriptorBits
 
using KeyedAccessStoreModeBits
 
using IsInobjectBits = DescriptorBits::Next<bool, 1>
 
using RepresentationBits = IsInobjectBits::Next<Representation::Kind, 3>
 
using FieldIndexBits
 
- Public Types inherited from v8::internal::StructLayout
using BodyDescriptor = StructBodyDescriptor
 

Static Public Member Functions

static Handle< SmiStoreField (Isolate *isolate, int descriptor, FieldIndex field_index, PropertyConstness constness, Representation representation)
 
static Handle< SmiStoreSharedStructField (Isolate *isolate, int descriptor, FieldIndex field_index, Representation representation)
 
static MaybeObjectHandle StoreOwnTransition (Isolate *isolate, Handle< Map > transition_map)
 
static MaybeObjectHandle StoreTransition (Isolate *isolate, Handle< Map > transition_map)
 
static Handle< SmiStoreNativeDataProperty (Isolate *isolate, int descriptor)
 
static DirectHandle< SmiStoreAccessorFromPrototype (Isolate *isolate)
 
static DirectHandle< SmiStoreApiSetter (Isolate *isolate)
 
static Handle< ObjectStoreThroughPrototype (Isolate *isolate, DirectHandle< Map > receiver_map, DirectHandle< JSReceiver > holder, Tagged< Smi > smi_handler, MaybeObjectDirectHandle maybe_data1=MaybeObjectDirectHandle(), MaybeObjectDirectHandle maybe_data2=MaybeObjectDirectHandle())
 
static Handle< ObjectStoreElementTransition (Isolate *isolate, DirectHandle< Map > receiver_map, DirectHandle< Map > transition, KeyedAccessStoreMode store_mode, MaybeDirectHandle< UnionOf< Smi, Cell > > prev_validity_cell=kNullMaybeHandle)
 
static Handle< ObjectStoreProxy (Isolate *isolate, DirectHandle< Map > receiver_map, Handle< JSProxy > proxy, DirectHandle< JSReceiver > receiver)
 
static MaybeObjectHandle StoreGlobal (Handle< PropertyCell > cell)
 
static DirectHandle< SmiStoreGlobalProxy (Isolate *isolate)
 
static Handle< SmiStoreNormal (Isolate *isolate)
 
static Handle< SmiStoreInterceptor (Isolate *isolate)
 
static Handle< CodeStoreSloppyArgumentsBuiltin (Isolate *isolate, KeyedAccessStoreMode mode)
 
static Handle< CodeStoreFastElementBuiltin (Isolate *isolate, KeyedAccessStoreMode mode)
 
static DirectHandle< CodeElementsTransitionAndStoreBuiltin (Isolate *isolate, KeyedAccessStoreMode mode)
 
static Handle< SmiStoreSlow (Isolate *isolate, KeyedAccessStoreMode store_mode=KeyedAccessStoreMode::kInBounds)
 
static Handle< SmiStoreProxy (Isolate *isolate)
 
static Tagged< SmiStoreProxy ()
 
static KeyedAccessStoreMode GetKeyedAccessStoreMode (Tagged< MaybeObject > handler)
 
- Static Public Member Functions inherited from v8::internal::DataHandler
static constexpr int OffsetOf (int index)
 
static constexpr int SizeFor (int count)
 

Static Private Member Functions

static Handle< SmiStoreField (Isolate *isolate, Kind kind, int descriptor, FieldIndex field_index, Representation representation)
 

Additional Inherited Members

- Public Member Functions inherited from v8::internal::DataHandler
Tagged< UnionOf< Smi, Code > > smi_handler () const
 
void set_smi_handler (Tagged< Smi > value)
 
void set_smi_handler (Tagged< Code > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
Tagged< UnionOf< Smi, Cell > > validity_cell () const
 
void set_validity_cell (Tagged< UnionOf< Smi, Cell > > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
int data_field_count () const
 
Tagged< MaybeObjectdata1 () const
 
void set_data1 (Tagged< MaybeObject > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
Tagged< MaybeObjectdata2 () const
 
void set_data2 (Tagged< MaybeObject > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
Tagged< MaybeObjectdata3 () const
 
void set_data3 (Tagged< MaybeObject > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
- Public Member Functions inherited from v8::internal::StructLayout
void BriefPrintDetails (std::ostream &os)
 
- Public Member Functions inherited from v8::internal::HeapObjectLayout
 HeapObjectLayout ()=delete
 
Tagged< Mapmap () const
 
Tagged< Mapmap (AcquireLoadTag) const
 
MapWord map_word (RelaxedLoadTag) const
 
void set_map (Isolate *isolate, Tagged< Map > value)
 
template<typename IsolateT >
void set_map (IsolateT *isolate, Tagged< Map > value, ReleaseStoreTag)
 
template<typename IsolateT >
void set_map_safe_transition (IsolateT *isolate, Tagged< Map > value, ReleaseStoreTag)
 
void set_map_safe_transition_no_write_barrier (Isolate *isolate, Tagged< Map > value, RelaxedStoreTag=kRelaxedStore)
 
template<typename IsolateT >
void set_map_after_allocation (IsolateT *isolate, Tagged< Map > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
void set_map_no_write_barrier (Isolate *isolate, Tagged< Map > value, RelaxedStoreTag=kRelaxedStore)
 
void set_map_word_forwarded (Tagged< HeapObject > target_object, ReleaseStoreTag)
 
void set_map_word_forwarded (Tagged< HeapObject > target_object, RelaxedStoreTag)
 
Address ptr () const
 
Address address () const
 
ReadOnlyRoots EarlyGetReadOnlyRoots () const
 
int Size () const
 
V8_EXPORT_PRIVATE int SizeFromMap (Tagged< Map > map) const
 
WriteBarrierMode GetWriteBarrierMode (const DisallowGarbageCollection &promise)
 

Detailed Description

Definition at line 240 of file handler-configuration.h.

Member Typedef Documentation

◆ DescriptorBits

◆ DoAccessCheckOnLookupStartObjectBits

◆ FieldIndexBits

◆ IsInobjectBits

◆ KeyedAccessStoreModeBits

◆ KindBits

◆ LookupOnLookupStartObjectBits

◆ RepresentationBits

Member Enumeration Documentation

◆ Kind

Enumerator
kField 
kConstField 
kAccessorFromPrototype 
kNativeDataProperty 
kSharedStructField 
kApiSetter 
kGlobalProxy 
kNormal 
kInterceptor 
kSlow 
kProxy 
kKindsNumber 

Definition at line 245 of file handler-configuration.h.

Member Function Documentation

◆ ElementsTransitionAndStoreBuiltin()

DirectHandle< Code > v8::internal::StoreHandler::ElementsTransitionAndStoreBuiltin ( Isolate * isolate,
KeyedAccessStoreMode mode )
inlinestatic

Definition at line 186 of file handler-configuration-inl.h.

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

◆ GetKeyedAccessStoreMode()

KeyedAccessStoreMode v8::internal::StoreHandler::GetKeyedAccessStoreMode ( Tagged< MaybeObject > handler)
static

Definition at line 189 of file handler-configuration.cc.

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

◆ StoreAccessorFromPrototype()

DirectHandle< Smi > v8::internal::StoreHandler::StoreAccessorFromPrototype ( Isolate * isolate)
inlinestatic

Definition at line 260 of file handler-configuration-inl.h.

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

◆ StoreApiSetter()

DirectHandle< Smi > v8::internal::StoreHandler::StoreApiSetter ( Isolate * isolate)
inlinestatic

Definition at line 265 of file handler-configuration-inl.h.

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

◆ StoreElementTransition()

Handle< Object > v8::internal::StoreHandler::StoreElementTransition ( Isolate * isolate,
DirectHandle< Map > receiver_map,
DirectHandle< Map > transition,
KeyedAccessStoreMode store_mode,
MaybeDirectHandle< UnionOf< Smi, Cell > > prev_validity_cell = kNullMaybeHandle )
static

Definition at line 210 of file handler-configuration.cc.

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

◆ StoreFastElementBuiltin()

Handle< Code > v8::internal::StoreHandler::StoreFastElementBuiltin ( Isolate * isolate,
KeyedAccessStoreMode mode )
inlinestatic

Definition at line 168 of file handler-configuration-inl.h.

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

◆ StoreField() [1/2]

Handle< Smi > v8::internal::StoreHandler::StoreField ( Isolate * isolate,
int descriptor,
FieldIndex field_index,
PropertyConstness constness,
Representation representation )
inlinestatic

Definition at line 236 of file handler-configuration-inl.h.

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

◆ StoreField() [2/2]

Handle< Smi > v8::internal::StoreHandler::StoreField ( Isolate * isolate,
Kind kind,
int descriptor,
FieldIndex field_index,
Representation representation )
inlinestaticprivate

Definition at line 221 of file handler-configuration-inl.h.

Here is the call graph for this function:

◆ StoreGlobal()

MaybeObjectHandle v8::internal::StoreHandler::StoreGlobal ( Handle< PropertyCell > cell)
static

Definition at line 340 of file handler-configuration.cc.

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

◆ StoreGlobalProxy()

DirectHandle< Smi > v8::internal::StoreHandler::StoreGlobalProxy ( Isolate * isolate)
inlinestatic

Definition at line 133 of file handler-configuration-inl.h.

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

◆ StoreInterceptor()

Handle< Smi > v8::internal::StoreHandler::StoreInterceptor ( Isolate * isolate)
inlinestatic

Definition at line 143 of file handler-configuration-inl.h.

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

◆ StoreNativeDataProperty()

Handle< Smi > v8::internal::StoreHandler::StoreNativeDataProperty ( Isolate * isolate,
int descriptor )
inlinestatic

Definition at line 253 of file handler-configuration-inl.h.

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

◆ StoreNormal()

Handle< Smi > v8::internal::StoreHandler::StoreNormal ( Isolate * isolate)
inlinestatic

Definition at line 138 of file handler-configuration-inl.h.

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

◆ StoreOwnTransition()

MaybeObjectHandle v8::internal::StoreHandler::StoreOwnTransition ( Isolate * isolate,
Handle< Map > transition_map )
static

Definition at line 229 of file handler-configuration.cc.

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

◆ StoreProxy() [1/3]

Tagged< Smi > v8::internal::StoreHandler::StoreProxy ( )
inlinestatic

Definition at line 216 of file handler-configuration-inl.h.

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

◆ StoreProxy() [2/3]

Handle< Smi > v8::internal::StoreHandler::StoreProxy ( Isolate * isolate)
inlinestatic

Definition at line 212 of file handler-configuration-inl.h.

Here is the call graph for this function:

◆ StoreProxy() [3/3]

Handle< Object > v8::internal::StoreHandler::StoreProxy ( Isolate * isolate,
DirectHandle< Map > receiver_map,
Handle< JSProxy > proxy,
DirectHandle< JSReceiver > receiver )
static

Definition at line 345 of file handler-configuration.cc.

Here is the call graph for this function:

◆ StoreSharedStructField()

Handle< Smi > v8::internal::StoreHandler::StoreSharedStructField ( Isolate * isolate,
int descriptor,
FieldIndex field_index,
Representation representation )
inlinestatic

Definition at line 245 of file handler-configuration-inl.h.

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

◆ StoreSloppyArgumentsBuiltin()

Handle< Code > v8::internal::StoreHandler::StoreSloppyArgumentsBuiltin ( Isolate * isolate,
KeyedAccessStoreMode mode )
inlinestatic

Definition at line 148 of file handler-configuration-inl.h.

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

◆ StoreSlow()

Handle< Smi > v8::internal::StoreHandler::StoreSlow ( Isolate * isolate,
KeyedAccessStoreMode store_mode = KeyedAccessStoreMode::kInBounds )
inlinestatic

Definition at line 205 of file handler-configuration-inl.h.

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

◆ StoreThroughPrototype()

Handle< Object > v8::internal::StoreHandler::StoreThroughPrototype ( Isolate * isolate,
DirectHandle< Map > receiver_map,
DirectHandle< JSReceiver > holder,
Tagged< Smi > smi_handler,
MaybeObjectDirectHandle maybe_data1 = MaybeObjectDirectHandle(),
MaybeObjectDirectHandle maybe_data2 = MaybeObjectDirectHandle() )
static

Definition at line 313 of file handler-configuration.cc.

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

◆ StoreTransition()

MaybeObjectHandle v8::internal::StoreHandler::StoreTransition ( Isolate * isolate,
Handle< Map > transition_map )
static

Definition at line 262 of file handler-configuration.cc.

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

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