Index: src/ic/mips/handler-compiler-mips.cc |
diff --git a/src/ic/mips/handler-compiler-mips.cc b/src/ic/mips/handler-compiler-mips.cc |
index 93106ea0e15c8f0d6ac3f069c89938bed190d752..4f22c19581f7f7f32b35831849525e16703d8219 100644 |
--- a/src/ic/mips/handler-compiler-mips.cc |
+++ b/src/ic/mips/handler-compiler-mips.cc |
@@ -418,6 +418,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()); |
@@ -458,15 +469,7 @@ Register PropertyHandlerCompiler::CheckPrototypes( |
__ Branch(miss, ne, scratch2, Operand(map_reg)); |
} |
- // 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); |
} |
@@ -492,13 +495,6 @@ Register PropertyHandlerCompiler::CheckPrototypes( |
__ Branch(miss, ne, scratch2, Operand(scratch1)); |
} |
- // 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; |
} |