| Index: src/ia32/stub-cache-ia32.cc
|
| diff --git a/src/ia32/stub-cache-ia32.cc b/src/ia32/stub-cache-ia32.cc
|
| index 051a8177eac0f10bf168ed6324f50c5947766df4..c27a60fd06573ae7fc91c30fd343886f3772d453 100644
|
| --- a/src/ia32/stub-cache-ia32.cc
|
| +++ b/src/ia32/stub-cache-ia32.cc
|
| @@ -878,10 +878,13 @@ Register StubCompiler::CheckPrototypes(Handle<JSObject> object,
|
| if (in_new_space) {
|
| // Save the map in scratch1 for later.
|
| __ mov(scratch1, FieldOperand(reg, HeapObject::kMapOffset));
|
| + __ cmp(scratch1, Immediate(current_map));
|
| + } else {
|
| + __ cmp(FieldOperand(reg, HeapObject::kMapOffset),
|
| + Immediate(current_map));
|
| }
|
| - __ CheckMap(reg, current_map, miss, DONT_DO_SMI_CHECK,
|
| - ALLOW_ELEMENT_TRANSITION_MAPS);
|
| -
|
| + // Branch on the result of the map check.
|
| + __ 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.
|
| @@ -913,8 +916,9 @@ Register StubCompiler::CheckPrototypes(Handle<JSObject> object,
|
| LOG(isolate(), IntEvent("check-maps-depth", depth + 1));
|
|
|
| // Check the holder map.
|
| - __ CheckMap(reg, Handle<Map>(holder->map()),
|
| - miss, DONT_DO_SMI_CHECK, ALLOW_ELEMENT_TRANSITION_MAPS);
|
| + __ cmp(FieldOperand(reg, HeapObject::kMapOffset),
|
| + Immediate(Handle<Map>(holder->map())));
|
| + __ j(not_equal, miss);
|
|
|
| // Perform security check for access to the global object.
|
| ASSERT(holder->IsJSGlobalProxy() || !holder->IsAccessCheckNeeded());
|
|
|