Commit Graph

59878 Commits

Author SHA1 Message Date
Liviu Rau
c6742529c3 [goma] Whitespace to trigger builders
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: Iae100d8f9676f2f387d915ab6e70fa31d7ad30af
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955551
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65386}
2019-12-09 11:34:19 +00:00
Dominik Inführ
56f56df6bb [heap] Reland: Reduce size of possibly empty buckets
Before this CL a byte was used per bucket to store whether the bucket
is possibly empty or not. This CL changes this such that each bucket
only needs a single bit.

PossiblyEmptyBuckets is now a word in the page header. If more bits
are needed than fit into a single word, an external bitmap is
allocated using AlignedAlloc. Storing this on the page header, allows
to remove initial_buckets from the SlotSet. The SlotSet allocation is
then again a power-of-2 in release mode.

Reland of https://crrev.com/c/1906376: Incorrect DCHECK was removed.
WordsForBuckets was simplified and a test was added for it.

Bug: chromium:1023139
Change-Id: I9a08e03a9c10e5781a146b9a28dab38824aad91f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1954391
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65385}
2019-12-09 11:31:58 +00:00
Clemens Backes
efe01b8819 [wasm] Remove flag for saturating conversions flag
This removes the --experimental-wasm-sat-f2i-conversions flag. This
feature is shipped since v7.5.

R=ahaas@chromium.org

Change-Id: I354d9528be40caac77cd4e41adcd39d013448339
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958009
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65384}
2019-12-09 11:24:27 +00:00
Michael Achenbach
b68126d149 [foozzie] Fix mocking-out typed arrays
Some fuzz test cases set Math.min to a different function. Let the fake
typed array constructors remember the original Math.min.

No-Try: true
Bug: chromium:1024815
Change-Id: Ia389439fe6757f2497e22187042c5cdf1d1c649f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958050
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65383}
2019-12-09 11:08:57 +00:00
Ng Zhi An
1effe529c2 [wasm-simd] Add AVX codegen
Mostly for f32x4 instructions.

Bug: v8:9561
Change-Id: I3a3dc06305acb9e336c494fc399cf5d21518c0e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1950488
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65382}
2019-12-09 10:49:07 +00:00
Clemens Backes
2450b3bca6 [api] Add missing V8_EXPORT_PRIVATE annotation
This caused compile errors since https://crrev.com/c/1934407:
ld.lld: error: undefined symbol: v8::debug::AccessorPair::CheckCast(v8::Value*)
>>> referenced by debug-interface.h:578 (../../src/debug/debug-interface.h:578)
>>>               obj/test/cctest/cctest_sources/test-debug.o:(TestGetPrivateMethodsAndAccessors())

R=verwaest@chromium.org
CC=joyee@igalia.com

Change-Id: I4a727ddd2673c75ec16368459114cfcafdd18912
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955595
Auto-Submit: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Joyee Cheung <joyee@igalia.com>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65381}
2019-12-09 10:42:07 +00:00
Simon Zünd
73f3d2b1ae Introduce stack locals black list field on the ScopeInfo object
This CL is a prepatory step towards moving the stack locals blacklist
from the DebugEvaluateContext to the respective {ScopeInfo} objects.

The locals blacklist is used during local debug evaluate to
decide whether a context lookup can advance the context chain
upwards, or if lookup needs to stop at the current scope.

This CL also introduces a "Recreate" static helper method, that
allows an existing ScopeInfo to be cloned, but with a locals
blacklist attached. This will be needed since blacklists are only
created on-demand during debugging.

R=leszeks@chromium.org

Bug: chromium:1027475, v8:9938
Change-Id: I673dbc99ce9fdc84cb5cda3f9710ba2b76ab92ee
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1946349
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65380}
2019-12-09 10:25:27 +00:00
Simon Zünd
acd8be25ee Add szuend to OWNERS files for src/{debug,inspector}
R=yangguo@chromium.org

