Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index d565cbb8ea1a01b8aa7d6d5199394c7609342848..19dc7d6c4cec6e092586cd582aaa4fa6fd481655 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -4283,8 +4283,16 @@ Maybe<bool> Object::SetSuperProperty(LookupIterator* it, Handle<Object> value, |
} |
break; |
- case LookupIterator::INTEGER_INDEXED_EXOTIC: |
case LookupIterator::ACCESSOR: |
+ if (own_lookup.GetAccessors()->IsAccessorInfo()) { |
+ if (own_lookup.IsReadOnly()) { |
+ return WriteToReadOnlyProperty(&own_lookup, value, should_throw); |
+ } |
+ return JSObject::SetPropertyWithAccessor(&own_lookup, value, |
+ should_throw); |
+ } |
+ // Fall through. |
+ case LookupIterator::INTEGER_INDEXED_EXOTIC: |
return RedefineIncompatibleProperty(isolate, it->GetName(), value, |
should_throw); |