f310c28bba
Place the LoadField for the backing store of the [[IteratedObject]] before the diamond to make it possible to eliminate this LoadField in LoadElimination later, when used in `for..of` or destructing. This further improves the performance of `for..of` in the micro benchmark on the tracking bug from console.timeEnd: forOf, 191.726000 console.timeEnd: traditional, 107.572000 console.timeEnd: forOf, 137.288000 console.timeEnd: traditional, 102.976000 console.timeEnd: forOf, 137.506000 console.timeEnd: traditional, 103.089000 to around console.timeEnd: forOf, 195.238000 console.timeEnd: traditional, 107.078000 console.timeEnd: forOf, 128.980000 console.timeEnd: traditional, 103.106000 console.timeEnd: forOf, 128.525000 console.timeEnd: traditional, 103.072000 so roughly another ~7% improvement (with untrusted code mitigations turned off). Bug: v8:8070 Change-Id: I34831c503384f0cc44b95317dd84403f2ed8ecd5 Reviewed-on: https://chromium-review.googlesource.com/1188138 Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55390} |
||
---|---|---|
benchmarks | ||
build_overrides | ||
custom_deps | ||
docs | ||
gni | ||
include | ||
infra | ||
samples | ||
src | ||
test | ||
testing | ||
third_party | ||
tools | ||
.clang-format | ||
.editorconfig | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.gn | ||
.vpython | ||
.ycm_extra_conf.py | ||
AUTHORS | ||
BUILD.gn | ||
ChangeLog | ||
CODE_OF_CONDUCT.md | ||
codereview.settings | ||
DEPS | ||
LICENSE | ||
LICENSE.fdlibm | ||
LICENSE.strongtalk | ||
LICENSE.v8 | ||
LICENSE.valgrind | ||
OWNERS | ||
PRESUBMIT.py | ||
README.md | ||
snapshot_toolchain.gni | ||
WATCHLISTS |
V8 JavaScript Engine
V8 is Google's open source JavaScript engine.
V8 implements ECMAScript as specified in ECMA-262.
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
V8 can run standalone, or can be embedded into any C++ application.
V8 Project page: https://github.com/v8/v8/wiki
Getting the Code
Checkout depot tools, and run
fetch v8
This will checkout V8 into the directory v8
and fetch all of its dependencies.
To stay up to date, run
git pull origin
gclient sync
For fetching all branches, add the following into your remote
configuration in .git/config
:
fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
fetch = +refs/tags/*:refs/tags/*
Contributing
Please follow the instructions mentioned on the V8 wiki.