8303dc531b
When enabling any coverage mode (other than best-effort), we trigger deoptimization of all functions on the heap. Prior to the recent removal of the weak list of optimized functions [0], we'd unlink optimized code from all relevant JSFunctions during the call to DeoptimizeAll. After the weak-list-removal, this was no longer the case, hence this [1] change which attempts to reset the code object from the SharedFunctionInfo for all found JSFunction objects. But this can create a situation in which JSFunctions are set up incorrectly s.t. they have unoptimized code but no feedback vector. This CL fixes that by leaving JSFunction objects untouched and relying on self-healing mechanisms (CompileLazyDeoptimizedCode) to fix up JSFunction::code. [0] https://crrev.com/f0acede9bb05155c25ee87e81b4b587e8a76f690 [1] https://crrev.com/c/647596/5/src/debug/debug-coverage.cc Bug: chromium:786784, chromium:791940, v8:6637 Change-Id: I13191f4c8800a0d72894b959105189dc09ca693e Reviewed-on: https://chromium-review.googlesource.com/813615 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#49932} |
||
---|---|---|
benchmarks | ||
build_overrides | ||
docs | ||
gni | ||
gypfiles | ||
include | ||
infra | ||
samples | ||
src | ||
test | ||
testing | ||
third_party | ||
tools | ||
.clang-format | ||
.editorconfig | ||
.git-blame-ignore-revs | ||
.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 | ||
Makefile | ||
Makefile.android | ||
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.