Index: src/profile-generator.cc |
=================================================================== |
--- src/profile-generator.cc (revision 11964) |
+++ src/profile-generator.cc (working copy) |
@@ -2182,16 +2182,33 @@ |
switch (descs->GetType(i)) { |
case FIELD: { |
int index = descs->GetFieldIndex(i); |
+ |
+ String* k = descs->GetKey(i); |
if (index < js_obj->map()->inobject_properties()) { |
- SetPropertyReference( |
- js_obj, entry, |
- descs->GetKey(i), js_obj->InObjectPropertyAt(index), |
- NULL, |
- js_obj->GetInObjectPropertyOffset(index)); |
+ Object* value = js_obj->InObjectPropertyAt(index); |
+ if (k->length() > 0) { |
Vyacheslav Egorov (Google)
2012/07/02 12:12:45
Consider comparing against Heap::hidden_symbol()
yurys
2012/07/02 12:43:27
Done.
|
+ SetPropertyReference( |
+ js_obj, entry, |
+ k, value, |
+ NULL, |
+ js_obj->GetInObjectPropertyOffset(index)); |
+ } else { |
+ OS::Print("Empty name for fast property 1\n"); |
Vyacheslav Egorov (Google)
2012/07/02 12:12:45
remove OS::Print
yurys
2012/07/02 12:43:27
Done.
|
+ TagObject(value, "(hidden properties)"); |
+ SetInternalReference( |
+ js_obj, entry, |
+ "hidden_properties", value, |
+ js_obj->GetInObjectPropertyOffset(index)); |
+ } |
} else { |
- SetPropertyReference( |
- js_obj, entry, |
- descs->GetKey(i), js_obj->FastPropertyAt(index)); |
+ Object* value = js_obj->FastPropertyAt(index); |
+ if (k->length() > 0) { |
Vyacheslav Egorov (Google)
2012/07/02 12:12:45
Consider comparing against Heap::hidden_symbol
yurys
2012/07/02 12:43:27
Done.
|
+ SetPropertyReference(js_obj, entry, k, value); |
+ } else { |
+ OS::Print("Empty name for fast property 2\n"); |
Vyacheslav Egorov (Google)
2012/07/02 12:12:45
remove OS::Print
yurys
2012/07/02 12:43:27
Done.
|
+ TagObject(value, "(hidden properties)"); |
+ SetInternalReference(js_obj, entry, "hidden_properties", value); |
+ } |
} |
break; |
} |