Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 5b44374591cefb4a10a25e89b7c1e90d365d6817..adbb2e139e83bd89f35406e5ce9e57a14b9153c6 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -1123,11 +1123,13 @@ static MaybeObject* GetOwnProperty(Isolate* isolate, |
elms->set(IS_ACCESSOR_INDEX, heap->true_value()); |
AccessorPair* accessors = AccessorPair::cast(result.GetCallbackObject()); |
- if (CheckAccess(*obj, *name, &result, v8::ACCESS_GET)) { |
- elms->set(GETTER_INDEX, accessors->GetComponent(ACCESSOR_GETTER)); |
+ Object* getter = accessors->GetComponent(ACCESSOR_GETTER); |
+ if (!getter->IsMap() && CheckAccess(*obj, *name, &result, v8::ACCESS_GET)) { |
+ elms->set(GETTER_INDEX, getter); |
} |
- if (CheckAccess(*obj, *name, &result, v8::ACCESS_SET)) { |
- elms->set(SETTER_INDEX, accessors->GetComponent(ACCESSOR_SETTER)); |
+ Object* setter = accessors->GetComponent(ACCESSOR_SETTER); |
+ if (!setter->IsMap() && CheckAccess(*obj, *name, &result, v8::ACCESS_SET)) { |
+ elms->set(SETTER_INDEX, setter); |
} |
} else { |
elms->set(IS_ACCESSOR_INDEX, heap->false_value()); |