Change-Id: Ia58394ec14b34dcd9641d6cf3a810ac272431801
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958006
Commit-Queue: Simon Zünd <szuend@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Simon Zünd <szuend@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65379}
2019-12-09 09:45:27 +00:00
Clemens Backes
5165722a39 [wasm] Document feature flags better
For each wasm feature flag, this adds a link to the proposal repository,
and states who is the v8-side owner of the implementation.
For stated and shipped features, it also sais since which v8 version
this is the case.
It also adds some documentation about the meaning of the three categories
(experimental, stages, shipped).

R=mstarzinger@chromium.org, adamk@chromium.org

No-Try: true
Change-Id: Idbb26eb9e68c7a81aed0e1c1b1d12d5de40d7c2e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1954395
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65378}
2019-12-09 09:42:57 +00:00
Zhang, Shiyu
3b7535636f Reland "[runtime] Cache prototype chain enumerable keys in PrototypeInfo"
This is a reland of 5253d7bf15

Original change's description:
> [runtime] Cache prototype chain enumerable keys in PrototypeInfo
> 
> This CL adds a prototype_chain_enum_cache to cache the enumeration of a
> prototype and its entire chain on the PrototypeInfo. It can improve for-in
> performance via simply merging the receiver enumeration with this cache.
> 
> It improves the score of JetStream2-tagcloud-SP case by ~9% on IA Chromebook.
> 
> Contributed by tao.pan@intel.com
> 
> Change-Id: Ib40bfe41e772672337155584672f06fa1ba1e70d
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1870844
> Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65224}

Change-Id: I93b74727c46abbaab163324c50fbd977fcc9bb36
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955232
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
Cr-Commit-Position: refs/heads/master@{#65377}
2019-12-09 06:40:56 +00:00
v8-ci-autoroll-builder
118b23602f Update V8 DEPS.
Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/51a024f..c3cb105

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I8a81064241961d90f3d9c4dce490a90d060eeb49
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955990
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@{#65376}
2019-12-09 03:41:36 +00:00
v8-ci-autoroll-builder
63da8397bc Update V8 DEPS.
Rolling v8/build: 35a759a..4f02786

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/447ab8a..51a024f

Rolling v8/third_party/depot_tools: fe18a43..6b52dc2

Rolling v8/tools/clang: d1940b1..57e481c

Rolling v8/tools/luci-go: git_revision:7d11fd9e66407c49cb6c8546a2ae45ea993a240c..git_revision:37a855b64d59b7f079c9a0e5368f2757099d14d3

Rolling v8/tools/luci-go: git_revision:7d11fd9e66407c49cb6c8546a2ae45ea993a240c..git_revision:37a855b64d59b7f079c9a0e5368f2757099d14d3

Rolling v8/tools/luci-go: git_revision:7d11fd9e66407c49cb6c8546a2ae45ea993a240c..git_revision:37a855b64d59b7f079c9a0e5368f2757099d14d3

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: Ie906df3d577d1b5de1e520d2ac9b1a50d08c68dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955988
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@{#65375}
2019-12-07 03:48:14 +00:00
Anton Bikineev
39cbe0a86d [heap] Bail out from incremental marking in embedder-tracer
This fixes DCHECK build with --noincremental-marking flag.

Change-Id: If1e8f9ec09bd91e628c3e92bbcd40f6960473f5b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955598
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65374}
2019-12-06 21:20:13 +00:00
David Carlier
230b339f5e Add a null check for the slot argument of the TraceReference constructor
This check is useful for preventing a segfault upon usage of this argument.

Change-Id: I3cc77f84d7e3ca2a96ec36a50bddb9c2eadeb62f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1946336
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65373}
2019-12-06 20:01:03 +00:00
Ross McIlroy
ea16055436 Print source position table when printing bytecode.
Change-Id: I9be7c10193553088b72b6303408636b4fea64f5c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955594
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Auto-Submit: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65372}
2019-12-06 17:37:05 +00:00
Seth Brenith
5707469296 [torque] Add bitfield declarations
This change is the first part of adding Torque support for a "bitfield
struct", which represents a set of bitfields packed together into an
integer value. With this change, Torque can generate the list of
BitField template specializations that allow runtime code to use the
bitfield values. The flags used in SharedFunctionInfo are converted to
Torque to exercise this functionality. Bitfield values are not yet
accessible directly from Torque code.

