Commit Graph

54389 Commits

Author SHA1 Message Date
Toon Verwaest
78c7cf4bec [scanner] Simplify special cases of ScanString
AdvanceUntil always starts at the character after c0_. This means that we
needed to handle first, causing some duplication. Instead of doing that, we can
also just not Advance() before AdvanceUntil, making c0_ a character that's
already handled.

Change-Id: I3e23f62a617b5d607579641fc19b12de4f179e8e
Reviewed-on: https://chromium-review.googlesource.com/c/1491512
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59897}
2019-02-27 12:35:12 +00:00
Peter Wong
f0c90e2f9e Revert "[typedarray] Port TA#subarray and TypedArraySpeciesCreate to Torque"
This reverts commit 19291bfc58.

Reason for revert: https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket.appspot.com/8920369361383698384/+/steps/build/0/steps/compile/0/stdout

ThrowTypeError's method signature changed this morning


Original change's description:
> [typedarray] Port TA#subarray and TypedArraySpeciesCreate to Torque
> 
> Reduces TypedArrayPrototypeSubArray builtin size by 392 bytes:
>   - TFJ Builtin, TypedArrayPrototypeSubArray, 2448 -> 2056
> 
> Small 3-4% perf increase on JSTests/TypedArrays/SubarrayNoSpecies benchmark
> 
> Bug: v8:7161, v8:8906
> Change-Id: Ia2b906a93db7199ca4592c46c40638cca0a33eec
> Reviewed-on: https://chromium-review.googlesource.com/c/1485241
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Simon Zünd <szuend@chromium.org>
> Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
> Cr-Commit-Position: refs/heads/master@{#59894}

TBR=peter.wm.wong@gmail.com,jgruber@chromium.org,petermarshall@chromium.org,szuend@chromium.org

Change-Id: Ic0eaa07e57df3c365b52fb3c5de8eb7c3d9f71e9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7161, v8:8906
Reviewed-on: https://chromium-review.googlesource.com/c/1491532
Reviewed-by: Peter Wong <peter.wm.wong@gmail.com>
Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
Cr-Commit-Position: refs/heads/master@{#59896}
2019-02-27 12:22:34 +00:00
Michael Achenbach
92c282280b [build] Switch off goma on new gcc builders
TBR=sergiyb@chromium.org
NOTRY=true

Bug: chromium:933093
Change-Id: I7728b81a48da401d65f63b0450df4119bd04d0f8
Reviewed-on: https://chromium-review.googlesource.com/c/1491515
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59895}
2019-02-27 12:19:12 +00:00
peterwmwong
19291bfc58 [typedarray] Port TA#subarray and TypedArraySpeciesCreate to Torque
Reduces TypedArrayPrototypeSubArray builtin size by 392 bytes:
  - TFJ Builtin, TypedArrayPrototypeSubArray, 2448 -> 2056

Small 3-4% perf increase on JSTests/TypedArrays/SubarrayNoSpecies benchmark

Bug: v8:7161, v8:8906
Change-Id: Ia2b906a93db7199ca4592c46c40638cca0a33eec
Reviewed-on: https://chromium-review.googlesource.com/c/1485241
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
Cr-Commit-Position: refs/heads/master@{#59894}
2019-02-27 12:17:23 +00:00
Nathan Rogers
5758788c92 [platform] Spell Fuchsia correctly in comments
Change-Id: I7e73b1f9cd81c91b5399f1cd01eb3bd6766025d5
Reviewed-on: https://chromium-review.googlesource.com/c/1490601
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Nathan Rogers <nathanrogers@google.com>
Cr-Commit-Position: refs/heads/master@{#59893}
2019-02-27 11:49:13 +00:00
Michael Starzinger
4c60e6b6ac [wasm] Support runtime functions in (de)serializer.
R=ahaas@chromium.org
TEST=mjsunit/regress/wasm/regress-8896
BUG=v8:8896

Change-Id: Id942b95ac05226206a08f0a5e516b9072a1a7f6f
Reviewed-on: https://chromium-review.googlesource.com/c/1491220
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59892}
2019-02-27 11:32:42 +00:00
Andreas Haas
ee32528975 [wasm] Update spec tests
The spec repo version in DEPS now gets updated automatically by the
autoroller, but we still have to update the spec tests manually because
it requires ocaml. Updating the core spec tests is what this CL does.

There is a bug to also do this update automatically. It's on Sergiy's
list but does not have the highest priority.

R=titzer@chromium.org

Change-Id: I65085dcbca93d41d9f12c5ba227130197ebd203f
Reviewed-on: https://chromium-review.googlesource.com/c/1491219
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59891}
2019-02-27 10:42:02 +00:00
Tobias Tebbi
0d0c910720 [torque] do not generate field offsets for internal classes
Bug: v8:7793
Change-Id: I503622356746acbeaaeca88ce5bacf7ab9c93ab8
Reviewed-on: https://chromium-review.googlesource.com/c/1491215
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59890}
2019-02-27 10:29:12 +00:00
Mike Stanton
5c05165d42 [Torque] Make Throw*Error() take context implicitly
Change-Id: I5f0d915351c24b9a2916b8ab1d4bafb4d7eb21c7
Reviewed-on: https://chromium-review.googlesource.com/c/1491217
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59889}
2019-02-27 10:11:18 +00:00
Sergiy Belozorov
4422cc44d8 [tools] Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:929126
Change-Id: I7f3bda2172ecf78db942b3de86920d8ddd69769b
Reviewed-on: https://chromium-review.googlesource.com/c/1491216
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59888}
2019-02-27 10:00:02 +00:00
Jakob Gruber
71d29f7892 [nojit] Don't flush the icache in jitless mode
We don't allocate executable memory in jitless mode hence there's no
need to flush the icache.

