I verified performance previously. Except for the usual flakes, it actually slightly improves stanford-crypto-ccm; so probably there was a slight inconsistency in previous parsing of int/double arrays.
https://codereview.chromium.org/11361281/diff/4001/src/parser.cc File src/parser.cc (right): https://codereview.chromium.org/11361281/diff/4001/src/parser.cc#newcode3726 src/parser.cc:3726: bool is_holey = false; The reason is that I preallocate the full backing store. To do this properly, I need to also set the length already. Otherwise, the conversion from smi to double, or double to object, may cause the array to go into dictionary mode since it looks sparse (when a large part of the array isn't filled in yet). Of course, when I set the length to something larger than the values already present, the type has to be HOLEY. Hence I have to keep track of holeyness by hand. On 2012/11/27 09:03:57, danno wrote:
Can't you automatically track holiness through SetOwnElement? If you
skip an
element, the array's elements kind should become holey.
https://codereview.chromium.org/11361281/diff/4001/src/parser.cc#newcode3739 src/parser.cc:3739: } else if (!boilerplate_value->IsTheHole()) { On 2012/11/27 09:03:57, danno wrote:
You already know !boilerplate_value->IsTheHole() is true, since you
checked
above.
Done. https://codereview.chromium.org/11361281/diff/4001/src/parser.cc#newcode3758 src/parser.cc:3758: kind = is_holey ? GetHoleyElementsKind(kind) : GetPackedElementsKind(kind); Unfortunately it is... On 2012/11/27 09:03:57, danno wrote:
Shouldn't be necessary, see above.
https://codereview.chromium.org/11361281/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
