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

#include <keys.h>

Collaboration diagram for v8::internal::FastKeyAccumulator:

Public Member Functions

 FastKeyAccumulator (Isolate *isolate, DirectHandle< JSReceiver > receiver, KeyCollectionMode mode, PropertyFilter filter, bool is_for_in=false, bool skip_indices=false)
 
 FastKeyAccumulator (const FastKeyAccumulator &)=delete
 
FastKeyAccumulatoroperator= (const FastKeyAccumulator &)=delete
 
bool is_receiver_simple_enum ()
 
bool has_empty_prototype ()
 
bool may_have_elements ()
 
MaybeHandle< FixedArrayGetKeys (GetKeysConversion convert=GetKeysConversion::kKeepNumbers)
 

Static Public Member Functions

static Handle< FixedArrayInitializeFastPropertyEnumCache (Isolate *isolate, DirectHandle< Map > map, int enum_length, AllocationType allocation=AllocationType::kOld)
 

Private Member Functions

void Prepare ()
 
MaybeHandle< FixedArrayGetKeysFast (GetKeysConversion convert)
 
MaybeHandle< FixedArrayGetKeysSlow (GetKeysConversion convert)
 
MaybeHandle< FixedArrayGetKeysWithPrototypeInfoCache (GetKeysConversion convert)
 
MaybeHandle< FixedArrayGetOwnKeysWithUninitializedEnumLength ()
 
bool MayHaveElements (Tagged< JSReceiver > receiver)
 
bool TryPrototypeInfoCache (DirectHandle< JSReceiver > receiver)
 

Private Attributes

Isolateisolate_
 
DirectHandle< JSReceiverreceiver_
 
DirectHandle< Mapfirst_prototype_map_
 
DirectHandle< JSReceiverfirst_prototype_
 
DirectHandle< JSReceiverlast_non_empty_prototype_
 
KeyCollectionMode mode_
 
PropertyFilter filter_
 
bool is_for_in_ = false
 
bool skip_indices_ = false
 
bool is_receiver_simple_enum_ = false
 
bool has_empty_prototype_ = false
 
bool may_have_elements_ = true
 
bool has_prototype_info_cache_ = false
 
bool try_prototype_info_cache_ = false
 
bool only_own_has_simple_elements_ = false
 

Detailed Description

Definition at line 181 of file keys.h.

Constructor & Destructor Documentation

◆ FastKeyAccumulator() [1/2]

v8::internal::FastKeyAccumulator::FastKeyAccumulator ( Isolate * isolate,
DirectHandle< JSReceiver > receiver,
KeyCollectionMode mode,
PropertyFilter filter,
bool is_for_in = false,
bool skip_indices = false )
inline

Definition at line 183 of file keys.h.

Here is the call graph for this function:

◆ FastKeyAccumulator() [2/2]

v8::internal::FastKeyAccumulator::FastKeyAccumulator ( const FastKeyAccumulator & )
delete

Member Function Documentation

◆ GetKeys()

MaybeHandle< FixedArray > v8::internal::FastKeyAccumulator::GetKeys ( GetKeysConversion convert = GetKeysConversion::kKeepNumbers)

Definition at line 454 of file keys.cc.

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

◆ GetKeysFast()

MaybeHandle< FixedArray > v8::internal::FastKeyAccumulator::GetKeysFast ( GetKeysConversion convert)
private

Definition at line 475 of file keys.cc.

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

◆ GetKeysSlow()

MaybeHandle< FixedArray > v8::internal::FastKeyAccumulator::GetKeysSlow ( GetKeysConversion convert)
private

Definition at line 599 of file keys.cc.

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

◆ GetKeysWithPrototypeInfoCache()

MaybeHandle< FixedArray > v8::internal::FastKeyAccumulator::GetKeysWithPrototypeInfoCache ( GetKeysConversion convert)
private

Definition at line 614 of file keys.cc.

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

◆ GetOwnKeysWithUninitializedEnumLength()

MaybeHandle< FixedArray > v8::internal::FastKeyAccumulator::GetOwnKeysWithUninitializedEnumLength ( )
private

