| Index: src/ic/arm64/handler-compiler-arm64.cc
|
| diff --git a/src/ic/arm64/handler-compiler-arm64.cc b/src/ic/arm64/handler-compiler-arm64.cc
|
| index 9e1b55b82c1d137e8516f65fada5678a78533702..8571faec714fa05b8a250b4d88310d21aa15cb6b 100644
|
| --- a/src/ic/arm64/handler-compiler-arm64.cc
|
| +++ b/src/ic/arm64/handler-compiler-arm64.cc
|
| @@ -461,7 +461,9 @@ Register PropertyHandlerCompiler::CheckPrototypes(
|
| __ Ldr(map_reg, FieldMemOperand(reg, HeapObject::kMapOffset));
|
|
|
| if (depth != 1 || check == CHECK_ALL_MAPS) {
|
| - __ CheckMap(map_reg, current_map, miss, DONT_DO_SMI_CHECK);
|
| + Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
|
| + __ CmpWeakValue(map_reg, cell, scratch2);
|
| + __ B(ne, miss);
|
| }
|
|
|
| // Check access rights to the global object. This has to happen after
|
| @@ -494,7 +496,10 @@ Register PropertyHandlerCompiler::CheckPrototypes(
|
| // Check the holder map.
|
| if (depth != 0 || check == CHECK_ALL_MAPS) {
|
| // Check the holder map.
|
| - __ CheckMap(reg, scratch1, current_map, miss, DONT_DO_SMI_CHECK);
|
| + __ Ldr(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
|
| + Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
|
| + __ CmpWeakValue(scratch1, cell, scratch2);
|
| + __ B(ne, miss);
|
| }
|
|
|
| // Perform security check for access to the global object.
|
|
|