5#ifndef V8_OBJECTS_KEYS_H_
6#define V8_OBJECTS_KEYS_H_
17class FastKeyAccumulator;
63 bool is_for_in =
false,
bool skip_indices =
false);
185 bool is_for_in =
false,
bool skip_indices =
false)
bool try_prototype_info_cache_
FastKeyAccumulator & operator=(const FastKeyAccumulator &)=delete
static Handle< FixedArray > InitializeFastPropertyEnumCache(Isolate *isolate, DirectHandle< Map > map, int enum_length, AllocationType allocation=AllocationType::kOld)
MaybeHandle< FixedArray > GetKeys(GetKeysConversion convert=GetKeysConversion::kKeepNumbers)
bool has_empty_prototype()
bool only_own_has_simple_elements_
MaybeHandle< FixedArray > GetKeysFast(GetKeysConversion convert)
MaybeHandle< FixedArray > GetOwnKeysWithUninitializedEnumLength()
FastKeyAccumulator(const FastKeyAccumulator &)=delete
MaybeHandle< FixedArray > GetKeysSlow(GetKeysConversion convert)
bool TryPrototypeInfoCache(DirectHandle< JSReceiver > receiver)
DirectHandle< Map > first_prototype_map_
DirectHandle< JSReceiver > receiver_
DirectHandle< JSReceiver > last_non_empty_prototype_
DirectHandle< JSReceiver > first_prototype_
bool has_empty_prototype_
bool MayHaveElements(Tagged< JSReceiver > receiver)
MaybeHandle< FixedArray > GetKeysWithPrototypeInfoCache(GetKeysConversion convert)
bool is_receiver_simple_enum_
bool is_receiver_simple_enum()
FastKeyAccumulator(Isolate *isolate, DirectHandle< JSReceiver > receiver, KeyCollectionMode mode, PropertyFilter filter, bool is_for_in=false, bool skip_indices=false)
bool has_prototype_info_cache_
Maybe< bool > CollectOwnPropertyNames(DirectHandle< JSReceiver > receiver, DirectHandle< JSObject > object)
V8_WARN_UNUSED_RESULT ExceptionStatus CollectPrivateNames(DirectHandle< JSReceiver > receiver, DirectHandle< JSObject > object)
V8_WARN_UNUSED_RESULT ExceptionStatus FilterForEnumerableProperties(DirectHandle< JSReceiver > receiver, DirectHandle< JSObject > object, DirectHandle< InterceptorInfo > interceptor, DirectHandle< JSObject > result, IndexedOrNamed type)
Maybe< bool > CollectKeys(DirectHandle< JSReceiver > receiver, DirectHandle< JSReceiver > object)
KeyAccumulator(const KeyAccumulator &)=delete
Maybe< bool > CollectOwnJSProxyTargetKeys(DirectHandle< JSProxy > proxy, DirectHandle< JSReceiver > target)
void AddShadowingKey(Tagged< Object > key, AllowGarbageCollection *allow_gc)
friend FastKeyAccumulator
void set_may_have_elements(bool value)
Handle< OrderedHashSet > keys()
V8_WARN_UNUSED_RESULT ExceptionStatus AddKey(Tagged< Object > key, AddKeyConversion convert=DO_NOT_CONVERT)
DirectHandle< JSReceiver > receiver_
void set_try_prototype_info_cache(bool value)
Maybe< bool > CollectInterceptorKeys(DirectHandle< JSReceiver > receiver, DirectHandle< JSObject > object, IndexedOrNamed type)
Handle< ObjectHashSet > shadowing_keys_
void set_receiver(DirectHandle< JSReceiver > object)
KeyAccumulator & operator=(const KeyAccumulator &)=delete
void set_last_non_empty_prototype(DirectHandle< JSReceiver > object)
Maybe< bool > CollectOwnJSProxyKeys(DirectHandle< JSReceiver > receiver, DirectHandle< JSProxy > proxy)
~KeyAccumulator()=default
void set_is_for_in(bool value)
static MaybeHandle< FixedArray > GetKeys(Isolate *isolate, DirectHandle< JSReceiver > object, KeyCollectionMode mode, PropertyFilter filter, GetKeysConversion keys_conversion=GetKeysConversion::kKeepNumbers, bool is_for_in=false, bool skip_indices=false)
Maybe< bool > CollectOwnKeys(DirectHandle< JSReceiver > receiver, DirectHandle< JSObject > object)
Maybe< bool > CollectAccessCheckInterceptorKeys(DirectHandle< AccessCheckInfo > access_check_info, DirectHandle< JSReceiver > receiver, DirectHandle< JSObject > object)
void set_first_prototype_map(DirectHandle< Map > value)
void set_skip_indices(bool value)
Maybe< bool > AddKeysFromJSProxy(DirectHandle< JSProxy > proxy, DirectHandle< FixedArray > keys)
bool IsShadowed(DirectHandle< Object > key)
Maybe< bool > CollectOwnElementIndices(DirectHandle< JSReceiver > receiver, DirectHandle< JSObject > object)
static Handle< FixedArray > GetOwnEnumPropertyKeys(Isolate *isolate, DirectHandle< JSObject > object)
KeyAccumulator(Isolate *isolate, KeyCollectionMode mode, PropertyFilter filter)
DirectHandle< JSReceiver > last_non_empty_prototype_
bool try_prototype_info_cache_
V8_WARN_UNUSED_RESULT ExceptionStatus AddKeys(DirectHandle< FixedArray > array, AddKeyConversion convert)
Handle< OrderedHashSet > keys_
DirectHandle< Map > first_prototype_map_
Maybe< bool > CollectInterceptorKeysInternal(DirectHandle< JSReceiver > receiver, DirectHandle< JSObject > object, DirectHandle< InterceptorInfo > interceptor, IndexedOrNamed type)
ZoneVector< RpoNumber > & result
UnionOf< Undefined, FunctionTemplateInfo > UnionOf< Undefined, InterceptorInfo > UnionOf< Undefined, ObjectTemplateInfo > AccessCheckInfo
#define V8_WARN_UNUSED_RESULT