Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: src/objects-debug.cc

Issue 211333002: Replace HeapNumber as doublebox with an explicit MutableHeapNumber. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698