v8/test
Simon Zünd 2b0ac2fb9f [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}
2019-05-24 06:18:45 +00:00
..
benchmarks [test] Skip flaky test on predictable mode 2019-05-07 13:57:18 +00:00
cctest Move utility code to src/utils 2019-05-23 14:13:34 +00:00
common Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
debugger Revert "[test] Skip debugger tests failing with JSON parsing" 2019-05-20 13:58:05 +00:00
fuzzer Move utility code to src/utils 2019-05-23 14:13:34 +00:00
inspector Move utility code to src/utils 2019-05-23 14:13:34 +00:00
intl [Intl] Intl.NumberFormat Unified API Proposal 2019-05-21 17:23:21 +00:00
js-perf-test [array] Move Array#sort pre-processing to Torque 2019-05-24 06:18:45 +00:00
memory [perf] Refactor the Memory benchmark to use d8 2019-05-06 15:10:57 +00:00
message Reland "[stack-trace] Include API functions in Error.stack stack trace" 2019-05-21 10:40:30 +00:00
mjsunit [array] Move Array#sort pre-processing to Torque 2019-05-24 06:18:45 +00:00
mkgrokdump Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
mozilla [array] Move Array#sort pre-processing to Torque 2019-05-24 06:18:45 +00:00
preparser [test] Don't test jitless without embedded-builtins 2019-02-26 14:33:01 +00:00
test262 Roll Test262 to update RegExp/Unicode tests 2019-05-22 21:57:03 +00:00
torque Revert "Reland "[torque] move class tests to unittests"" 2019-05-23 21:38:23 +00:00
unittests Revert "Reland "[torque] move class tests to unittests"" 2019-05-23 21:38:23 +00:00
wasm-js [testrunner] handle timeout param in file 2019-02-27 17:49:17 +00:00
wasm-spec-tests [wasm] Update spec tests 2019-05-22 14:58:45 +00:00
webkit [array] Move Array#sort pre-processing to Torque 2019-05-24 06:18:45 +00:00
BUILD.gn [tools] Implement confidence-based number of runs 2019-05-09 09:42:28 +00:00
OWNERS Clean up infra owners 2019-05-15 11:18:43 +00:00