Bug: v8:7777
Change-Id: I70a1884e6c9f11405465f5741f2eccd4f7a273fb
Reviewed-on: https://chromium-review.googlesource.com/c/1488765
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59887}
2019-02-27 09:43:22 +00:00
Maya Lekova
226adea450 [cleanup] Refactor out enums from debug-interface.h
Moved CoverageMode and TypeProfileMode enums to interface-types.h
to save one include in isolate.h. This reduces the expanded lines of code
count by ~45k.

Bug: v8:8834

R=yangguo@chromium.org

Change-Id: I399fe8cf66b1aec79bcb5831afd46a74e358244d
Reviewed-on: https://chromium-review.googlesource.com/c/1489072
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59886}
2019-02-27 08:56:48 +00:00
Benedikt Meurer
834c4b3568 [turbofan] Always pass the right arity to calls.
We didn't update the arguments count properly when changing the JSCall
node to a direct Call node.

Bug: chromium:936302, v8:8895
Change-Id: I59a39a07e41151d8eaa2e1a1ea7b1835e00fb501
Reviewed-on: https://chromium-review.googlesource.com/c/1491191
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59885}
2019-02-27 08:40:58 +00:00
tzik
a32e37edac Reland "Do not enqueue or run a microtask on detached contexts"
This is a reland of 734a657522

Original change's description:
> Do not enqueue or run a microtask on detached contexts
>
> This CL disables EnqueueMicrotask and RunMicrotasks on detached
> contexts. That is, if an embedder call DetachGlobal() on a v8::Context,
> EnqueueMicrotask on that context will not take effect, and all Microtask
> that is enqueued before DetachGlobal will be cancelled.
>
> On Blink, this implies that a frame will no longer run a microtask after
> it's navigated away. OTOH, detached frames in Blink are not affected.
>
> Bug: v8:8124
> Change-Id: I5b00ceef5ea2afb87cf067a65eb95c29bf91176d
> Reviewed-on: https://chromium-review.googlesource.com/c/1416071
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Adam Klein <adamk@chromium.org>
> Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59445}

