| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 } | 80 } |
| 81 | 81 |
| 82 switch (instance_type) { | 82 switch (instance_type) { |
| 83 case SYMBOL_TYPE: | 83 case SYMBOL_TYPE: |
| 84 Symbol::cast(this)->SymbolVerify(); | 84 Symbol::cast(this)->SymbolVerify(); |
| 85 break; | 85 break; |
| 86 case MAP_TYPE: | 86 case MAP_TYPE: |
| 87 Map::cast(this)->MapVerify(); | 87 Map::cast(this)->MapVerify(); |
| 88 break; | 88 break; |
| 89 case HEAP_NUMBER_TYPE: | 89 case HEAP_NUMBER_TYPE: |
| 90 case MUTABLE_HEAP_NUMBER_TYPE: |
| 90 HeapNumber::cast(this)->HeapNumberVerify(); | 91 HeapNumber::cast(this)->HeapNumberVerify(); |
| 91 break; | 92 break; |
| 92 case FIXED_ARRAY_TYPE: | 93 case FIXED_ARRAY_TYPE: |
| 93 FixedArray::cast(this)->FixedArrayVerify(); | 94 FixedArray::cast(this)->FixedArrayVerify(); |
| 94 break; | 95 break; |
| 95 case FIXED_DOUBLE_ARRAY_TYPE: | 96 case FIXED_DOUBLE_ARRAY_TYPE: |
| 96 FixedDoubleArray::cast(this)->FixedDoubleArrayVerify(); | 97 FixedDoubleArray::cast(this)->FixedDoubleArrayVerify(); |
| 97 break; | 98 break; |
| 98 case CONSTANT_POOL_ARRAY_TYPE: | 99 case CONSTANT_POOL_ARRAY_TYPE: |
| 99 ConstantPoolArray::cast(this)->ConstantPoolArrayVerify(); | 100 ConstantPoolArray::cast(this)->ConstantPoolArrayVerify(); |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 void Symbol::SymbolVerify() { | 226 void Symbol::SymbolVerify() { |
| 226 CHECK(IsSymbol()); | 227 CHECK(IsSymbol()); |
| 227 CHECK(HasHashCode()); | 228 CHECK(HasHashCode()); |
| 228 CHECK_GT(Hash(), 0); | 229 CHECK_GT(Hash(), 0); |
| 229 CHECK(name()->IsUndefined() || name()->IsString()); | 230 CHECK(name()->IsUndefined() || name()->IsString()); |
| 230 CHECK(flags()->IsSmi()); | 231 CHECK(flags()->IsSmi()); |
| 231 } | 232 } |
| 232 | 233 |
| 233 | 234 |
| 234 void HeapNumber::HeapNumberVerify() { | 235 void HeapNumber::HeapNumberVerify() { |
| 235 CHECK(IsHeapNumber()); | 236 CHECK(IsHeapNumber() || IsMutableHeapNumber()); |
| 236 } | 237 } |
| 237 | 238 |
| 238 | 239 |
| 239 void ByteArray::ByteArrayVerify() { | 240 void ByteArray::ByteArrayVerify() { |
| 240 CHECK(IsByteArray()); | 241 CHECK(IsByteArray()); |
| 241 } | 242 } |
| 242 | 243 |
| 243 | 244 |
| 244 void FreeSpace::FreeSpaceVerify() { | 245 void FreeSpace::FreeSpaceVerify() { |
| 245 CHECK(IsFreeSpace()); | 246 CHECK(IsFreeSpace()); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 if (HasFastProperties()) { | 284 if (HasFastProperties()) { |
| 284 CHECK_EQ(map()->unused_property_fields(), | 285 CHECK_EQ(map()->unused_property_fields(), |
| 285 (map()->inobject_properties() + properties()->length() - | 286 (map()->inobject_properties() + properties()->length() - |
| 286 map()->NextFreePropertyIndex())); | 287 map()->NextFreePropertyIndex())); |
| 287 DescriptorArray* descriptors = map()->instance_descriptors(); | 288 DescriptorArray* descriptors = map()->instance_descriptors(); |
| 288 for (int i = 0; i < map()->NumberOfOwnDescriptors(); i++) { | 289 for (int i = 0; i < map()->NumberOfOwnDescriptors(); i++) { |
| 289 if (descriptors->GetDetails(i).type() == FIELD) { | 290 if (descriptors->GetDetails(i).type() == FIELD) { |
| 290 Representation r = descriptors->GetDetails(i).representation(); | 291 Representation r = descriptors->GetDetails(i).representation(); |
| 291 int field = descriptors->GetFieldIndex(i); | 292 int field = descriptors->GetFieldIndex(i); |
| 292 Object* value = RawFastPropertyAt(field); | 293 Object* value = RawFastPropertyAt(field); |
| 293 if (r.IsDouble()) ASSERT(value->IsHeapNumber()); | 294 if (r.IsDouble()) ASSERT(value->IsMutableHeapNumber()); |
| 294 if (value->IsUninitialized()) continue; | 295 if (value->IsUninitialized()) continue; |
| 295 if (r.IsSmi()) ASSERT(value->IsSmi()); | 296 if (r.IsSmi()) ASSERT(value->IsSmi()); |
| 296 if (r.IsHeapObject()) ASSERT(value->IsHeapObject()); | 297 if (r.IsHeapObject()) ASSERT(value->IsHeapObject()); |
| 297 } | 298 } |
| 298 } | 299 } |
| 299 } | 300 } |
| 300 | 301 |
| 301 // If a GC was caused while constructing this object, the elements | 302 // If a GC was caused while constructing this object, the elements |
| 302 // pointer may point to a one pointer filler map. | 303 // pointer may point to a one pointer filler map. |
| 303 if (ElementsAreSafeToExamine()) { | 304 if (ElementsAreSafeToExamine()) { |
| (...skipping 853 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1157 for (int i = 0; i < number_of_transitions(); ++i) { | 1158 for (int i = 0; i < number_of_transitions(); ++i) { |
| 1158 if (!CheckOneBackPointer(current_map, GetTarget(i))) return false; | 1159 if (!CheckOneBackPointer(current_map, GetTarget(i))) return false; |
| 1159 } | 1160 } |
| 1160 return true; | 1161 return true; |
| 1161 } | 1162 } |
| 1162 | 1163 |
| 1163 | 1164 |
| 1164 #endif // DEBUG | 1165 #endif // DEBUG |
| 1165 | 1166 |
| 1166 } } // namespace v8::internal | 1167 } } // namespace v8::internal |
| OLD | NEW |