Index: src/objects-debug.cc |
diff --git a/src/objects-debug.cc b/src/objects-debug.cc |
index 5babfdf1a7f434ce341a735b9daf1f9ee61813a5..b68895fbc6d27745e4dd8e1ca6bc71674b772ef9 100644 |
--- a/src/objects-debug.cc |
+++ b/src/objects-debug.cc |
@@ -78,6 +78,9 @@ |
break; |
#define VERIFY_TYPED_ARRAY(Type, type, TYPE, ctype, size) \ |
+ case EXTERNAL_##TYPE##_ARRAY_TYPE: \ |
+ External##Type##Array::cast(this)->External##Type##ArrayVerify(); \ |
+ break; \ |
case FIXED_##TYPE##_ARRAY_TYPE: \ |
Fixed##Type##Array::cast(this)->FixedTypedArrayVerify(); \ |
break; |
@@ -233,17 +236,21 @@ |
} |
+#define EXTERNAL_ARRAY_VERIFY(Type, type, TYPE, ctype, size) \ |
+ void External##Type##Array::External##Type##ArrayVerify() { \ |
+ CHECK(IsExternal##Type##Array()); \ |
+ } |
+ |
+TYPED_ARRAYS(EXTERNAL_ARRAY_VERIFY) |
+#undef EXTERNAL_ARRAY_VERIFY |
+ |
+ |
template <class Traits> |
void FixedTypedArray<Traits>::FixedTypedArrayVerify() { |
CHECK(IsHeapObject() && |
HeapObject::cast(this)->map()->instance_type() == |
Traits::kInstanceType); |
- if (base_pointer() == this) { |
- CHECK(external_pointer() == |
- ExternalReference::fixed_typed_array_base_data_offset().address()); |
- } else { |
- CHECK(base_pointer() == nullptr); |
- } |
+ CHECK(base_pointer() == this); |
} |
@@ -1089,6 +1096,7 @@ |
} |
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ |
+ case EXTERNAL_##TYPE##_ELEMENTS: \ |
case TYPE##_ELEMENTS: |
TYPED_ARRAYS(TYPED_ARRAY_CASE) |