Go to file
ulan a6da98d86f Introduce a new phantom weakness type without finalization callback.
Handles of this type are automatically reset by the garbage collector
when their objects are not longer reachable.

The motivation is to reduce pause time of external.weak_global_handles
phase of the garbage collector by not maintaing the list of pending
callbacks and not calling the callbacks.

Local testing on discourse page of the v8.inifinite_scroll benchmark
shows 7x improvement for this GC phase.

Before:
external.weak_global_handles
 len: 21
 min: 0.0
 max: 4.5
 avg: 0.757142857143

After:
external.weak_global_handles
 len: 21
 min: 0.0
 max: 0.5
 avg: 0.109523809524

A follow-up patch will enable the new phantom handles in Chromium.

BUG=chromium:608333
LOG=NO

Review-Url: https://codereview.chromium.org/1950963002
Cr-Commit-Position: refs/heads/master@{#36095}
2016-05-09 07:18:00 +00:00
benchmarks
build_overrides [gn] Initialize gn for stand-alone v8 2016-05-02 15:09:18 +00:00
docs [Docs] Removed unused docs because they are moved to GitHub 2015-11-19 10:23:30 +00:00
gypfiles Turn on -Wmissing-field-initializers on Linux. 2016-05-06 10:20:30 +00:00
include Introduce a new phantom weakness type without finalization callback. 2016-05-09 07:18:00 +00:00
infra [CQ] Raise blink trybot percentage to 100 2016-04-29 09:05:06 +00:00
samples Add GN target for the sample shell 2016-05-06 07:31:06 +00:00
src Introduce a new phantom weakness type without finalization callback. 2016-05-09 07:18:00 +00:00
test Introduce a new phantom weakness type without finalization callback. 2016-05-09 07:18:00 +00:00
testing Converted V8 CQ config to proto-format 2015-05-28 15:02:53 +00:00
third_party/binutils [gn] Move build to gypfiles 2016-04-29 10:11:11 +00:00
tools [tools] Add callstats.html to analize --runtime-call-stats output 2016-05-06 13:24:39 +00:00
.clang-format [formatting] Remove the formatting requirement for 2 empty lines between declarations. 2016-01-25 09:50:17 +00:00
.gitignore Add v8.ignition_dispatches_table.json to .gitignore 2016-05-03 18:12:11 +00:00
.gn [gn] Initialize gn for stand-alone v8 2016-05-02 15:09:18 +00:00
.ycm_extra_conf.py Use C++11 / gnu++11, not 0x 2016-03-22 15:24:43 +00:00
AUTHORS Fix testing of the VEX.L (128/256-bit) flag in the x64 disassembler 2016-04-15 06:24:29 +00:00
BUILD.gn Add GN targets for samples 2016-05-06 10:40:28 +00:00
ChangeLog [Release] Update ChangeLog file 2016-02-17 21:29:09 +00:00
CODE_OF_CONDUCT.md Explicitly state that the Chromium Code of Conduct also applies to V8 2016-03-02 09:51:24 +00:00
codereview.settings Use v8-reviews@ for review mail, so v8-dev@ is free for dev discussions 2015-09-09 08:14:11 +00:00
DEPS Update V8 DEPS. 2016-05-08 03:38:15 +00:00
LICENSE Updates to the license information of third party components. 2015-06-16 12:37:50 +00:00
LICENSE.strongtalk
LICENSE.v8
LICENSE.valgrind
Makefile [build] Fix Makefile based build. 2016-05-02 09:42:11 +00:00
Makefile.android [gn] Move build to gypfiles 2016-04-29 10:11:11 +00:00
Makefile.nacl [gn] Move build to gypfiles 2016-04-29 10:11:11 +00:00
OWNERS [owners] adding more toplevel owners (but mainly me) 2016-03-16 15:54:42 +00:00
PRESUBMIT.py [cq] Automatically use the same bots for git cl try. 2016-01-14 11:15:16 +00:00
README.md [Docs] Removed unused docs because they are moved to GitHub 2015-11-19 10:23:30 +00:00
snapshot_toolchain.gni Revert of Use GCC for snapshot_toolchain when is_clang=false. (patchset #1 id:1 of https://codereview.chromium.org/1809643003/ ) 2016-04-11 08:30:22 +00:00
WATCHLISTS [build] Prepare moving v8.gyp to src/ 2016-04-25 12:20:24 +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://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.