| 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);
|
|
|
|
|