| Index: src/ic/mips64/handler-compiler-mips64.cc
|
| diff --git a/src/ic/mips64/handler-compiler-mips64.cc b/src/ic/mips64/handler-compiler-mips64.cc
|
| index a68a418fa2795ddee817c301d1c15e3bcfbd7c88..1fa6e5bc4e7b9fea1276787e27f9d4f27a5cb3d7 100644
|
| --- a/src/ic/mips64/handler-compiler-mips64.cc
|
| +++ b/src/ic/mips64/handler-compiler-mips64.cc
|
| @@ -453,11 +453,6 @@ Register PropertyHandlerCompiler::CheckPrototypes(
|
| } else {
|
| Register map_reg = scratch1;
|
| __ ld(map_reg, FieldMemOperand(reg, HeapObject::kMapOffset));
|
| - if (depth != 1 || check == CHECK_ALL_MAPS) {
|
| - Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
|
| - __ GetWeakValue(scratch2, cell);
|
| - __ 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
|
| @@ -470,6 +465,10 @@ Register PropertyHandlerCompiler::CheckPrototypes(
|
| } else if (current_map->IsJSGlobalObjectMap()) {
|
| GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
|
| name, scratch2, miss);
|
| + } else if (depth != 1 || check == CHECK_ALL_MAPS) {
|
| + Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
|
| + __ GetWeakValue(scratch2, cell);
|
| + __ Branch(miss, ne, scratch2, Operand(map_reg));
|
| }
|
|
|
| reg = holder_reg; // From now on the object will be in holder_reg.
|
| @@ -482,6 +481,8 @@ Register PropertyHandlerCompiler::CheckPrototypes(
|
| current_map = handle(current->map());
|
| }
|
|
|
| + DCHECK(!current_map->IsJSGlobalProxyMap());
|
| +
|
| // Log the check depth.
|
| LOG(isolate(), IntEvent("check-maps-depth", depth + 1));
|
|
|
|
|