Tbr: adamk@chromium.org, yangguo@chromium.org, verwaest@chromium.org
Bug: v8:8124
Change-Id: I959a18ae214f1385d5f453b3ed94772e60f71e0f
Reviewed-on: https://chromium-review.googlesource.com/c/1469544
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59884}
2019-02-27 04:57:07 +00:00
v8-ci-autoroll-builder
7cee0fad6d Update V8 DEPS.
Rolling v8/build: ebd384a..7cd7119

Rolling v8/test/wasm-js/data: 4da0540..44dfa15

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/a4323c9..f610057

Rolling v8/third_party/depot_tools: 95ea36e..be28670

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Change-Id: If1a818f05981ae7b58c117498fef2829ebbd909f
Reviewed-on: https://chromium-review.googlesource.com/c/1490598
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#59883}
2019-02-27 04:18:57 +00:00
Alexei Filippov
ea8056ff21 [inspector] Fix js_protocol.pdl build dependency
The master protocol description file is js_protocol.pdl, not .json

TBR=yangguo@chromium.org

Change-Id: Ibaef314a63c3e1665ed56bc8c66ca18a00c7fd4f
Reviewed-on: https://chromium-review.googlesource.com/c/1489976
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Alexei Filippov <alph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59882}
2019-02-26 23:56:17 +00:00
Benedikt Meurer
07ee7eadd4 [x64] Teach ArgumentsAdaptorTrampoline about is_safe_to_skip_adapt_arguments.
This adds support for dynamically checking the newly introduced
is_safe_to_skip_adapt_arguments flag on the SharedFunctionInfo inside
the ArgumentsAdaptorTrampoline builtin, so that if there's an arguments
mismatch, but said bit is set, we can just massage the current stack
frame according to the SharedFunctionInfo and don't need to create an
arguments adaptor frame.

This improves the general (baseline) performance of calls with arguments
mismatches by up to 35%, as can be seen with the test case from the tracking
bug, which goes from around

  callUnderApplication: 608 ms.
  callOverApplication1: 633 ms.
  callOverApplication2: 635 ms.

to

  callUnderApplication: 390 ms.
  callOverApplication1: 439 ms.
  callOverApplication2: 443 ms.

when the TurboFan fast-path (that was previously introduced) is forcibly
disabled. That's a pretty solid baseline improvement and there's probably
still some room for further improvement (i.e. avoid loading the SFI multiple
times, etc.).

Drive-by-fix: Refactor and cleanup the ArgumentsAdaptorTrampoline
builtin a bit to make it more efficient and easier to read (it's still
pretty messy, but I don't wanna change too many things at once).

This is only the initial x64 port, since for ia32 we're really short on
registers and it might not even pay off (initial prototype shows a lot
less performance impact). The arm and arm64 port is in progress and will
land once ready.

Bug: v8:8834, v8:8895
Change-Id: I2e1c8e4767a808a43b932487fdedc0e44cdd35c5
Reviewed-on: https://chromium-review.googlesource.com/c/1488751
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59881}
2019-02-26 21:41:04 +00:00
Sergey Ulanov
47210f480f [Fuchsia] Always call zx_vmo_replace_as_executable() in OS::Allocate()
OS::Allocate() previously was calling zx_vmo_replace_as_executable()
when executable access is requested. This breaks the case when the
OS::SetPermission() is called to mark that memory as executable later.
Updated it to call zx_vmo_replace_as_executable() for all VMOs.

This solution is not ideal, but it's consistent with other platforms,
so it's acceptable short-term.

Bug: v8:8899, chromium:934582
Change-Id: Ifeb818c93d8b9c80e73a057f5e6f3ca5a7b1c23f
Reviewed-on: https://chromium-review.googlesource.com/c/1483613
Reviewed-by: Wez <wez@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59880}
2019-02-26 20:54:04 +00:00
Sigurd Schneider
8337a29b0a [cctest] Disable flaky test
TBR=petermarshall@chromium.org

