Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 5324ef39cb320f0662ffbefec360cf87a4bf93f8..de5dae1759416c94cfe4972bd0e966c43fb3b7e1 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -9774,6 +9774,15 @@ HInstruction* HOptimizedGraphBuilder::BuildFastLiteral( |
elements->map() != isolate()->heap()->fixed_cow_array_map()) ? |
elements->Size() : 0; |
Hannes Payer (out of office)
2014/03/17 09:37:18
This method needs more comments... please explain
mvstanton
2014/03/17 12:25:28
Done.
|
+ if (pretenure_flag == TENURED && |
+ elements->map() == isolate()->heap()->fixed_cow_array_map() && |
+ isolate()->heap()->InNewSpace(*elements)) { |
+ elements = Handle<FixedArrayBase>( |
+ isolate()->factory()->CopyAndTenureFixedCOWArray( |
+ Handle<FixedArray>::cast(elements))); |
+ boilerplate_object->set_elements(*elements); |
+ } |
+ |
HInstruction* object_elements = NULL; |
if (elements_size > 0) { |
HValue* object_elements_size = Add<HConstant>(elements_size); |