• Simon Zünd's avatar
    [array] Eagerly copy elements into a FixedArray for sorting · e7d414a2
    Simon Zünd authored
    This CL changes Array#sort to work roughly like:
        1) Call [[Get]] on the receiver in [0, length) and store to FA
        2) Use the existing TimSort to sort that FA
        3) Call [[Set]] on the receiver in [0, length) using the result
    
    This has the advantage that we no longer need different fast-paths
    for the sorting algorithm itself, only for step 1 and 3. This results
    in a code size reduction of ~2650 bytes.
    
    This CL does not include optimizations that elides step 1 or 3.
    
    Change-Id: I7f2e35067a6ec356add8b0c50b160d76813c536d
    Reviewed-on: https://chromium-review.googlesource.com/c/1458237
    Commit-Queue: Simon Zünd <szuend@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#59653}
    e7d414a2
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...