Bug: v8:7793
Change-Id: I9e4a3df7c847111b6e02e513f175dbf938b0be35
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1949047
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65371}
2019-12-06 17:29:44 +00:00
Clemens Backes
31e9ebeea7 [Liftoff] Emit and test debug side table
This adds a method to generate the debug side table via Liftoff, and
adds first tests that check that the number of entries is as expected.
These tests will be extended in a follow-up CL to test the actual
content of the debug side table.

R=mstarzinger@chromium.org

Bug: v8:10019
Change-Id: I393ffabed3408463ffba232a66e2dffd7dd74f15
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1954390
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65370}
2019-12-06 16:26:56 +00:00
Dan Elphick
7cb7f77549 [tools] Add benchmark, browser, device and standard deviation options
Add --benchmark option to allow selecting a benchmark other
v8.browsing_desktop. If not using the default, the options to generate
v8 runtime call stats will be automatically added.

Adds --stdev option to calculate the standard deviation of the
results in the table.

Add --device and --browser option that are passed through to
run_benchmark.

Change-Id: I8c57c9eba7aea84108a2e3d4fdd098a7695cad53
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955588
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65369}
2019-12-06 15:54:53 +00:00
Joshua Litt
bed702fa07 [promises] Port Promise.prototype.then to Torque.
Bug: v8:9838
Change-Id: Ib2741501330629a29c1f3fe4f4a93a73982ab4de
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1929400
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65368}
2019-12-06 15:18:34 +00:00
Anna Henningsen
406622277a [base] add missing <functional> include
The recently introduced usage of `std::logical_and` requires this.
This un-breaks building Node.js with the current V8 master branch
on FreeBSD.

Refs: https://chromium-review.googlesource.com/c/v8/v8/+/1940476
Refs: https://github.com/nodejs/node-v8/issues/124
Change-Id: Ic9d63c40e1b533f7f1c59a05f8577ee0bb0d6aa1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955584
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65367}
2019-12-06 15:15:33 +00:00
Igor Sheludko
17429d2b1d [builtins] Fix %TypedArray%.from builtin
... broken during porting to Torque here
https://chromium-review.googlesource.com/c/v8/v8/+/1891610

Bug: chromium:1028538
Bug: v8:8906
Bug: v8:4153
Change-Id: I0fb33299832964a1990e9e60a351aa88e246b3a3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955585
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65366}
2019-12-06 13:36:43 +00:00
Deepti Gandluri
80bb70a25e [wasm] Remove Sign Extension flag, and helper functions
Change-Id: I607e9565e29b2159c1783cd58fb5a2e19c02b221
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955524
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65365}
2019-12-06 13:14:44 +00:00
Clemens Backes
ac69dfa705 [wasm] Remove outdated TODO
Sign extension opcodes are already tested in the interpreter since
https://crrev.com/c/1083337, thus remove the obsolete TODO.

R=gdeepti@chromium.org

No-Try: true
Change-Id: I08323b9d43fa46d1fcf9965e5106a68767f695b5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1954400
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65364}
2019-12-06 12:21:13 +00:00
Ulan Degenbaev
6816bc52d3 Remove the stack frame cache to avoid memory leaks
The cache adds a strong pointer from a code object to closures and
thus can leak arbitrary objects.

Bug: chromium:1030043
Tbr: yangguo@chromium.org
Change-Id: I8ce90119fa97eaea59d42e7fae5acd336b5fe5d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1954392
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65363}
2019-12-06 12:06:13 +00:00
Ng Zhi An
3f746ecfc3 [wasm-simd] Add some AVX codegen
Adds AVX codegen for f64x2 min, max, qfma, and qfms.

Bug: v8:9561
Change-Id: Id32ba8d4367e4f9b3cccea2bc7ce24dfb04ec188
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1950487
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65362}
2019-12-06 11:37:50 +00:00
Ng Zhi An
277381d85e Collate packed shift data instructions into macro list
Bug: v8:10021
Change-Id: Ibececfd23b852d7cecf609f6ae1a4b01ea8b55f6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1950485
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65361}
2019-12-06 10:51:40 +00:00
Simon Zünd
f96f93128c Reland "Implement top-level await for REPL mode"
This is a reland of 5bddc0e142