Change-Id: I663735761c4ae730337b1381b52c99371eae2951
Notry: true
Bug: v8:5193
Reviewed-on: https://chromium-review.googlesource.com/c/1489084
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59879}
2019-02-26 17:15:18 +00:00
Peter Marshall
0321a09f86 [cpu-profiler] Disable another test that fails on Windows.
This one fails on Windows.

Bug: v8:5193
Change-Id: Ib028f8d7aa8a2d69a7324f9fcc6c5d03bc6f368c
Notry: true
Reviewed-on: https://chromium-review.googlesource.com/c/1489081
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59878}
2019-02-26 16:37:24 +00:00
Sigurd Schneider
57c5a4c2ca [cleanup] Remove unnecessary include
R=mslekova@chromium.org

Bug: v8:8834
Change-Id: I51ff4441a80fd92bbdf400b5b92ff2d399250864
Reviewed-on: https://chromium-review.googlesource.com/c/1489077
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59877}
2019-02-26 15:54:51 +00:00
Peter Marshall
150e87c51e [cpu-profiler] Disable another failing test on ARM simulator
This one still fails too, whoops.

Bug: v8:5193
Change-Id: I07c0e55c8a1ca59311e0110c851b38bd9028c20f
Notry: true
Reviewed-on: https://chromium-review.googlesource.com/c/1489079
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59876}
2019-02-26 15:48:19 +00:00
Sigurd Schneider
31a8f21576 [cleanup] Move ZoneSplayTree to its own header
Change-Id: I4bd02bdb68727b6242b0fe4b81fd522813b13f39
Bug: v8:8834
Reviewed-on: https://chromium-review.googlesource.com/c/1488755
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59875}
2019-02-26 15:39:39 +00:00
Peter Marshall
1ad4d1878a [cpu-profiler] Disable failing test on ARM simulator
This one still fails, whoops.

Bug: v8:5193
Notry: true
Change-Id: Icd7ac2931e08efd176f0d37aea07c9bf30991d9b
Reviewed-on: https://chromium-review.googlesource.com/c/1489078
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59874}
2019-02-26 15:31:19 +00:00
Peter Marshall
db1cbe5d05 [cpu-profiler] Enable previously flaky tests
I can't reproduce any of these flakes anymore on windows or linux.
Some are confirmed fixed with the same root cause as crbug.com/v8/8883.
Others are not reproducible anymore and were probably fixed by other
de-flaking and bugfixes in the last 6 months.

Bug: v8:5193, v8:7054
Change-Id: I23ce47a98f11f3637ccf4baf01ffab5c461a0ebd
Reviewed-on: https://chromium-review.googlesource.com/c/1489074
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59873}
2019-02-26 15:07:49 +00:00
Michael Achenbach
2e6ab9fc30 [test] Don't test jitless without embedded-builtins
NOTRY=true

Bug: v8:8889
Change-Id: I1faf4bcb8f573485915a8b79d551fbb4985a02a0
Reviewed-on: https://chromium-review.googlesource.com/c/1489075
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59872}
2019-02-26 14:33:01 +00:00
Benedikt Meurer
066e2a2d79 [turbofan] Properly thread through the feedback for HeapObject checks.
We somehow forgot to thread through the VectorSlotPair for the CALL_IC
based speculation feedback to CheckedTaggedToTaggedPointer. This was
showing for example with `String#concat()` where we ended up with an
endless deoptimization loop if the parameter was a Smi.

Bug: v8:8913
Change-Id: I84d90403f6fada9b435d4eb71c689edc3c34dc86
Reviewed-on: https://chromium-review.googlesource.com/c/1488770
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59871}
2019-02-26 14:19:49 +00:00
tzik
334510a994 Use handler's context on Promise resolution
V8 used to use the microtask context when it runs EnqueueJob
step 2.
> Let job settings be some appropriate environment settings object.
https://html.spec.whatwg.org/multipage/webappapis.html#enqueuejob(queuename,-job,-arguments)

