Revision: 15617
Author: [email protected]
Date: Thu Jul 11 02:39:22 2013
Log: A bug in AllocationSite::GetMode(from, to) meant that we didn't
update
boilerplates for SMI to SMI_HOLEY transitions.
BUG=
[email protected]
Review URL: https://codereview.chromium.org/18917003
http://code.google.com/p/v8/source/detail?r=15617
Modified:
/branches/bleeding_edge/src/objects-inl.h
/branches/bleeding_edge/test/mjsunit/allocation-site-info.js
=======================================
--- /branches/bleeding_edge/src/objects-inl.h Wed Jul 10 09:03:00 2013
+++ /branches/bleeding_edge/src/objects-inl.h Thu Jul 11 02:39:22 2013
@@ -1335,7 +1335,7 @@
ElementsKind to) {
if (FLAG_track_allocation_sites &&
IsFastSmiElementsKind(from) &&
- (IsFastObjectElementsKind(to) || IsFastDoubleElementsKind(to))) {
+ IsMoreGeneralElementsKindTransition(from, to)) {
return TRACK_ALLOCATION_SITE;
}
=======================================
--- /branches/bleeding_edge/test/mjsunit/allocation-site-info.js Mon Jul 8
07:41:54 2013
+++ /branches/bleeding_edge/test/mjsunit/allocation-site-info.js Thu Jul 11
02:39:22 2013
@@ -175,6 +175,20 @@
obj = fastliteralcase_smifast(2);
assertKind(elements_kind.fast, obj);
+ // Case: make sure transitions from packed to holey are tracked
+ function fastliteralcase_smiholey(index, value) {
+ var literal = [1, 2, 3, 4];
+ literal[index] = value;
+ return literal;
+ }
+
+ obj = fastliteralcase_smiholey(5, 1);
+ assertKind(elements_kind.fast_smi_only, obj);
+ assertHoley(obj);
+ obj = fastliteralcase_smiholey(0, 1);
+ assertKind(elements_kind.fast_smi_only, obj);
+ assertHoley(obj);
+
function newarraycase_smidouble(value) {
var a = new Array();
a[0] = value;
--
--
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.