Go to file
zhengxing.li 4a6f15124f X87: [turbofan] Don't use the CompareIC in JSGenericLowering.
port d00da47b61462681b48e48bdff4a80a33da1a6d6(r34335)

  original commit message:
  The CompareICStub produces an untagged raw word value, which has to be
  translated to true or false manually in the TurboFan code. But for lazy
  bailout after the CompareIC, we immediately go back to fullcodegen or
  Ignition with the raw value, to a location where both fullcodegen and
  Ignition expect a boolean value, which might crash or in the worst case
  (depending on the exact computation inside the CompareIC) could lead to
  arbitrary memory access.

  Short-term fix is to use the proper runtime functions (unified with the
  interpreter now) for comparisons. Next task is to provide optimized
  versions of these based on the CodeStubAssembler, which can then be used
  via code stubs in TurboFan or directly in handlers in the interpreter.

BUG=

Review URL: https://codereview.chromium.org/1744923002

Cr-Commit-Position: refs/heads/master@{#34372}
2016-03-01 02:37:12 +00:00
benchmarks Revert "Refactoring: Make gtest testsuite the default." 2014-09-02 09:17:26 +00:00
build [Swarming] Switch off test isolation check by default. 2016-02-25 12:55:41 +00:00
docs [Docs] Removed unused docs because they are moved to GitHub 2015-11-19 10:23:30 +00:00
include [stubs] Introduce a proper ToBooleanStub. 2016-02-29 12:17:26 +00:00
infra [cq] Update configuration. 2016-02-12 14:29:27 +00:00
samples Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
src X87: [turbofan] Don't use the CompareIC in JSGenericLowering. 2016-03-01 02:37:12 +00:00
test [wasm] Add support and unittests for decoding signed LEB128. 2016-02-29 18:42:26 +00:00
testing Converted V8 CQ config to proto-format 2015-05-28 15:02:53 +00:00
third_party/binutils Update binutils version. 2015-08-07 08:09:49 +00:00
tools [api] Assume that v8/include is in the include path for all public headers 2016-02-29 11:03:02 +00:00
.clang-format [formatting] Remove the formatting requirement for 2 empty lines between declarations. 2016-01-25 09:50:17 +00:00
.gitignore [Swarming] Speed up test262 upload/download. 2016-02-19 14:41:29 +00:00
.ycm_extra_conf.py [ycm] The YouCompleteMe configuration is not VIM specific. 2015-02-12 07:21:13 +00:00
AUTHORS Optimize JSON stringifying when replacer and space are falsey. 2016-02-20 07:55:57 +00:00
BUILD.gn [api] Assume that v8/include is in the include path for all public headers 2016-02-29 11:03:02 +00:00
ChangeLog [Release] Update ChangeLog file 2016-02-17 21:29:09 +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-02-27 04:18:38 +00:00
LICENSE Updates to the license information of third party components. 2015-06-16 12:37:50 +00:00
LICENSE.strongtalk Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.v8 Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.valgrind Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
Makefile Add a library suitable for libfuzzer with a small unit test runner shell 2016-01-26 10:39:03 +00:00
Makefile.android Reland [android] Migrate more configs to gyp. 2015-06-26 12:04:09 +00:00
Makefile.nacl Use the pnacl-clang toolchain for (P)NaCL builds 2014-10-06 08:10:50 +00:00
OWNERS Update OWNERS file. 2015-07-16 11:37:51 +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 Map arm64 and mips64el -> x64 for mksnapshot 2015-12-16 15:17:37 +00:00
WATCHLISTS [Interpreter] Make InterpreterAssembler a subclass of CodeStubAssembler. 2016-02-10 16:39:32 +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.