65f4716b3f
The bad scenario this fix handles: We have a slot in a free list, then promote the object pointed-to by the slot during scavenge. When allocating the space for the promoted object, we overwrite the slot with the free list entry map if the object is allocated just before the slot. After the allocation, ScavengingVisitor::PromoteObject overwrites the slot with the address of the allocated object, thus corrupting the free list. Unfortunately, we do not have a way to construct a reliable repro case because we would need to somehow craft a free list and store buffer slot to be in the right configuration. R=hpayer@chromium.org BUG= Review URL: https://codereview.chromium.org/695213004 Cr-Commit-Position: refs/heads/master@{#25143} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 |
||
---|---|---|
benchmarks | ||
build | ||
include | ||
samples | ||
src | ||
test | ||
testing | ||
tools | ||
.clang-format | ||
.DEPS.git | ||
.gitignore | ||
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
V8 Git repository: https://chromium.googlesource.com/v8/v8.git GitHub mirror: https://github.com/v8/v8-git-mirror
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/*