Go to file
Z Duong Nguyen-Huu 9ccad33c97 Optimize spread call for sealed, frozen objects
Also add mjsunit test for spread call with non-extensible objects

Micro-benchmark JSTests/ObjectFreeze shows ~7x improvement

Before:
SpreadCall
SpreadCall-Numbers(Score): 239

After:
SpreadCall
SpreadCall-Numbers(Score): 1461

Bug: v8:6831
Change-Id: Icefd89ad790ac159b7f0617d0a012eefd90d3b1d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1614296
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#61669}
2019-05-20 20:36:32 +00:00
benchmarks [benchmarks] Move Array slice benchmarks to js-perf-test 2019-05-20 09:05:52 +00:00
build_overrides Clean up infra owners 2019-05-15 11:18:43 +00:00
custom_deps Clean up infra owners 2019-05-15 11:18:43 +00:00
docs Add OWNERS for docs/ 2019-05-15 12:06:15 +00:00
gni Clean up infra owners 2019-05-15 11:18:43 +00:00
include [cpu-profiler] Implement CPU profiler subsampling/multiplexing 2019-05-15 16:48:27 +00:00
infra [tools] Add arm64 builder MB configs 2019-05-17 13:39:29 +00:00
samples Add OWNERS file for samples/ 2019-05-14 16:55:03 +00:00
src Optimize spread call for sealed, frozen objects 2019-05-20 20:36:32 +00:00
test Optimize spread call for sealed, frozen objects 2019-05-20 20:36:32 +00:00
testing Remove dummy files created for rolling googletest. 2018-03-27 05:55:56 +00:00
third_party [DevTools] Roll inspector_protocol. 2019-05-18 02:08:27 +00:00
tools Revert "[torque] Convert few class layout to torque and updated torque code formatter." 2019-05-18 21:29:56 +00:00
.clang-format
.clang-tidy [tool] Remove unfixed clang-tidy warnings to ease use. 2018-10-26 07:40:32 +00:00
.editorconfig
.git-blame-ignore-revs [build] Add DEPS formatting to hyper-blame 2017-10-09 14:08:45 +00:00
.gitattributes .gitattributes: Mark minified emscripten js files as -diff 2018-09-19 16:27:10 +00:00
.gitignore Add .ccls-cache to .gitignore 2019-02-26 10:32:45 +00:00
.gn v8: Stop setting secondary_source. 2019-05-13 16:06:53 +00:00
.vpython [tools] Implement confidence-based number of runs 2019-05-09 09:42:28 +00:00
.ycm_extra_conf.py [ycm] Switch from gnu++11 to gnu++14 2017-11-27 07:48:21 +00:00
AUTHORS make deleted functions public in include 2019-05-13 07:58:31 +00:00
BUILD.gn [tracing] Use ChromeTracePacket to save binary size with perfetto 2019-05-20 14:32:07 +00:00
ChangeLog [release] Merge ChangeLog back to master 2018-12-07 15:41:59 +00:00
CODE_OF_CONDUCT.md
codereview.settings
COMMON_OWNERS Reland "Move logging and diagnostics related source files" 2019-05-20 09:54:57 +00:00
DEPS Update V8 DEPS. 2019-05-20 03:36:08 +00:00
ENG_REVIEW_OWNERS Add eng review owners as escalation path 2019-05-15 19:12:10 +00:00
INFRA_OWNERS Clean up infra owners 2019-05-15 11:18:43 +00:00
LICENSE [wasm] Draft version of C/C++ Wasm API 2019-04-17 16:00:26 +00:00
LICENSE.fdlibm
LICENSE.strongtalk
LICENSE.v8
LICENSE.valgrind
OWNERS Add eng review owners as escalation path 2019-05-15 19:12:10 +00:00
PRESUBMIT.py Reland "Move logging and diagnostics related source files" 2019-05-20 09:54:57 +00:00
README.md [docs] Change links from old wiki to v8.dev 2019-03-07 12:13:30 +00:00
snapshot_toolchain.gni Move snapshot_toolchain.gni to gni/ 2019-05-15 11:07:24 +00:00
WATCHLISTS Update WATCHLIST wrt yangguo 2018-11-23 08:29:12 +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.