The original CL was speculatively reverted as it was suspected to
cause failures on the non-determinism bot. This was ultimately
confirmed to not be the case, so this CL is safe to reland as-is.

Original change's description:
> Implement top-level await for REPL mode
>
> Design doc: bit.ly/v8-repl-mode
>
> This CL allows the usage of 'await' without wrapping code in an async
> function when using REPL mode in global evaluate. REPL mode evaluate
> is changed to *always* return a Promise. The resolve value of the
> promise is the completion value of the REPL script.
>
> The implementation is based on two existing mechanisms:
>   - Similar to async functions, the content of a REPL script is
>     enclosed in a synthetic 'try' block. Any thrown error
>     is used to reject the Promise of the REPL script.
>
>   - The content of the synthetic 'try' block is also re-written the
>     same way a normal script is. This is, artificial assignments to
>     a ".result" variable are inserted to simulate a completion
>     value. The difference for REPL scripts is, that ".result" is
>     used to resolve the Promise of the REPL script.
>
>   - ".result" is not returned directly but wrapped in an object
>     literal: "{ .repl_result: .result}". This is done to prevent
>     resolved promises from being chained and resolved prematurely:
>
>     > Promse.resolve(42);
>
>     should evaluate to a promise, not 42.
>
> Bug: chromium:1021921
> Change-Id: I00a5aafd9126ca7c97d09cd8787a3aec2821a67f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1900464
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Simon Zünd <szuend@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65273}

TBR: yangguo@chromium.org,verwaest@chromium.org
Bug: chromium:1021921
Change-Id: I95c5dc17593161009a533188f91b4cd67234c32f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1954388
Reviewed-by: Simon Zünd <szuend@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65360}
2019-12-06 10:13:00 +00:00
Zhao Jiazhong
3158cf1a15 [mips64][liftoff] Change FillStackSlotsWithZero to use bytes
port 785fa6b https://crrev.com/c/1947350

Change-Id: I76e7d7b0afcea14bee7e11c8317ede5f4c880d1d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1951281
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65359}
2019-12-06 08:03:39 +00:00
v8-ci-autoroll-builder
35e9fd3e7b Update V8 DEPS.
Rolling v8/build: 4538ab6..35a759a

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/989b615..447ab8a

Rolling v8/third_party/depot_tools: 9212599..fe18a43

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: Ia4997c1b485d3a842a97766c8c5af631917247b4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1954064
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@{#65358}
2019-12-06 04:16:08 +00:00
Milad Farazmand
0a055086c3 PPC: Using a scratch register under LoadRealStackLimit
Change-Id: Id9e9142a8ff185309b91dcfff70dae8ccf8b5166
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1954244
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#65357}
2019-12-05 23:30:09 +00:00
Johannes Henkel
a16b2c7eef [DevTools] Roll inspector_protocol (V8)
New revision: f5a3199a3f37c7e48a9ffdbee04aa5c8f38d2889

Use crdtp::span<uint8_t> instead of const ProtocolMessage&. (V8)
Also includes a PR which moves Serializable into the crdtp library
and adds a simple test. Hadn't rolled this yet.

Upstream review:
https://chromium-review.googlesource.com/c/deps/inspector_protocol/+/1952196

Change-Id: If78bc8f11be8fb248dd66babc0190870312f7ec4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1952158
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65356}
2019-12-05 22:31:08 +00:00
Gus Caplan
cf7646c582 Remove own toString from NativeError prototype
In 5742da056a, the toString property was
accidentally applied to all NativeError prototypes, when it should only
be inherited from Error.prototype.

Refs: https://github.com/tc39/ecma262/issues/1794
Bug: v8:10017
Change-Id: I2af9a31f463deb9871dd7a4a5a2e4dd7485ed38c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1933054
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65355}
2019-12-05 22:17:58 +00:00
Shu-yu Guo
33eb473037 [class] Improve error message for calling anonymous class constructors
The current error message assumes all classes are named, which results
in a double space and awkward wording when calling an anonymous class
constructor.

