| Index: src/ic/x64/handler-compiler-x64.cc | 
| diff --git a/src/ic/x64/handler-compiler-x64.cc b/src/ic/x64/handler-compiler-x64.cc | 
| index 485d87dc5790552ccda5161646650c9df29d7beb..4b066f2d4291e2d2f3f48104c55c515add11ff77 100644 | 
| --- a/src/ic/x64/handler-compiler-x64.cc | 
| +++ b/src/ic/x64/handler-compiler-x64.cc | 
| @@ -431,6 +431,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()); | 
| @@ -472,15 +483,7 @@ Register PropertyHandlerCompiler::CheckPrototypes( | 
| __ j(not_equal, 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); | 
| } | 
| @@ -504,13 +507,6 @@ Register PropertyHandlerCompiler::CheckPrototypes( | 
| __ j(not_equal, 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; | 
| } | 
|  |