| Index: src/hydrogen-instructions.cc
|
| diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc
|
| index fc57aa879c68111e4158f7db07ebe685c2790110..8f8c59ea8c0f713a476a3e9061a2fd56debb29fc 100644
|
| --- a/src/hydrogen-instructions.cc
|
| +++ b/src/hydrogen-instructions.cc
|
| @@ -2521,6 +2521,8 @@ HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(HValue* context,
|
| i < types->length() && types_.length() < kMaxLoadPolymorphism;
|
| ++i) {
|
| Handle<Map> map = types->at(i);
|
| + // Deprecated maps are updated to the current map in the type oracle.
|
| + ASSERT(!map->is_deprecated());
|
| LookupResult lookup(map->GetIsolate());
|
| map->LookupDescriptor(NULL, *name, &lookup);
|
| if (lookup.IsFound()) {
|
| @@ -2532,6 +2534,12 @@ HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(HValue* context,
|
| } else {
|
| SetGVNFlag(kDependsOnBackingStoreFields);
|
| }
|
| + if (FLAG_track_double_fields &&
|
| + lookup.representation().IsDouble()) {
|
| + // Since the value needs to be boxed, use a generic handler for
|
| + // loading doubles.
|
| + continue;
|
| + }
|
| types_.Add(types->at(i), zone);
|
| break;
|
| }
|
|
|