However, it's being updated to use the handler's context.
https://github.com/whatwg/html/issues/1426#issuecomment-340071080

Change-Id: I24840a28ef2c903539fe4ace74ae59da290f5109
Reviewed-on: https://chromium-review.googlesource.com/c/1465902
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59870}
2019-02-26 14:11:29 +00:00
Yang Guo
399a6f53ce Disallow JS during GC
R=mlippautz@chromium.org

Change-Id: Ic1d2fce007ddcb72f56ad257032e434c575a3f8d
Reviewed-on: https://chromium-review.googlesource.com/c/1456104
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59869}
2019-02-26 13:22:34 +00:00
Allan Sandfeld Jensen
385aa80aff Correct removal of redundant moves
The logic for removing while iterating is non-standard and
a left over from a previous index based loop. This patch
replaces it with a standard erase based version.

This fixes a runtime crash with MSVC that invalidates the
iterator and then asserts. This also makes the code safe
in case the last move can be redundant.

Change-Id: Ie6990e0d65a3b83a4b7da3e2e89ed4e60a6cd215
Reviewed-on: https://chromium-review.googlesource.com/c/1488762
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59868}
2019-02-26 13:21:28 +00:00
Igor Sheludko
561aaa3066 [cleanup] Fix signature of RawMachineAssembler::Comment()
Bug: v8:8834
Change-Id: I4d57b15f2d5058511a2c474897a52cac236a6a00
Reviewed-on: https://chromium-review.googlesource.com/c/1488767
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59867}
2019-02-26 13:16:38 +00:00
Toon Verwaest
acfe59212a [preparser] Split GetSymbol into GetSymbol and GetIdentifier
GetSymbol previously always internalized the underlying string, even if the
preparser does not need it. The most common case where this isn't needed is
property name parsing. This seems to speed up preparsing quite a bit.

For future reference: Property names in object literals still are needed due to
various checks (e.g., get 'constructor', duplicate __proto__, ...); as well as
cover grammar parsing (property names can turn into variable references). If we
turn all strings that the preparser needs to identify back into contextual
keywords we may be able to avoid the former.

Change-Id: I549e4600053de3136ca08d4915cc04db36d66a89
Reviewed-on: https://chromium-review.googlesource.com/c/1488764
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59866}
2019-02-26 13:09:48 +00:00
Simon Zünd
b95550e82b [torque] Add NameExpression to get SourcePositions for identifiers
This CL introduces a new expression that can replace "std::string"
fields in other expressions. The main goal is to get SourcePositions
for identifiers to make them available in the language server.

The CL introduces a separate symbol "name", that allows to
incrementellay replace strings with name expression where needed. As
an example, variable delcarations now use a NameExpression for the
variable name.

R=danno@chromium.org, tebbi@chromium.org

Bug: v8:7793
Change-Id: I5b88bbaeac597b8e9760d2e01880e5e599ebf802
Reviewed-on: https://chromium-review.googlesource.com/c/1488752
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59865}
2019-02-26 12:48:58 +00:00
Igor Sheludko
cfdf421852 [cleanup] Remove ExternalReference::fixed_typed_array_base_data_offset
... which always contains constant value.

Bug: v8:8834
Change-Id: I27af24d07371b112d48eaab4d3a782a74af5fb20
Reviewed-on: https://chromium-review.googlesource.com/c/1487611
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59864}
2019-02-26 12:47:48 +00:00
Georg Neis
6070e74d8c [turbofan] Preprocess feedback for ElementAccessInfo computation.
When --concurrent_inlining is on, precompute (during serialization)
the list of receiver maps and the transition matrix of element
accesses.

Bug: v8:7790
Change-Id: I257eaea630f33831ab6600851ccdf297e17e35ca
Reviewed-on: https://chromium-review.googlesource.com/c/1475769
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59863}
2019-02-26 12:37:47 +00:00
Jaroslav Sevcik
0686bf7ba3 Reduce scope of optimizing compiler dispatcher's output queue guard
... as suggested by the bug's reporter.

