bb13e7f746
Bad scenario: - Enter a binop IC miss handler from optimized code object C from call site S, - From the binop IC, invoke arbitrary javascript that lazy deopts C, so all relocation info is nuked and replaced with lazy deopt entries' reloc info. In particular, there is no reloc info for S. - Still from the arbitrary JavaScript, make IC target's code object move. Note that the call site S is not updated. - Return to the miss handler and inspect the IC's target. This will try to get the target from S, but that is a potentially invalid pointer. It is quite possible that we will have to do a similar fix for other ICs, but we will have to find a reliable repro first. I am not submitting a repro here because it is quite long running and brittle (it relies on code compaction happening while in the binop IC). BUG=v8:3910 LOG=n R=ishell@chromium.org Review URL: https://codereview.chromium.org/958473004 Cr-Commit-Position: refs/heads/master@{#26872} |
||
---|---|---|
benchmarks | ||
build | ||
include | ||
samples | ||
src | ||
test | ||
testing | ||
third_party/binutils | ||
tools | ||
.clang-format | ||
.gitignore | ||
.ycm_extra_conf.py | ||
AUTHORS | ||
BUILD.gn | ||
ChangeLog | ||
codereview.settings | ||
DEPS | ||
LICENSE | ||
LICENSE.strongtalk | ||
LICENSE.v8 | ||
LICENSE.valgrind | ||
Makefile | ||
Makefile.android | ||
Makefile.nacl | ||
OWNERS | ||
PRESUBMIT.py | ||
README.md | ||
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://code.google.com/p/v8/
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/*