| 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;
|
| }
|
|
|