Revision: 19026
Author: [email protected]
Date: Mon Feb 3 13:33:26 2014 UTC
Log: Elements field of newly allocated JSArray could be left
uninitialized in some cases (fast literal case).
BUG=340124
LOG=Y
[email protected]
Review URL: https://codereview.chromium.org/152673004
http://code.google.com/p/v8/source/detail?r=19026
Modified:
/branches/bleeding_edge/src/hydrogen.cc
=======================================
--- /branches/bleeding_edge/src/hydrogen.cc Fri Jan 31 16:52:17 2014 UTC
+++ /branches/bleeding_edge/src/hydrogen.cc Mon Feb 3 13:33:26 2014 UTC
@@ -9906,6 +9906,13 @@
if (elements_size > 0) {
HValue* object_elements_size = Add<HConstant>(elements_size);
if (boilerplate_object->HasFastDoubleElements()) {
+ // Allocation folding will not be able to fold |object| and
+ // |object_elements| together in some cases, so initialize
+ // elements with the undefined to make GC happy.
+ HConstant* empty_fixed_array = Add<HConstant>(
+ isolate()->factory()->empty_fixed_array());
+ Add<HStoreNamedField>(object, HObjectAccess::ForElementsPointer(),
+ empty_fixed_array, INITIALIZING_STORE);
object_elements = Add<HAllocate>(object_elements_size,
HType::JSObject(),
pretenure_flag, FIXED_DOUBLE_ARRAY_TYPE,
site_context->current());
} else {
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.