21MaybeDirectHandle<HeapObject> Enumerate(Isolate* isolate,
24 FastKeyAccumulator accumulator(isolate,
receiver,
28 if (!accumulator.is_receiver_simple_enum()) {
29 DirectHandle<FixedArray> keys;
32 accumulator.GetKeys(accumulator.may_have_elements()
36 if (!accumulator.is_receiver_simple_enum())
return keys;
44MaybeDirectHandle<Object> HasEnumerableProperty(
45 Isolate* isolate, DirectHandle<JSReceiver>
receiver,
46 DirectHandle<Object>
key) {
49 PropertyKey lookup_key(isolate,
key, &success);
50 if (!success)
return isolate->factory()->undefined_value();
51 LookupIterator it(isolate,
receiver, lookup_key);
59 if (
result.IsNothing())
return MaybeDirectHandle<Object>();
62 DirectHandle<JSProxy> proxy = it.GetHolder<JSProxy>();
66 if (
IsNull(*prototype, isolate)) {
67 return isolate->factory()->undefined_value();
73 return isolate->factory()->undefined_value();
82 if (
result.IsNothing())
return MaybeDirectHandle<Object>();
87 if (it.HasAccess())
continue;
89 if (
result.IsNothing())
return MaybeDirectHandle<Object>();
91 return isolate->factory()->undefined_value();
95 return isolate->factory()->undefined_value();
97 if (IsJSModuleNamespace(*it.GetHolder<Object>())) {
99 if (
result.IsNothing())
return MaybeDirectHandle<Object>();
107 return isolate->factory()->undefined_value();
132 return isolate->heap()->ToBoolean(!IsUndefined(*
result, isolate));
static V8_WARN_UNUSED_RESULT Maybe< PropertyAttributes > GetPropertyAttributes(LookupIterator *it)
static V8_WARN_UNUSED_RESULT Maybe< PropertyAttributes > GetPropertyAttributesWithInterceptor(LookupIterator *it)
static void MakePrototypesFast(DirectHandle< Object > receiver, WhereToStart where_to_start, Isolate *isolate)
static V8_WARN_UNUSED_RESULT Maybe< PropertyAttributes > GetPropertyAttributesWithFailedAccessCheck(LookupIterator *it)
static V8_WARN_UNUSED_RESULT Maybe< PropertyAttributes > GetPropertyAttributes(LookupIterator *it)
static MaybeDirectHandle< JSPrototype > GetPrototype(DirectHandle< JSProxy > receiver)
@ TYPED_ARRAY_INDEX_NOT_FOUND
#define RUNTIME_FUNCTION(Name)
#define ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, dst, call)
#define ASSIGN_RETURN_ON_EXCEPTION(isolate, dst, call)
#define RETURN_RESULT_OR_FAILURE(isolate, call)
base::Vector< const DirectHandle< Object > > args
ZoneVector< RpoNumber > & result
V8_INLINE DirectHandle< T > direct_handle(Tagged< T > object, Isolate *isolate)
kInstanceDescriptorsOffset kTransitionsOrPrototypeInfoOffset IsNull(value)||IsJSProxy(value)||IsWasmObject(value)||(IsJSObject(value) &&(HeapLayout
kInstanceDescriptorsOffset kTransitionsOrPrototypeInfoOffset prototype
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
Maybe< T > Just(const T &t)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)