v8/test
Caitlin Potter 190128ce7c [js-perf-test] add microbenchmarks for (Object|Reflect).getOwnPropertyDescriptor
Based on the robust test suite for checking property "has/in" queries, with the intention
of measuring the performance of accessing getOwnPropertyDescriptor.

Background: getOwnPropertyDescriptor and defineProperty were identified as hot code taking up
a significant chunk of startup time in a customer application. This benchmark aims to measure
the difference made by a modifying Object.getOwnPropertyDescriptor.

By current measurements, the geometric mean time of the new version is typically 1/6 that of
the current upstream implementation, using this test specifically (however, only on arm64 /
Apple M1... On Linux/x64, the results look more reasonable at a roughly 5-12% improvement in
score).

In its current form, this benchmark does very little to attempt to verify the results of the
object, which may result in branches being discarded in Turbofan (but given the enormous
difference between x64 and arm64, I'm not positive this is what is happening, and have not yet
verified this).

BUG=

Change-Id: I0f10735315313ed97efd00fcccaedc1272d4d314
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3624979
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80373}
2022-05-05 14:15:55 +00:00
..
benchmarks [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
bigint [bigint][test] Better random input generation 2021-09-08 15:39:27 +00:00
cctest heap: Clean up conservative stack scanning prototype 2022-05-05 10:52:19 +00:00
common Reland "[rwx][mac] Support fast W^X permission switching on Apple Silicon (M1)" 2022-04-28 14:08:11 +00:00
debugger [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
debugging [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
fuzzer [liftoff] Move more options into LiftoffOptions 2022-04-19 16:21:21 +00:00
fuzzilli Fix unhandled promise rejections in REPRL mode 2020-09-30 13:34:23 +00:00
inspector Distinguish untrusted clients in v8 inspector and disable Profiler, HeapProfiler and Schema CDP domains for them. 2022-05-03 12:38:17 +00:00
intl [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
js-perf-test [js-perf-test] add microbenchmarks for (Object|Reflect).getOwnPropertyDescriptor 2022-05-05 14:15:55 +00:00
memory [snapshot] Fix the Memory.json benchmark 2021-04-28 07:54:34 +00:00
message [error] Improve error message for array spread 2022-04-15 01:23:54 +00:00
mjsunit Move skipped tests on Numfuzz to a separate section to reduce duplication 2022-05-05 13:35:49 +00:00
mkgrokdump [py3] Bump v8heapconstants.py and related files 2022-04-04 13:27:13 +00:00
mozilla [test] Clean up Py2 code 2022-03-17 09:12:36 +00:00
test262 [Temporal] Add Calendar.prototype.dateAdd 2022-05-05 07:29:30 +00:00
torque Reland "Reland "[Torque] Generalize Torque literals to larger size"" 2022-02-04 09:40:24 +00:00
unittests cppgc: young-gen: Fix gcc build failure 2022-05-04 13:15:38 +00:00
wasm-api-tests [test] Clean up Py2 code 2022-03-17 09:12:36 +00:00
wasm-js [wasm] Disable limits test on Android 2022-04-28 12:53:38 +00:00
wasm-spec-tests [wasm] Remove SIMD proposal tests 2022-04-28 05:22:59 +00:00
webkit [test] Disable failing MSVC test 2021-12-01 15:51:59 +00:00
BUILD.gn Reland^2 "[bigint] Karatsuba multiplication" 2021-06-07 11:01:14 +00:00
OWNERS