| Index: src/hydrogen.cc
 | 
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
 | 
| index 8e0858dca7ea91be64f320d0f83392c592cbf8d9..41e241050a3e05d551604816fe5c9f0cbb963a45 100644
 | 
| --- a/src/hydrogen.cc
 | 
| +++ b/src/hydrogen.cc
 | 
| @@ -5446,7 +5446,6 @@ HInstruction* HOptimizedGraphBuilder::BuildLoadNamedField(
 | 
|      checked_object = Add<HLoadNamedField>(
 | 
|          checked_object, static_cast<HValue*>(NULL),
 | 
|          access.WithRepresentation(Representation::Tagged()));
 | 
| -    checked_object->set_type(HType::HeapNumber());
 | 
|      // Load the double value from it.
 | 
|      access = HObjectAccess::ForHeapNumberValue();
 | 
|    }
 | 
| @@ -5485,8 +5484,11 @@ HInstruction* HOptimizedGraphBuilder::BuildStoreNamedField(
 | 
|        PretenureFlag pretenure_flag = !FLAG_allocation_site_pretenuring ?
 | 
|            isolate()->heap()->GetPretenureMode() : NOT_TENURED;
 | 
|  
 | 
| +      // Mark mutable heap numbers as Tagged rather than HeapNumber, since
 | 
| +      // unlike immutable heap numbers, the identity of mutable heap numbers
 | 
| +      // matters.
 | 
|        HInstruction* heap_number = Add<HAllocate>(heap_number_size,
 | 
| -          HType::HeapNumber(),
 | 
| +          HType::Tagged(),
 | 
|            pretenure_flag,
 | 
|            HEAP_NUMBER_TYPE);
 | 
|        AddStoreMapConstant(heap_number, isolate()->factory()->heap_number_map());
 | 
| @@ -5499,7 +5501,6 @@ HInstruction* HOptimizedGraphBuilder::BuildStoreNamedField(
 | 
|        // Already holds a HeapNumber; load the box and write its value field.
 | 
|        HInstruction* heap_number = Add<HLoadNamedField>(
 | 
|            checked_object, static_cast<HValue*>(NULL), heap_number_access);
 | 
| -      heap_number->set_type(HType::HeapNumber());
 | 
|        instr = New<HStoreNamedField>(heap_number,
 | 
|                                      HObjectAccess::ForHeapNumberValue(),
 | 
|                                      value, STORE_TO_INITIALIZED_ENTRY);
 | 
| 
 |