Bug: v8:10025
Change-Id: Ibe913152c0816cbbaaa0c7a88db4e415762ae9bb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1947336
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65354}
2019-12-05 21:13:07 +00:00
Dan Elphick
666668f1f5 [tools] Add script to collect runtime stats from benchmarks
Adds a script that runs a v8.browsing_desktop story a number of times
and extracts the runtime call stats as either a table or csv.

Change-Id: I4e93cd120b3496410517a2f26547b954fc59d92a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1953343
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65353}
2019-12-05 19:07:16 +00:00
Santiago Aboy Solanes
bc99b08f3b [turbofan][cleanup] Add helpers for SmiTagging with 31 bit Smis
There was some common code regarding smi tagging and either overflowing
or deopting if the number was too big for 31 bit smis.

Bug: v8:10021
Change-Id: I9cd9e5ff29b06638a10dd0c5a9f72ff13df6d6bc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1950964
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65352}
2019-12-05 15:44:57 +00:00
Joshua Litt
854f28ce1f [top-level-await] Stop throwing exceptions with TLA.
Bug: v8:9970
Change-Id: I0e542fc63211e78800eab82257ccab9583305433
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1946534
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65351}
2019-12-05 15:17:05 +00:00
Michael Hablich
b7c67e0a0b Update V8 version after branch cut
TBR=machenbach@chromium.org

Change-Id: I87ab17cd62b88aedd5b4e918eb16faca8146d7fc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1952867
Reviewed-by: Michael Hablich <hablich@chromium.org>
Commit-Queue: Michael Hablich <hablich@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65350}
2019-12-05 14:45:51 +00:00
Almothana Athamneh
1af723d55a [test] Use Fuchsia test runner for unittests
This CL attempts to run unittests on Fuchsia
using Infra

Bug: chromium:934932
Change-Id: I4b7cb740e17e65e91ca8c6ba6dfd07719e473e20
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1948709
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65349}
2019-12-05 14:22:01 +00:00
Santiago Aboy Solanes
450dfc2bf2 [cleanup][turbofan] Move common SmiUntag code out of if else body
Bug: v8:10021
Change-Id: Id0616fa2c320bd5a817745310debf63fcf58e107
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1950490
Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65348}
2019-12-05 14:16:51 +00:00
Ulan Degenbaev
d716056050 [heap] Decouple the lifetime of a TracedNode from the target object
Currently a TracedNode of a TracedReference is freed only if its target
V8 object is unreachable. This is problematic for TracedNodes created for
long-living (or immortal) V8 objects and leads to memory leaks.

This CL adds logic for collecting unreachable TracedNodes:
1) Each TracedNode gets a markbit. Initially the markbit is set (i.e.
   we have black allocation for TracedNodes).
2) During marking RegisterEmbedderReference sets the markbit of the
   corresonding TracedNode.
3) In the atomic pause of Mark-Compact when TracedNodes are iterated,
   we check the markbits and free TracedNodes with cleared markbits.
   After this processing all markbits are cleared for the next GC.

Note that the new logic does not apply to TracedNode that have
callbacks and/or destructors.

Bug: chromium:1029738
Change-Id: I38e76a8b4a84170793998988b1a7962e40874428
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1948722
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65347}
2019-12-05 12:58:29 +00:00
Georg Neis
4bb495f420 [turbofan] Check bounds in node input accessors
... even in release builds.

Bug: chromium:1029576
Change-Id: Iefc6b267c9db09f68742152a302726fcfe4c75b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1948714
Auto-Submit: Georg Neis <neis@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65346}
2019-12-05 12:56:09 +00:00
Maya Lekova
874cd773ef [turbofan] Keep sharing when merging into dead environment
Also make return and unconditional jumps kill the environment instead
of clearing it. This was still leftover from before we introduced
liveness and prevented sharing as well.

