diff --git a/src/runtime.cc b/src/runtime.cc index 6a460e2412..dbd777e22b 100644 --- a/src/runtime.cc +++ b/src/runtime.cc @@ -1098,14 +1098,15 @@ static MaybeObject* GetOwnProperty(Isolate* isolate, PropertyAttributes attrs = obj->GetLocalPropertyAttribute(*name); if (attrs == ABSENT) return heap->undefined_value(); - Handle accessors(obj->GetLocalPropertyAccessorPair(*name)); + AccessorPair* raw_accessors = obj->GetLocalPropertyAccessorPair(*name); + Handle accessors(raw_accessors, isolate); Handle elms = isolate->factory()->NewFixedArray(DESCRIPTOR_SIZE); elms->set(ENUMERABLE_INDEX, heap->ToBoolean((attrs & DONT_ENUM) == 0)); elms->set(CONFIGURABLE_INDEX, heap->ToBoolean((attrs & DONT_DELETE) == 0)); - elms->set(IS_ACCESSOR_INDEX, heap->ToBoolean(!accessors.is_null())); + elms->set(IS_ACCESSOR_INDEX, heap->ToBoolean(raw_accessors != NULL)); - if (accessors.is_null()) { + if (raw_accessors == NULL) { elms->set(WRITABLE_INDEX, heap->ToBoolean((attrs & READ_ONLY) == 0)); // GetProperty does access check. Handle value = GetProperty(obj, name);