Definition at line 576 of file keys.cc.

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

◆ has_empty_prototype()

bool v8::internal::FastKeyAccumulator::has_empty_prototype ( )
inline

Definition at line 198 of file keys.h.

◆ InitializeFastPropertyEnumCache()

Handle< FixedArray > v8::internal::FastKeyAccumulator::InitializeFastPropertyEnumCache ( Isolate * isolate,
DirectHandle< Map > map,
int enum_length,
AllocationType allocation = AllocationType::kOld )
static

Definition at line 513 of file keys.cc.

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

◆ is_receiver_simple_enum()

bool v8::internal::FastKeyAccumulator::is_receiver_simple_enum ( )
inline

Definition at line 197 of file keys.h.

◆ may_have_elements()

bool v8::internal::FastKeyAccumulator::may_have_elements ( )
inline

Definition at line 199 of file keys.h.

◆ MayHaveElements()

bool v8::internal::FastKeyAccumulator::MayHaveElements ( Tagged< JSReceiver > receiver)
private

Definition at line 661 of file keys.cc.

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

◆ operator=()

FastKeyAccumulator & v8::internal::FastKeyAccumulator::operator= ( const FastKeyAccumulator & )
delete

◆ Prepare()

void v8::internal::FastKeyAccumulator::Prepare ( )
private

Definition at line 343 of file keys.cc.

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

◆ TryPrototypeInfoCache()

bool v8::internal::FastKeyAccumulator::TryPrototypeInfoCache ( DirectHandle< JSReceiver > receiver)
private

Definition at line 669 of file keys.cc.

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

Member Data Documentation

◆ filter_

PropertyFilter v8::internal::FastKeyAccumulator::filter_
private

Definition at line 235 of file keys.h.

◆ first_prototype_

DirectHandle<JSReceiver> v8::internal::FastKeyAccumulator::first_prototype_
private

Definition at line 232 of file keys.h.

◆ first_prototype_map_

DirectHandle<Map> v8::internal::FastKeyAccumulator::first_prototype_map_
private

Definition at line 231 of file keys.h.

◆ has_empty_prototype_

bool v8::internal::FastKeyAccumulator::has_empty_prototype_ = false
private

Definition at line 239 of file keys.h.

◆ has_prototype_info_cache_

bool v8::internal::FastKeyAccumulator::has_prototype_info_cache_ = false
private

Definition at line 241 of file keys.h.

◆ is_for_in_

bool v8::internal::FastKeyAccumulator::is_for_in_ = false
private

Definition at line 236 of file keys.h.

◆ is_receiver_simple_enum_

bool v8::internal::FastKeyAccumulator::is_receiver_simple_enum_ = false
private

Definition at line 238 of file keys.h.

◆ isolate_

Isolate* v8::internal::FastKeyAccumulator::isolate_
private

Definition at line 229 of file keys.h.

◆ last_non_empty_prototype_

DirectHandle<JSReceiver> v8::internal::FastKeyAccumulator::last_non_empty_prototype_
private

Definition at line 233 of file keys.h.

◆ may_have_elements_

bool v8::internal::FastKeyAccumulator::may_have_elements_ = true
private

Definition at line 240 of file keys.h.

◆ mode_

KeyCollectionMode v8::internal::FastKeyAccumulator::mode_
private

Definition at line 234 of file keys.h.

◆ only_own_has_simple_elements_

bool v8::internal::FastKeyAccumulator::only_own_has_simple_elements_ = false
private

Definition at line 243 of file keys.h.

◆ receiver_

DirectHandle<JSReceiver> v8::internal::FastKeyAccumulator::receiver_
private

Definition at line 230 of file keys.h.

◆ skip_indices_

bool v8::internal::FastKeyAccumulator::skip_indices_ = false
private

Definition at line 237 of file keys.h.

◆ try_prototype_info_cache_

bool v8::internal::FastKeyAccumulator::try_prototype_info_cache_ = false
private

Definition at line 242 of file keys.h.


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