Bug: v8:7790
Change-Id: Ic79d64c9eaedf608d26e3265d4b27d21f7f3dfe1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1948710
Auto-Submit: Georg Neis <neis@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65345}
2019-12-05 12:00:29 +00:00
Ng Zhi An
18450061cf [liftoff] Fix zeroing the stack on arm64
Bug: v8:9909
Bug: chromium:1030912
Change-Id: I56134087156e4fe2598ef5a282cd57344a729a38
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1950225
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65344}
2019-12-05 10:29:29 +00:00
Michael Achenbach
d382180023 Whitespace change to trigger bots
Change-Id: I2ad2c61a3ca77611bb40e66647a269b5d16a64b3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1950976
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65343}
2019-12-05 08:48:03 +00:00
Zhao Jiazhong
496adfceec [mips][wasm-simd] Implement f64x2 min max
port 91ee5f0 https://crrev.com/c/1925614

Original Commit Message:

 [wasm-simd] Implement f64x2 min max for arm

Change-Id: I41b350cdcc9242b2fed6260873dc202367509137
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1947690
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65342}
2019-12-05 05:47:59 +00:00
v8-ci-autoroll-builder
429701fd7a Update V8 DEPS.
Rolling v8/build: e35470d..4538ab6

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/10bac4e..989b615

Rolling v8/third_party/depot_tools: 9777ab3..9212599

Rolling v8/third_party/zlib: e77e1c0..f262c1b

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I05d2c76d1e776edff77bf16a763ca6d80121546a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1950924
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@{#65341}
2019-12-05 04:05:49 +00:00
Zhao Jiazhong
185cc913eb [mips][wasm-simd] Use signed extract lane
port 9fcbb5e https://crrev.com/c/1873700

Original Commit Message:

  Replace unsigned extract lane followed by sign extend
  as added here https://chromium-review.googlesource.com/c/v8/v8/+/1846711
  with a signed extract lane for I8x16 and I16x8.

Change-Id: I46f9d3ed364f28289e23a635281ea0ef44865d1a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1947689
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65340}
2019-12-05 02:00:29 +00:00
Anna Henningsen
94ec4296a7 [heap] generate definitions for ProcessMarkingWorklist()
Since other files now call this template function, where no definition
of it is available, definitions need to be generated explicitly.

This fixes Node.js debug builds with the current V8 master branch.

Refs: https://chromium-review.googlesource.com/c/v8/v8/+/1940250
Refs: https://github.com/nodejs/node-v8/issues/129
Change-Id: Icc99f7a4c3669452ade65229d6ae48b49e2da0e4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1950971
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65339}
2019-12-04 22:22:39 +00:00
Maya Lekova
c20e93acf4 [test] Disable compiler/deopt-array-builtins on gc_stress
Bug: v8:10035
Change-Id: Ie4172d366a90b9d7ee2256aadc96835311775aac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1950970
Auto-Submit: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Francis McCabe <fgm@chromium.org>
Reviewed-by: Francis McCabe <fgm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65338}
2019-12-04 22:02:28 +00:00
Joyee Cheung
963ff849df [class] implement inspector support for private instance methods
This patch implements inspector support for private instance methods:

- Previously to implement brand checking for instances with private
  instance methods we store the brand both as the value with the brand
  itself as the key in the stances. Now we make the value the context
  associated with the class instead.
- To retrieve the private instance methods and accessors from the
  instances at runtime, we look into the contexts stored with the
  brands, and analyze the scope info to get the names as well as
  context slot indices of them.
- This patch extends the `PrivatePropertyDescriptor` in the inspector
  protocol to include optional `get` and `set` fields, and make the
  `value` field optional (similar to `PropertyDescriptor`s).
  Private fields or private instance methods are returned in the
  `value` field while private accessors are returned in the `get`
  and/or `set` field. Property previews for the instaces containing
  private instance methods and accessors are also updated similarly,
  although no additional protocol change is necessary since the
  `PropertyPreview` type can already be used to display accessors.

Design doc: https://docs.google.com/document/d/1N91LObhQexnB0eE7EvGe57HsvNMFX16CaWu-XCTnnmY/edit

Bug: v8:9839, v8:8330
Change-Id: If37090bd23833a18f75deb1249ca5c4405ca2bf2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1934407
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65337}
2019-12-04 20:13:34 +00:00