| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index bdaffa42bb68d017477d78fb1f2ae6a843b68b23..d958f03a58949b0bd8e57be78b709d5adc5b7dfa 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -6893,7 +6893,13 @@ namespace {
|
|
|
| Maybe<bool> GetPropertyDescriptorWithInterceptor(LookupIterator* it,
|
| PropertyDescriptor* desc) {
|
| - if (it->state() == LookupIterator::INTERCEPTOR) {
|
| + bool has_access = true;
|
| + if (it->state() == LookupIterator::ACCESS_CHECK) {
|
| + has_access = it->HasAccess() || JSObject::AllCanRead(it);
|
| + it->Next();
|
| + }
|
| +
|
| + if (has_access && it->state() == LookupIterator::INTERCEPTOR) {
|
| Isolate* isolate = it->isolate();
|
| Handle<InterceptorInfo> interceptor = it->GetInterceptor();
|
| if (!interceptor->descriptor()->IsUndefined(isolate)) {
|
| @@ -6937,6 +6943,7 @@ Maybe<bool> GetPropertyDescriptorWithInterceptor(LookupIterator* it,
|
| }
|
| }
|
| }
|
| + it->Restart();
|
| return Just(false);
|
| }
|
| } // namespace
|
|
|