| Index: src/arm/stub-cache-arm.cc
|
| diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc
|
| index 1ccc10680a21f7944797a98452fd97923ee276ed..07bf4bb140a68be486c34926162f5639ea50765b 100644
|
| --- a/src/arm/stub-cache-arm.cc
|
| +++ b/src/arm/stub-cache-arm.cc
|
| @@ -512,7 +512,13 @@ void StubCompiler::GenerateStoreTransition(MacroAssembler* masm,
|
|
|
| Register storage_reg = name_reg;
|
|
|
| - if (FLAG_track_fields && representation.IsSmi()) {
|
| + if (details.type() == CONSTANT_FUNCTION) {
|
| + Handle<HeapObject> constant(
|
| + HeapObject::cast(descriptors->GetValue(descriptor)));
|
| + __ LoadHeapObject(scratch1, constant);
|
| + __ cmp(value_reg, scratch1);
|
| + __ b(ne, miss_restore_name);
|
| + } else if (FLAG_track_fields && representation.IsSmi()) {
|
| __ JumpIfNotSmi(value_reg, miss_restore_name);
|
| } else if (FLAG_track_heap_object_fields && representation.IsHeapObject()) {
|
| __ JumpIfSmi(value_reg, miss_restore_name);
|
| @@ -570,6 +576,8 @@ void StubCompiler::GenerateStoreTransition(MacroAssembler* masm,
|
| OMIT_REMEMBERED_SET,
|
| OMIT_SMI_CHECK);
|
|
|
| + if (details.type() == CONSTANT_FUNCTION) return;
|
| +
|
| int index = transition->instance_descriptors()->GetFieldIndex(
|
| transition->LastAdded());
|
|
|
|
|