Index: src/objects.cc |
=================================================================== |
--- src/objects.cc (revision 12254) |
+++ src/objects.cc (working copy) |
@@ -516,6 +516,7 @@ |
MaybeObject* maybe_new_map = map()->CopyDropDescriptors(); |
if (!maybe_new_map->To(&new_map)) return maybe_new_map; |
+ ASSERT(new_map->is_dictionary_map()); |
set_map(new_map); |
} |
JSGlobalPropertyCell* cell = |
@@ -3218,6 +3219,7 @@ |
fast->CopyNormalized(mode, SHARED_NORMALIZED_MAP); |
if (!maybe_result->ToObject(&result)) return maybe_result; |
} |
+ Map::cast(result)->set_dictionary_map(true); |
Toon Verwaest
2012/08/06 13:49:24
This is superfluous since CopyNormalized already s
Erik Corry
2012/08/06 14:26:46
Done.
|
set(index, result); |
isolate->counters()->normalized_maps()->Increment(); |
@@ -3343,6 +3345,7 @@ |
current_heap->isolate()->context()->global_context()-> |
normalized_map_cache()->Get(this, mode); |
if (!maybe_map->To(&new_map)) return maybe_map; |
+ ASSERT(new_map->is_dictionary_map()); |
// We have now successfully allocated all the necessary objects. |
// Changes can now be made with the guarantee that all of them take effect. |
@@ -4512,6 +4515,7 @@ |
Map* new_map; |
MaybeObject* maybe_new_map = map()->CopyDropDescriptors(); |
if (!maybe_new_map->To(&new_map)) return maybe_new_map; |
+ ASSERT(new_map->is_dictionary_map()); |
set_map(new_map); |
// When running crankshaft, changing the map is not enough. We |
@@ -4873,6 +4877,7 @@ |
result->set_code_cache(code_cache()); |
result->set_is_shared(sharing == SHARED_NORMALIZED_MAP); |
+ result->set_dictionary_map(true); |
#ifdef DEBUG |
if (FLAG_verify_heap && result->is_shared()) { |
@@ -7330,7 +7335,8 @@ |
bit_field2() == other->bit_field2() && |
static_cast<uint32_t>(bit_field3()) == |
LastAddedBits::update( |
- IsShared::update(other->bit_field3(), true), |
+ IsShared::update(DictionaryMap::update(other->bit_field3(), true), |
+ true), |
kNoneAdded); |
} |
@@ -12573,6 +12579,7 @@ |
Map* new_map; |
MaybeObject* maybe_new_map = obj->map()->CopyDropDescriptors(); |
if (!maybe_new_map->To(&new_map)) return maybe_new_map; |
+ new_map->set_dictionary_map(false); |
if (instance_descriptor_length == 0) { |
ASSERT_LE(unused_property_fields, inobject_props); |