Go to file
Jakob Gruber 1e2b9c5ec9 [compiler] Use kAssumeMemoryFence in two critical ref creation spots
Using kAssumeMemoryFence works around the fact that the graph stores
handles (and not refs). The assumption is that any handle inserted
into the graph is safe to read; but we don't preserve the reason why
it is safe to read. Thus we must over-approximate here and assume the
existence of a memory fence.

Note this is only valid if all spots that insert handles into the
graph ensure that the handle can safely be read.

In the future, we should consider having the graph store ObjectRefs or
ObjectData pointer instead, which would make new ref construction here
unnecessary.

Bug: v8:7790,chromium:1209798
Change-Id: Ic22340ea9f34a24be530a3c62c8309d25e108f3f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2902742
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74653}
2021-05-19 07:37:48 +00:00
.github [github] Close PRs created on the V8 GitHub mirror automatically 2021-01-12 08:39:59 +00:00
build_overrides [build] Remove obsolete gn flag 2021-01-11 15:50:59 +00:00
custom_deps
docs
gni Make Google benchmark dependency a default 2021-04-21 12:19:40 +00:00
include [fastcall] Store multiple CFunction overloads in FunctionTemplateInfo 2021-05-18 16:49:27 +00:00
infra [build] Use lld in gcc builds 2021-05-10 11:33:33 +00:00
samples Reland "[api] Add v8::Isolate::ThrowError helper" 2021-04-16 11:48:05 +00:00
src [compiler] Use kAssumeMemoryFence in two critical ref creation spots 2021-05-19 07:37:48 +00:00
test [wasm-gc] Implement br_on_cast_fail 2021-05-19 07:10:48 +00:00
testing build: Remove no-op calls to set_sources_assignment_filter 2020-10-08 14:44:01 +00:00
third_party Roll inspector_protocol to 35e8d2d89cb017d72cf905362672de77c978e1e 2021-05-15 01:24:37 +00:00
tools [tools] Add --concurrent-inlining entry in variants.py 2021-05-19 07:07:28 +00:00
.clang-format
.clang-tidy
.editorconfig
.flake8
.git-blame-ignore-revs
.gitattributes
.gitignore [build] Remove legacy binutils 2021-01-08 12:33:31 +00:00
.gn [infra] Force Python 3 to be used in build. 2021-05-11 12:04:34 +00:00
.vpython
.ycm_extra_conf.py
AUTHORS Implementation of the branch hinting proposal for WebAssembly. 2021-05-14 13:40:57 +00:00
BUILD.gn [build] Move fix-runtime-macro-shims.h into v8_internal_headers 2021-05-18 12:24:07 +00:00
CODE_OF_CONDUCT.md
codereview.settings
COMMON_OWNERS Remove petermarshall from OWNERS 2021-03-31 11:00:22 +00:00
DEPS Update V8 DEPS. 2021-05-19 03:41:28 +00:00
DIR_METADATA Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
ENG_REVIEW_OWNERS Update ENG_REVIEW_OWNERS 2021-02-25 14:28:32 +00:00
INFRA_OWNERS Add team members as owners 2020-08-18 08:29:04 +00:00
INTL_OWNERS add ftang as owner 2020-04-24 19:19:36 +00:00
LICENSE
LICENSE.fdlibm
LICENSE.strongtalk
LICENSE.v8
MIPS_OWNERS [mips] Request to be an owner of MIPS files 2020-11-23 09:43:49 +00:00
OWNERS [WATCHLISTS] Add a watchlist for regexp 2021-05-18 19:00:57 +00:00
PPC_OWNERS Adding myself to relevant OWNERS files. 2020-11-02 16:37:28 +00:00
PRESUBMIT.py [bigint] Move multiplication to src/bigint/ 2021-04-19 15:40:43 +00:00
README.md
RISCV_OWNERS [riscv64] Change one of the owners for RISCV. 2021-04-20 14:39:26 +00:00
S390_OWNERS Adding myself to relevant OWNERS files. 2020-11-02 16:37:28 +00:00
WATCHLISTS [WATCHLISTS] Add a watchlist for regexp 2021-05-18 19:00:57 +00:00

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://v8.dev/docs

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 at v8.dev/docs/contribute.