-
Simon Zünd authored
This is a reland of 2b0ac2fb The layout test that caused this revert was fixed with: https://crrev.com/c/1627386 Original change's description: > [array] Move Array#sort pre-processing to Torque > > This CL removes the "PrepareElementsForSort" runtime function, and > replaces it with a simpler version in Torque. The biggest difference > is that certain sparse configurations no longer have a fast-path. > > The Torque pre-processing step replaces the existing Torque mechanism that > copied already pre-processed elements into the "work" FixedArray. The Torque > compacting works as follows: > - Iterate all elements from 0 to {length} > - If the element is the hole: Do nothing. > - If the element is "undefined": Increment undefined counter. > - In all other cases, push the element into the "work" FixedArray. > > Then the "work" FixedArray is sorted as before. Writing the elements from > the "work" array back into the receiver, after sorting, has three steps: > 1. Copy the sorted elements from the "work" FixedArray to the receiver. > 2. Add previously counted number of "undefined" to the receiver. > 3. Depending on the backing store either delete properties or > set them to the Hole up to {length}. > > Bug: v8:8714 > Change-Id: I14eccb7cfd2e4618bce2a85cba0689d7e0380ad2 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619756 > Commit-Queue: Simon Zünd <szuend@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61812} TBR: jgruber@chromium.org Bug: v8:8714 Change-Id: If7613f6e5f37c5e0d649e8192195594bc6c32100 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627977 Commit-Queue: Simon Zünd <szuend@chromium.org> Auto-Submit: Simon Zünd <szuend@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#61827}
843b6646