Bug: chromium:935358
Change-Id: Iab9d207e4f55a395d0496ef5d5ea0e9b6783ae66
Reviewed-on: https://chromium-review.googlesource.com/c/1488757
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59862}
2019-02-26 11:46:06 +00:00
Yang Guo
8c9fe2d8a1 Use null prototype for extras binding and utils objects
R=bmeurer@chromium.org

Bug: chromium:934201
Change-Id: I73048fef3afea5d06be88a2768d77f7e349daef5
Reviewed-on: https://chromium-review.googlesource.com/c/1488760
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59861}
2019-02-26 11:41:56 +00:00
Toon Verwaest
c47a8f63f3 [preparser] Avoid name.string_ nullptr check in failure mode
By making EmptyIdentifierString (used for failure-mode parsing) point to the
empty_string() we can drop nullptr checks in the preparser. This is similar to
what the parser already does.

Change-Id: I4640f7ae6b24afc8d5275818caed0cca185ca72c
Reviewed-on: https://chromium-review.googlesource.com/c/1488759
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59860}
2019-02-26 11:27:04 +00:00
Michael Achenbach
da138ed927 [build] Prepare renaming gcc builders
We'll remove the gcc version from the builder name in a follow up.

TBR=sergiyb@chromium.org
NOTRY=true

Bug: chromium:933093
Change-Id: I65359afd7245f155f7d1fd0519033ab8f8f736bb
Reviewed-on: https://chromium-review.googlesource.com/c/1488758
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59859}
2019-02-26 11:08:24 +00:00
Toon Verwaest
dcd70aa177 [parser] Use ScopedPtrLists for temporary lists in DesugarLexicalBindingsInForStatement
That way we can avoid allocating unreusable zone memory.

Change-Id: I0f30cbf5133026c63a9729bc45e728daa4740e9f
Reviewed-on: https://chromium-review.googlesource.com/c/1488756
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59858}
2019-02-26 10:54:34 +00:00
Sigurd Schneider
d2729be4ae Revert "Optimize in operator"
This reverts commit 32fc0acfef.

Reason for revert:

https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Linux%2064/30270

layout test breakage:

https://test-results.appspot.com/data/layout_results/V8-Blink_Linux_64/30270/webkit_layout_tests%20%28with%20patch%29/layout-test-results/results.html

There is a dead node arriving in representation selection, which might indicate that the problem is not in this CL, but that this CL stirs up the node soup in such a way that dead code elimination gets confused.

Original change's description:
> Optimize `in` operator
> 
> This change implements optimizations for the `in` operator for packed array
> elements and object properties. It adds a new feedback slot kind and an IC
> path similar to KeyedLoadIC for handling the lookups. TurboFan uses the
> feedback to optimize based on the maps and keys.
> 
> For more details see:
> https://docs.google.com/document/d/1tIfzywY8AeNVcy_sen-5Xev21MeZwjcU8QhSdzHvXig
> 
> This can provide 10x performance improvements of on loops of the form:
> 
>     for (let i = 0; i < ary.length; ++i) {
>       if (i in ary) {
>         ...
>       }
>     }
> 
> 
> Bug: v8:8733
> Change-Id: I766bf865a547a059e5bce5399bb6112e5d9a85c8
> Reviewed-on: https://chromium-review.googlesource.com/c/1432598
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Matt Gardner <magardn@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#59843}

TBR=ulan@chromium.org,rmcilroy@chromium.org,jkummerow@chromium.org,jarin@chromium.org,ishell@chromium.org,bmeurer@chromium.org,verwaest@chromium.org,magardn@microsoft.com

Change-Id: Ib2db974e5bed4c4a2b6b450f796bdc4b0b8fd562
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8733
Reviewed-on: https://chromium-review.googlesource.com/c/1488761
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59857}
2019-02-26 10:40:26 +00:00
Michael Starzinger
f94cd449e4 [wasm] Flip section code for exception and data-count.
This flips the section codes for the exception section (part of the
exception handling proposal) and the data-count section (part of the
bulk memory proposal).

