| Index: src/compiler/js-native-context-specialization.cc | 
| diff --git a/src/compiler/js-native-context-specialization.cc b/src/compiler/js-native-context-specialization.cc | 
| index 445f4d061b44bf099aa9e19acd00eff5a51797a9..b856e5de1e58697381dc21b31be7c8cf822746da 100644 | 
| --- a/src/compiler/js-native-context-specialization.cc | 
| +++ b/src/compiler/js-native-context-specialization.cc | 
| @@ -906,6 +906,8 @@ JSNativeContextSpecialization::BuildPropertyAccess( | 
| } | 
| field_access.machine_type = MachineType::Float64(); | 
| } | 
| +      // TODO(turbofan): Track the field_map (if any) on the {field_access} and | 
| +      // use it in LoadElimination to eliminate map checks. | 
| value = effect = graph()->NewNode(simplified()->LoadField(field_access), | 
| storage, effect, control); | 
| } else { | 
| @@ -956,14 +958,12 @@ JSNativeContextSpecialization::BuildPropertyAccess( | 
| // Ensure that {value} is a HeapObject. | 
| value = effect = graph()->NewNode(simplified()->CheckTaggedPointer(), | 
| value, effect, control); | 
| -        if (field_type->NumClasses() == 1) { | 
| +        Handle<Map> field_map; | 
| +        if (access_info.field_map().ToHandle(&field_map)) { | 
| // Emit a map check for the value. | 
| -          Node* field_map = | 
| -              jsgraph()->Constant(field_type->Classes().Current()); | 
| effect = graph()->NewNode(simplified()->CheckMaps(1), value, | 
| -                                    field_map, effect, control); | 
| -        } else { | 
| -          DCHECK_EQ(0, field_type->NumClasses()); | 
| +                                    jsgraph()->HeapConstant(field_map), effect, | 
| +                                    control); | 
| } | 
| } else { | 
| // DCHECK(field_type->Is(Type::Tagged())); | 
|  |