OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 1572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1583 } | 1583 } |
1584 | 1584 |
1585 | 1585 |
1586 void V8HeapExplorer::ExtractPropertyReferences(JSObject* js_obj, int entry) { | 1586 void V8HeapExplorer::ExtractPropertyReferences(JSObject* js_obj, int entry) { |
1587 if (js_obj->HasFastProperties()) { | 1587 if (js_obj->HasFastProperties()) { |
1588 DescriptorArray* descs = js_obj->map()->instance_descriptors(); | 1588 DescriptorArray* descs = js_obj->map()->instance_descriptors(); |
1589 int real_size = js_obj->map()->NumberOfOwnDescriptors(); | 1589 int real_size = js_obj->map()->NumberOfOwnDescriptors(); |
1590 for (int i = 0; i < real_size; i++) { | 1590 for (int i = 0; i < real_size; i++) { |
1591 switch (descs->GetType(i)) { | 1591 switch (descs->GetType(i)) { |
1592 case FIELD: { | 1592 case FIELD: { |
| 1593 Representation r = descs->GetDetails(i).representation(); |
| 1594 if (r.IsSmi() || r.IsDouble()) break; |
1593 int index = descs->GetFieldIndex(i); | 1595 int index = descs->GetFieldIndex(i); |
1594 | 1596 |
1595 Name* k = descs->GetKey(i); | 1597 Name* k = descs->GetKey(i); |
1596 if (index < js_obj->map()->inobject_properties()) { | 1598 if (index < js_obj->map()->inobject_properties()) { |
1597 Object* value = js_obj->InObjectPropertyAt(index); | 1599 Object* value = js_obj->InObjectPropertyAt(index); |
1598 if (k != heap_->hidden_string()) { | 1600 if (k != heap_->hidden_string()) { |
1599 SetPropertyReference( | 1601 SetPropertyReference( |
1600 js_obj, entry, | 1602 js_obj, entry, |
1601 k, value, | 1603 k, value, |
1602 NULL, | 1604 NULL, |
(...skipping 1472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3075 writer_->AddString("\"<dummy>\""); | 3077 writer_->AddString("\"<dummy>\""); |
3076 for (int i = 1; i < sorted_strings.length(); ++i) { | 3078 for (int i = 1; i < sorted_strings.length(); ++i) { |
3077 writer_->AddCharacter(','); | 3079 writer_->AddCharacter(','); |
3078 SerializeString(sorted_strings[i]); | 3080 SerializeString(sorted_strings[i]); |
3079 if (writer_->aborted()) return; | 3081 if (writer_->aborted()) return; |
3080 } | 3082 } |
3081 } | 3083 } |
3082 | 3084 |
3083 | 3085 |
3084 } } // namespace v8::internal | 3086 } } // namespace v8::internal |
OLD | NEW |