Index: src/objects-debug.cc |
diff --git a/src/objects-debug.cc b/src/objects-debug.cc |
index 55fc138cf0f7116a8baf6c25e4df1496f9a3fdb8..3548dd6f8eb70384ecc3bd671a54de11fd3d2a0d 100644 |
--- a/src/objects-debug.cc |
+++ b/src/objects-debug.cc |
@@ -63,6 +63,9 @@ |
break; |
case FIXED_DOUBLE_ARRAY_TYPE: |
FixedDoubleArray::cast(this)->FixedDoubleArrayVerify(); |
+ break; |
+ case CONSTANT_POOL_ARRAY_TYPE: |
+ ConstantPoolArray::cast(this)->ConstantPoolArrayVerify(); |
break; |
case BYTE_ARRAY_TYPE: |
ByteArray::cast(this)->ByteArrayVerify(); |
@@ -395,6 +398,20 @@ |
} |
+void ConstantPoolArray::ConstantPoolArrayVerify() { |
+ CHECK(IsConstantPoolArray()); |
+ ConstantPoolArray::Iterator code_iter(this, ConstantPoolArray::CODE_PTR); |
+ while (!code_iter.is_finished()) { |
+ Address code_entry = get_code_ptr_entry(code_iter.next_index()); |
+ VerifyPointer(Code::GetCodeFromTargetAddress(code_entry)); |
+ } |
+ ConstantPoolArray::Iterator heap_iter(this, ConstantPoolArray::HEAP_PTR); |
+ while (!heap_iter.is_finished()) { |
+ VerifyObjectField(OffsetOfElementAt(heap_iter.next_index())); |
+ } |
+} |
+ |
+ |
void JSGeneratorObject::JSGeneratorObjectVerify() { |
// In an expression like "new g()", there can be a point where a generator |
// object is allocated but its fields are all undefined, as it hasn't yet been |