Index: src/ic/arm/handler-compiler-arm.cc |
diff --git a/src/ic/arm/handler-compiler-arm.cc b/src/ic/arm/handler-compiler-arm.cc |
index bacf44dbe47e00d5c831a7da167ca63baebe8160..a4c06079051c48cf63f453657d5f34e7f6131a45 100644 |
--- a/src/ic/arm/handler-compiler-arm.cc |
+++ b/src/ic/arm/handler-compiler-arm.cc |
@@ -428,6 +428,17 @@ Register PropertyHandlerCompiler::CheckPrototypes( |
if (receiver_map->IsJSGlobalObjectMap()) { |
current = isolate()->global_object(); |
} |
+ |
+ // Check access rights to the global object. This has to happen after |
+ // the map check so that we know that the object is actually a global |
+ // object. |
+ // This allows us to install generated handlers for accesses to the |
+ // global proxy (as opposed to using slow ICs). See corresponding code |
+ // in LookupForRead(). |
+ if (receiver_map->IsJSGlobalProxyMap()) { |
+ __ CheckAccessGlobalProxy(reg, scratch2, miss); |
+ } |
+ |
Handle<JSObject> prototype = Handle<JSObject>::null(); |
Handle<Map> current_map = receiver_map; |
Handle<Map> holder_map(holder()->map()); |
@@ -468,15 +479,7 @@ Register PropertyHandlerCompiler::CheckPrototypes( |
__ b(ne, miss); |
} |
- // Check access rights to the global object. This has to happen after |
- // the map check so that we know that the object is actually a global |
- // object. |
- // This allows us to install generated handlers for accesses to the |
- // global proxy (as opposed to using slow ICs). See corresponding code |
- // in LookupForRead(). |
- if (current_map->IsJSGlobalProxyMap()) { |
- __ CheckAccessGlobalProxy(reg, scratch2, miss); |
- } else if (current_map->IsJSGlobalObjectMap()) { |
+ if (current_map->IsJSGlobalObjectMap()) { |
GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current), |
name, scratch2, miss); |
} |
@@ -502,13 +505,6 @@ Register PropertyHandlerCompiler::CheckPrototypes( |
__ b(ne, miss); |
} |
- // Perform security check for access to the global object. |
- DCHECK(current_map->IsJSGlobalProxyMap() || |
- !current_map->is_access_check_needed()); |
- if (current_map->IsJSGlobalProxyMap()) { |
- __ CheckAccessGlobalProxy(reg, scratch1, miss); |
- } |
- |
// Return the register containing the holder. |
return reg; |
} |