Index: src/runtime.cc |
=================================================================== |
--- src/runtime.cc (revision 10644) |
+++ src/runtime.cc (working copy) |
@@ -273,45 +273,43 @@ |
Isolate* isolate = context->GetIsolate(); |
int properties_length = constant_properties->length(); |
int number_of_properties = properties_length / 2; |
- if (FLAG_canonicalize_object_literal_maps) { |
- // Check that there are only symbols and array indices among keys. |
- int number_of_symbol_keys = 0; |
- for (int p = 0; p != properties_length; p += 2) { |
- Object* key = constant_properties->get(p); |
- uint32_t element_index = 0; |
- if (key->IsSymbol()) { |
- number_of_symbol_keys++; |
- } else if (key->ToArrayIndex(&element_index)) { |
- // An index key does not require space in the property backing store. |
- number_of_properties--; |
- } else { |
- // Bail out as a non-symbol non-index key makes caching impossible. |
- // ASSERT to make sure that the if condition after the loop is false. |
- ASSERT(number_of_symbol_keys != number_of_properties); |
- break; |
- } |
+ // Check that there are only symbols and array indices among keys. |
+ int number_of_symbol_keys = 0; |
+ for (int p = 0; p != properties_length; p += 2) { |
+ Object* key = constant_properties->get(p); |
+ uint32_t element_index = 0; |
+ if (key->IsSymbol()) { |
+ number_of_symbol_keys++; |
+ } else if (key->ToArrayIndex(&element_index)) { |
+ // An index key does not require space in the property backing store. |
+ number_of_properties--; |
+ } else { |
+ // Bail out as a non-symbol non-index key makes caching impossible. |
+ // ASSERT to make sure that the if condition after the loop is false. |
+ ASSERT(number_of_symbol_keys != number_of_properties); |
+ break; |
} |
- // If we only have symbols and array indices among keys then we can |
- // use the map cache in the global context. |
- const int kMaxKeys = 10; |
- if ((number_of_symbol_keys == number_of_properties) && |
- (number_of_symbol_keys < kMaxKeys)) { |
- // Create the fixed array with the key. |
- Handle<FixedArray> keys = |
- isolate->factory()->NewFixedArray(number_of_symbol_keys); |
- if (number_of_symbol_keys > 0) { |
- int index = 0; |
- for (int p = 0; p < properties_length; p += 2) { |
- Object* key = constant_properties->get(p); |
- if (key->IsSymbol()) { |
- keys->set(index++, key); |
- } |
+ } |
+ // If we only have symbols and array indices among keys then we can |
+ // use the map cache in the global context. |
+ const int kMaxKeys = 10; |
+ if ((number_of_symbol_keys == number_of_properties) && |
+ (number_of_symbol_keys < kMaxKeys)) { |
+ // Create the fixed array with the key. |
+ Handle<FixedArray> keys = |
+ isolate->factory()->NewFixedArray(number_of_symbol_keys); |
+ if (number_of_symbol_keys > 0) { |
+ int index = 0; |
+ for (int p = 0; p < properties_length; p += 2) { |
+ Object* key = constant_properties->get(p); |
+ if (key->IsSymbol()) { |
+ keys->set(index++, key); |
} |
- ASSERT(index == number_of_symbol_keys); |
} |
- *is_result_from_cache = true; |
- return isolate->factory()->ObjectLiteralMapFromCache(context, keys); |
+ ASSERT(index == number_of_symbol_keys); |
} |
+ *is_result_from_cache = true; |
+ return isolate->factory()->ObjectLiteralMapFromCache(context, keys); |
} |
*is_result_from_cache = false; |
return isolate->factory()->CopyMap( |