v8/test
Matt Gardner 32fc0acfef Optimize in operator
This change implements optimizations for the `in` operator for packed array
elements and object properties. It adds a new feedback slot kind and an IC
path similar to KeyedLoadIC for handling the lookups. TurboFan uses the
feedback to optimize based on the maps and keys.

For more details see:
https://docs.google.com/document/d/1tIfzywY8AeNVcy_sen-5Xev21MeZwjcU8QhSdzHvXig

This can provide 10x performance improvements of on loops of the form:

    for (let i = 0; i < ary.length; ++i) {
      if (i in ary) {
        ...
      }
    }


Bug: v8:8733
Change-Id: I766bf865a547a059e5bce5399bb6112e5d9a85c8
Reviewed-on: https://chromium-review.googlesource.com/c/1432598
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Matt Gardner <magardn@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#59843}
2019-02-25 18:11:14 +00:00
..
benchmarks Revert "Preparing v8 to use with python3 /test" 2019-02-20 10:20:59 +00:00
cctest Optimize in operator 2019-02-25 18:11:14 +00:00
common Reland "[wasm] add wasm atomic wait callback test" 2019-02-20 05:17:07 +00:00
debugger [test] Explicitly add --turbo-inlining to tests that require it 2019-02-19 19:30:30 +00:00
fuzzer Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00
inspector [inspector] Do not leak Handles from V8InspectorSession methods 2019-02-25 10:17:11 +00:00
intl [regexp] Remove internal match and replace methods 2019-02-19 14:21:31 +00:00
js-perf-test [test] Add perf test for in operator on arrays 2019-02-20 22:36:13 +00:00
memory
message [asm.js] Fix handling of bogus code after export statement. 2019-02-21 14:37:37 +00:00
mjsunit Optimize in operator 2019-02-25 18:11:14 +00:00
mkgrokdump [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
mozilla Revert "Preparing v8 to use with python3 /test" 2019-02-20 10:20:59 +00:00
preparser Revert "Preparing v8 to use with python3 /test" 2019-02-20 10:20:59 +00:00
test262 Update V8 DEPS. 2019-02-22 10:07:13 +00:00
torque [torque] make overload resolution robust concerning branching contexts 2019-02-15 10:04:36 +00:00
unittests Optimize in operator 2019-02-25 18:11:14 +00:00
wasm-js Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00
wasm-spec-tests Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00
webkit Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00
BUILD.gn Add target for common test headers 2019-02-12 09:30:01 +00:00
OWNERS Make tmrts an infra OWNER 2019-02-15 09:02:24 +00:00