commit | 4213af64b6b9c9d04be89303169562460d38df84 | [log] [tgz] |
---|---|---|
author | Benedikt Meurer <bmeurer@chromium.org> | Mon Oct 16 16:48:11 2017 |
committer | Commit Bot <commit-bot@chromium.org> | Mon Oct 16 17:27:41 2017 |
tree | 5051f63a8ff2121debd409597f20c78c8ac6cb21 | |
parent | efa038361d7de0debb4a5f536ce12ce3cdb38201 [diff] |
[es2015] Optimize Reflect.has builtin. Port the baseline version of Reflect.has to the CodeStubAssembler and reuse the existing logic for HasProperty (i.e. the HasProperty builtin). Also inline the Reflect.has builtin into TurboFan, by adding a check on the target in front of a use of the JSHasProperty operator. Technically this additional check is not necessary, because the JSHasProperty operator already throws if the target is not a JSReceiver, but the exception message is confusing then. This improves the performance of the micro-benchmark from reflectHasPresent: 337 ms. reflectHasAbsent: 472 ms. to reflectHasPresent: 121 ms. reflectHasAbsent: 216 ms. which is a nice 2.8x improvement in the best case. It also improves the chai test on the web-tooling-benchmark by around 1-2%, which is roughly the expected win (since Reflect.has overall accounts for around 3-4%). Bug: v8:5996, v8:6936, v8:6937 Change-Id: I856183229677a71c19936f06f2a4fc7a794a9a4a Reviewed-on: https://chromium-review.googlesource.com/720959 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#48608}
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
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/*
Please follow the instructions mentioned on the V8 wiki.