Index: src/objects-debug.cc |
diff --git a/src/objects-debug.cc b/src/objects-debug.cc |
index 593e955efb9d3d6c366ea90db3c0b9ca7e2243b9..60463684999001b779eef13970299db1d6a3ed08 100644 |
--- a/src/objects-debug.cc |
+++ b/src/objects-debug.cc |
@@ -30,6 +30,7 @@ |
#include "disassembler.h" |
#include "disasm.h" |
#include "jsregexp.h" |
+#include "macro-assembler.h" |
#include "objects-visiting.h" |
namespace v8 { |
@@ -595,6 +596,21 @@ void Code::CodeVerify() { |
} |
+void Code::VerifyEmbeddedMapsDependency() { |
+ int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT); |
+ for (RelocIterator it(this, mode_mask); !it.done(); it.next()) { |
+ RelocInfo::Mode mode = it.rinfo()->rmode(); |
+ if (mode == RelocInfo::EMBEDDED_OBJECT && |
+ it.rinfo()->target_object()->IsMap()) { |
+ Map* map = Map::cast(it.rinfo()->target_object()); |
+ if (map->CanTransition()) { |
+ CHECK(map->dependent_codes()->Contains(this)); |
+ } |
+ } |
+ } |
+} |
+ |
+ |
void JSArray::JSArrayVerify() { |
JSObjectVerify(); |
CHECK(length()->IsNumber() || length()->IsUndefined()); |