Index: src/runtime/runtime-object.cc |
diff --git a/src/runtime/runtime-object.cc b/src/runtime/runtime-object.cc |
index 617644c49efbf5199a24ad66ca7fc2ed1ce34b77..d8d7a05fcf07ddd011b119e6657f982220b6170f 100644 |
--- a/src/runtime/runtime-object.cc |
+++ b/src/runtime/runtime-object.cc |
@@ -815,7 +815,12 @@ RUNTIME_FUNCTION(Runtime_HasOwnProperty) { |
// Fast case: either the key is a real named property or it is not |
// an array index and there are no interceptors or hidden |
// prototypes. |
- Maybe<bool> maybe = JSObject::HasRealNamedProperty(js_obj, key); |
+ Maybe<bool> maybe; |
+ if (key_is_array_index) { |
+ maybe = JSObject::HasOwnElement(js_obj, index); |
+ } else { |
+ maybe = JSObject::HasRealNamedProperty(js_obj, key); |
+ } |
if (!maybe.has_value) return isolate->heap()->exception(); |
DCHECK(!isolate->has_pending_exception()); |
if (maybe.value) { |