Also see the following discussions for the underlying motivation:
https://github.com/WebAssembly/bulk-memory-operations/pull/42
https://github.com/WebAssembly/exception-handling/issues/70

R=binji@chromium.org
BUG=v8:8868

Change-Id: I9f5f524e7aec067720346a5bb8d45c7c80a4c7a2
Reviewed-on: https://chromium-review.googlesource.com/c/1478207
Reviewed-by: Ben Smith <binji@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59856}
2019-02-26 10:38:42 +00:00
Georg Neis
5ac4f47405 Add .ccls-cache to .gitignore
This directory is created by ccls (language server for C++ and others).

R=sigurds@chromium.org

Change-Id: I2413921ca896ad2003fcfd10fdadb739f1af18c8
Reviewed-on: https://chromium-review.googlesource.com/c/1487151
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59855}
2019-02-26 10:32:45 +00:00
Sigurd Schneider
4b6b8cf610 [cleanup] Start cleaning up utils.h
Remove EmbeddedVector from utils.h

Bug: v8:8834, v8:8912
Change-Id: I04e9f12121757bd0b87c68d7a4a5b213c2d8b686
Reviewed-on: https://chromium-review.googlesource.com/c/1486473
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59854}
2019-02-26 10:22:05 +00:00
Sergiy Belozorov
c89c54ef7a Update V8 DEPS.
Rolling v8/build: 9f11dc3..ebd384a

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Change-Id: I1cb46f5fdd1604f0beb509e18a1bda31bbe8a2e1
Reviewed-on: https://chromium-review.googlesource.com/c/1485245
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59853}
2019-02-26 10:18:14 +00:00
Michael Starzinger
85b4ec5090 [wasm] Fix {StreamingDecoder} to reject multiple code sections.
R=ahaas@chromium.org
TEST=mjsunit/regress/wasm/regress-935138
BUG=chromium:935138

Change-Id: I73465e0edcdfcd33b96764ffaf5f33519e424bb8
Reviewed-on: https://chromium-review.googlesource.com/c/1486471
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59852}
2019-02-26 09:59:44 +00:00
Michael Achenbach
fa07eba873 [test] Switch gcc testing to Xenial
NOTRY=true
TBR=sergiyb@chromium.org

Bug: chromium:933093
Change-Id: I48236ef06c990526b72be418773d0a098c85178f
Reviewed-on: https://chromium-review.googlesource.com/c/1488754
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59851}
2019-02-26 09:45:14 +00:00
Georg Neis
bbba0c4d9e [runtime] Remove redundant empty-string check in lookup iterator
Change-Id: I2d5b54c88bece3e22c4ae25d7fba094647f64f52
Reviewed-on: https://chromium-review.googlesource.com/c/1487051
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59850}
2019-02-26 09:14:04 +00:00
Matt Gardner
73d16d9ad8 Remove obsolete MSVC 10.0 workaround for std::floor
MSVC 14.x and 15.x handle -0 correctly unless /fp:fast is used. /fp:precise
is the default.


bug: v8:3477, v8:8912
Change-Id: I242a1dfd845f750cab7c56f13107612259d44d23
Reviewed-on: https://chromium-review.googlesource.com/c/1487414
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59849}
2019-02-26 08:28:13 +00:00
Simon Zünd
45dfb6c340 [torque-ls] Implement basic Json parser for the language server
This CL contains a basic Json parser used to read and write the
Json-RPC messages of the language server protocol.

This CL is part of the initial language server implementation but
submitted separately for easier review.

R=tebbi@chromium.org

Bug: v8:8880
Change-Id: Icea040975e1ed1d587954c3342d8d876e01c26b8
Reviewed-on: https://chromium-review.googlesource.com/c/1479956
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59848}
2019-02-26 07:38:03 +00:00