Index: src/heap-inl.h |
diff --git a/src/heap-inl.h b/src/heap-inl.h |
index e12895a28348e011bf0bdf9cddc6c4e06f94d7cb..6c0baedd0b74bee1cd0b186a0f3f2f7189a38ebc 100644 |
--- a/src/heap-inl.h |
+++ b/src/heap-inl.h |
@@ -595,12 +595,24 @@ void ExternalStringTable::Iterate(ObjectVisitor* v) { |
void ExternalStringTable::Verify() { |
#ifdef DEBUG |
for (int i = 0; i < new_space_strings_.length(); ++i) { |
- ASSERT(heap_->InNewSpace(new_space_strings_[i])); |
- ASSERT(new_space_strings_[i] != HEAP->raw_unchecked_the_hole_value()); |
+ Object* obj = Object::cast(new_space_strings_[i]); |
+ // TODO(yangguo): check that the object is indeed an external string. |
+ ASSERT(heap_->InNewSpace(obj)); |
+ ASSERT(obj != HEAP->raw_unchecked_the_hole_value()); |
+ if (obj->IsExternalAsciiString()) { |
+ ExternalAsciiString* string = ExternalAsciiString::cast(obj); |
+ ASSERT(String::IsAscii(string->GetChars(), string->length())); |
+ } |
} |
for (int i = 0; i < old_space_strings_.length(); ++i) { |
- ASSERT(!heap_->InNewSpace(old_space_strings_[i])); |
- ASSERT(old_space_strings_[i] != HEAP->raw_unchecked_the_hole_value()); |
+ Object* obj = Object::cast(new_space_strings_[i]); |
+ // TODO(yangguo): check that the object is indeed an external string. |
+ ASSERT(!heap_->InNewSpace(obj)); |
+ ASSERT(obj != HEAP->raw_unchecked_the_hole_value()); |
+ if (obj->IsExternalAsciiString()) { |
+ ExternalAsciiString* string = ExternalAsciiString::cast(obj); |
+ ASSERT(String::IsAscii(string->GetChars(), string->length())); |
+ } |
} |
#endif |
} |