e045b78d8e
The race occurred when Workers were used. Since Workers call Shell::ExecuteString from a different thread, TSAN (correctly) flags this as a racy write. Solution would be to either synchronize the writes, or to 'lift' the write higher up in the call stack and only write the flag from the main thread. This implements this latter solution. These methods call Shell::ExecuteString, but do *not* set script_executed: - ExecuteInThread: Can only occur is JS has already been executed. - Shell::Load: Callback for JS; so JS has already been executed when we get there. - Shell::RunShell: Interactive shell. We no longer need script_executed once we're here. BUG=v8:4330 LOG=N Review URL: https://codereview.chromium.org/1258303004 Cr-Commit-Position: refs/heads/master@{#30003} |
||
---|---|---|
benchmarks | ||
build | ||
include | ||
infra | ||
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/*