Index: src/objects.cc |
=================================================================== |
--- src/objects.cc (revision 665) |
+++ src/objects.cc (working copy) |
@@ -288,10 +288,11 @@ |
case NORMAL: |
case FIELD: |
case CONSTANT_FUNCTION: { |
+ if (!continue_search) break; |
// Search ALL_CAN_READ accessors in prototype chain. |
LookupResult r; |
result->holder()->LookupRealNamedPropertyInPrototypes(name, &r); |
- if (r.IsValid() && continue_search) { |
+ if (r.IsValid()) { |
return GetPropertyAttributeWithFailedAccessCheck(receiver, |
&r, |
name, |
@@ -304,8 +305,12 @@ |
// If the object has an interceptor, try real named properties. |
// No access check in GetPropertyAttributeWithInterceptor. |
LookupResult r; |
- result->holder()->LookupRealNamedProperty(name, &r); |
- if (r.IsValid() && continue_search) { |
+ if (continue_search) { |
+ result->holder()->LookupRealNamedProperty(name, &r); |
+ } else { |
+ result->holder()->LocalLookupRealNamedProperty(name, &r); |
+ } |
+ if (r.IsValid()) { |
return GetPropertyAttributeWithFailedAccessCheck(receiver, |
&r, |
name, |