Go to file
bmeurer 1915762cc8 [turbofan] Remove special JSForInStep and JSForInDone.
These JavaScript operators were special hacks to ensure that we always
operate on Smis for the magic for-in index variable, but this never
really worked in the OSR case, because the OsrValue for the index
variable didn't have the proper information (that we have for the
JSForInPrepare in the non-OSR case).

Now that we have loop induction variable analysis and binary operation
hints, we can just use JSLessThan and JSAdd instead with appropriate
Smi hints, which handle the OSR case by inserting Smi checks (that are
always true). Thanks to OSR deconstruction and loop peeling these Smi
checks will be hoisted so they don't hurt the OSR case too much.

Drive-by-change: Rename the ForInDone bytecode to ForInContinue, since
we have to lower it to JSLessThan to get the loop induction variable
goodness.

R=epertoso@chromium.org
BUG=v8:5267

Review-Url: https://codereview.chromium.org/2289613002
Cr-Commit-Position: refs/heads/master@{#38968}
2016-08-29 08:47:33 +00:00
benchmarks
build_overrides [gn] Switch off java targets for v8 standalone 2016-07-26 14:15:31 +00:00
docs [Docs] Removed unused docs because they are moved to GitHub 2015-11-19 10:23:30 +00:00
gni [swarming] Remove hard-coded shared library configs 2016-07-28 07:18:15 +00:00
gypfiles Reland of Fix compiler warnings on "make android_arm" (patchset #1 id:1 of https://codereview.chromium.org/2286163002/ ) 2016-08-28 21:03:32 +00:00
include [api] Improve documentation for NamedPropertyGetterCallback. 2016-08-26 17:14:15 +00:00
infra [gn] Switch tsan to gn 2016-08-05 11:55:23 +00:00
samples Provide a convenience array buffer allocator 2016-06-29 07:42:40 +00:00
src [turbofan] Remove special JSForInStep and JSForInDone. 2016-08-29 08:47:33 +00:00
test [turbofan] Remove special JSForInStep and JSForInDone. 2016-08-29 08:47:33 +00:00
testing Use GTEST_LANG_CXX11 in V8 2016-07-25 13:06:42 +00:00
third_party/binutils Update binutils version to match Chromium. 2016-07-08 07:03:29 +00:00
tools [turbofan] Tests for inlining calls, constructors, property access inside try..catch..finally. 2016-08-25 12:50:48 +00:00
.clang-format [formatting] Remove the formatting requirement for 2 empty lines between declarations. 2016-01-25 09:50:17 +00:00
.gitignore Reland [inspector] add inspector protocol parser test build target. 2016-08-01 05:42:37 +00:00
.gn Remove NaCl support. 2016-07-27 07:50:31 +00:00
.ycm_extra_conf.py Use C++11 / gnu++11, not 0x 2016-03-22 15:24:43 +00:00
AUTHORS Solaris/OpenBSD/FreeBSD: [heap] Uncommit unused large object page memory. 2016-08-16 12:00:53 +00:00
BUILD.gn [turbofan] Remove the unused asm.js types from TypeCache. 2016-08-29 06:13:00 +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 Revert of Update V8 DEPS. (patchset #1 id:1 of https://codereview.chromium.org/2276833002/ ) 2016-08-24 08:37:30 +00:00
LICENSE Updates to the license information of third party components. 2015-06-16 12:37:50 +00:00
LICENSE.fdlibm Add LICENSE.fdlibm for all the fdlibm imported sources. 2016-06-09 07:17:03 +00:00
LICENSE.strongtalk
LICENSE.v8
LICENSE.valgrind
Makefile Remove NaCl support. 2016-07-27 07:50:31 +00:00
Makefile.android [build] Fix d8-for-Android builds 2016-05-20 12:10:45 +00:00
OWNERS Adding some wasm committers to top level OWNERS. 2016-06-28 16:28:06 +00:00
PRESUBMIT.py Enable check for non-gender neutral pronouns 2016-06-23 07:15:18 +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 Use clang for snapshot_toolchain by default, except on ChromeOS. 2016-08-23 14:04:27 +00:00
WATCHLISTS Remove myself from v8 WATCHLISTS 2016-07-04 14:45:04 +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.