Index: src/hydrogen-instructions.cc |
diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc |
index fc57aa879c68111e4158f7db07ebe685c2790110..efe0f4653edf4bf09ad865a448829fb408e71871 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); |
+ // Handle deprecated maps using a generic handler. |
+ if (map->is_deprecated()) continue; |
danno
2013/05/07 13:04:47
Shouldn't be hitting this case? Maybe this should
Toon Verwaest
2013/05/07 15:08:52
Done.
|
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.GetPropertyDetails().representation().IsDouble()) { |
danno
2013/05/07 13:04:47
Do lookup.representation directly.
Toon Verwaest
2013/05/07 15:08:52
Done.
|
+ // Since the value needs to be boxed, use a generic handler for |
+ // loading doubles. |
+ continue; |
+ } |
types_.Add(types->at(i), zone); |
break; |
} |