Commit Graph

68874 Commits

Author SHA1 Message Date
Michael Lippautz
d6fa333dda cppgc: Replace SetUp/TearDown with ctor/dtor
Change-Id: I8a8ce7008887f807726ddafdbd8048b64e1e1b84
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2867472
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74332}
2021-05-03 16:17:36 +00:00
Thibaud Michaud
d4c3c1a5ea [cctest][wasm] Ensure FLAG_stack_size has an effect
Some cctests set the FLAG_stack_size in the TEST() macro which is run
after the cctest runner initializes the main isolate. The flag is only
used during isolate initialization, so this did not have any effect.

This fixes it by using the UNINITIALIZED_TEST() macro, creating the
isolate after setting the flag and passing it through to the WasmRunner.

See also https://crrev.com/c/2862778 which fixes JS cctests.

R=jkummerow@chromium.org

Change-Id: I46df22b80a283d93c48c1dbd250eb3e4ea5ad4a0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2865749
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74331}
2021-05-03 14:24:46 +00:00
Georg Neis
ccbfa9182b [compiler] Slightly generalize type assertions
... to also apply to common integer bitset types.

Bug: v8:11724
Change-Id: I41077488688e924e4235911d3a90e15044c229bd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2865747
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74330}
2021-05-03 14:20:56 +00:00
Camillo Bruni
5e29241db8 [tools][system-analyzer] Postpone updating collapsed panels
- Add CollapsableElement helper
- Collapse all panels by default
- Only update panels if they are opened
- Only update CodePanel Select element if the data has changed
- Fix focusing SourcePosition selection

Bug: v8:10644
Change-Id: Id9b5159e86623c7ca0f437dd9db6b0faff3ec573
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859952
Auto-Submit: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74329}
2021-05-03 14:14:46 +00:00
Nico Hartmann
c42a0c957e Revert "[elements] Avoid racy data reads/writes"
This reverts commit 296fa964fe.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Arm%20-%20debug/18616/overview

Original change's description:
> [elements] Avoid racy data reads/writes
>
> Instead of annotating those racy reads / writes to be ignore by TSan,
> just use relaxed atomics. This makes us not rely on undefined behaviour,
> and is unlikely to introduce noticeable overhead.
>
> This removes the only uses of TSAN_ANNOTATE_IGNORE_WRITES_BEGIN and
> friends, which allows us to remove the whole tsan.h header.
>
> R=​ulan@chromium.org
> CC=​​mlippautz@chromium.org
>
> Bug: v8:11704
> Change-Id: Ie6694c0ae5b40856b56fb97253ce626ec1f4c263
> Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
> Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859957
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74321}

Bug: v8:11704
Change-Id: Ia14b39eccfc02051728a562685a3a8eb8ffde4b6
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2867475
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74328}
2021-05-03 13:53:47 +00:00
Almothana Athamneh
b7325bedd0 [infra] split heap sandbox builders to builder tester pairs
Bug: v8:11694
Change-Id: I52e21a07b3a90d43d321fe9d680b129eb8f9aca7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2866770
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74327}
2021-05-03 13:34:26 +00:00
Camillo Bruni
fa4cb172cd [runtime] Fix Promise.all context promise hooks
We have to take the slow path in Promise.all if context promise hooks
are set. The fast-path doesn't create intermediate promises by default.

Bug: chromium:1204132, v8:11025
Change-Id: Ide92de00a4f6df05e0ddbc8814f6673bd667f426
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2866771
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74326}
2021-05-03 13:23:06 +00:00
Jakob Gruber
ca7f28527d [compiler] Introduce TryMakeRef/MakeRef factory functions
In the near future we'll have more cases where Ref construction is not
guaranteed to succeed. Currently, we don't have convenient patterns to
support optional construction. This CL adds the following helpers:

 base::Optional<FooRef> ref = TryMakeRef(broker, o);
 if (!ref.has_value()) return {};  // bailout
 // .. use ref.

Or, in the case where construction is guaranteed to succeed:

 FooRef ref = MakeRef(broker, o);
 // .. use ref.

Bug: v8:7790
Change-Id: I759235c314056c080d79ec413125d3957452c64c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859169
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74325}
2021-05-03 13:20:26 +00:00
Leszek Swirski
15803e5fa9 [test] Replace turboprop_as_toptier with always_sparkplug
In the 'extra' variant, replace turboprop_as_toptier (which is mostly
covered by turboprop) with always_sparkplug, to increase Sparkplug's
coverage on tests.

Bug: v8:11420
Change-Id: I43b7009d184a03cb163d78f1f8bd05233ef7c34e
Fixed: v8:11686
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862769
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74324}
2021-05-03 12:33:38 +00:00
Jakob Gruber
aa14ec7c64 [objects] Add Isolate* arg to JSObject::ForceSetPrototype
.. to avoid the GetIsolate() call.

Change-Id: Ia8bf7a4e835d681decbc3965b582c0e788472877
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857639
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74323}
2021-05-03 11:38:58 +00:00
Jakob Gruber
eeb8428b52 [compiler] Make BigInts bg-serialized
BigInts are immutable after initialization, thus safe to access
concurrently if the Heap::IsPendingAllocation predicate returns false.

Bug: v8:7790
Change-Id: Icf3954b1e50af2132846eca5304c7947afb8f298
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856535
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74322}
2021-05-03 11:30:33 +00:00
Clemens Backes
296fa964fe [elements] Avoid racy data reads/writes
Instead of annotating those racy reads / writes to be ignore by TSan,
just use relaxed atomics. This makes us not rely on undefined behaviour,
and is unlikely to introduce noticeable overhead.

This removes the only uses of TSAN_ANNOTATE_IGNORE_WRITES_BEGIN and
friends, which allows us to remove the whole tsan.h header.

R=ulan@chromium.org
CC=​mlippautz@chromium.org

Bug: v8:11704
Change-Id: Ie6694c0ae5b40856b56fb97253ce626ec1f4c263
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859957
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74321}
2021-05-03 11:29:28 +00:00
Michael Lippautz
995f122e13 cppgc-js: Fix MarkingVerifier
The marking verifier used to run on a different stack than the marker
which could lead to it finding more objects than the marker. Fix this
by recording a stack end from which the verification starts. This
ensures that the verifier only finds a subset of the objects that the
actual stack scan finds.

Bug: v8:11709
Change-Id: I44fe7b247e56e75deded45b64c25379f1ad9e381
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859848
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74320}
2021-05-03 10:36:18 +00:00
Daniel Lehmann
a4c37558d1 [wasm] Add PKU alloc/free and support counter
To enforce W^X for the WebAssembly code space, we want to explore using
Intel memory protection keys for userspace, also known as MPK, PKEYs, or
PKU. Instead of flipping page protection flags with mprotect (which
incurs a high syscall overhead; and which switches flags for the whole
process), this associates a key with each page once, and then changes
the permissions of that key with a fast thread-local register write.
That is, this gives both finger-grained permissions (per-thread) and
more performance.

This CL is starts experimenting with PKUs by
(1) trying to allocate a protection key once per {WasmEngine} in x64
Linux systems, and
(2) adding a counter for recording the sucess/failure of that, to assess
the support for PKUs on the target machine.

The low-level PKU allocating functions should be moved into base/platform
long-term, but are inside wasm/ for this CL.

R=clemensb@chromium.org
CC=​jkummerow@chromium.org

Bug: v8:11714
Change-Id: Ia4858970ced4d0b84cc8c2651e86dceb532c88a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850932
Commit-Queue: Daniel Lehmann <dlehmann@google.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74319}
2021-05-03 09:57:48 +00:00
Jochen Eisinger
09479110a0 Add microtasks scope to FinalizationRegistryCleanupTask
This task calls through the V8 API, so it needs to create a microtasks
scope.

Bug: chromium:728583
Change-Id: I47108a64575f1bd670eaea6c8a06720dd4d5552c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2865605
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74318}
2021-05-03 09:42:58 +00:00
Wenyu Zhao
7134d7f656 [test] Fix or skip CHECKs in tests for TPH
* Mostly are heap/space/page checks.

Bug: v8:11641
Change-Id: Ia1726f414109ac5e8a3bdb18ccaa46a63db6bc95
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2849823
Commit-Queue: Wenyu Zhao <wenyu.zhao@anu.edu.au>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74317}
2021-05-03 09:05:08 +00:00
Michael Achenbach
1a9c9f0fc0 [test] Stress concurrent inlining on numfuzz
This will give extra coverage of the mode on the numfuzz tsan bot.

No-Try: true
Bug: chromium:11655
Change-Id: Ifcc4ad304116fa1b0331cc48e41c07405193d514
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862809
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74316}
2021-05-03 06:45:13 +00:00
v8-ci-autoroll-builder
91a8494c32 Update V8 DEPS.
Rolling v8/build: d928fcd..3309cd8

Rolling v8/third_party/aemu-linux-x64: BGSmhPgYrPBnQ9dUEMh0QHNL988lWdkmpI87DIIfwkoC..IkJe_PGoF9FZE4NgmhuVPlSogmI0pgjjHezTAckYoEYC

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I43457e9a36ca72417b75ff3e63003482530c6a7e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2865718
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@{#74315}
2021-05-03 06:44:08 +00:00
Michael Achenbach
a20d18f138 Revert "cppgc: Try to fix test IteratePointersFindsCalleeSavedRegisters, vol.2"
This reverts commit c4cb14c754.

Reason for revert:
https://ci.chromium.org/p/v8/builders/ci/V8%20Mac64%20-%20debug/33969

Original change's description:
> cppgc: Try to fix test IteratePointersFindsCalleeSavedRegisters, vol.2
>
> The previous attempt has broken the tsan bot. The only reliable way to
> make sure that registers are not clobbered is by doing direct call from
> inline assembly, which is what this CL does.
>
> Change-Id: I6adbd5e735949a7cc4cc7fc686ee8c428863ffb9
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859947
> Commit-Queue: Anton Bikineev <bikineev@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74313}

Change-Id: I00260aeacdac8704475b37fd99d4ef552c523249
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2865746
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#74314}
2021-05-03 06:17:09 +00:00
Anton Bikineev
c4cb14c754 cppgc: Try to fix test IteratePointersFindsCalleeSavedRegisters, vol.2
The previous attempt has broken the tsan bot. The only reliable way to
make sure that registers are not clobbered is by doing direct call from
inline assembly, which is what this CL does.

Change-Id: I6adbd5e735949a7cc4cc7fc686ee8c428863ffb9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859947
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74313}
2021-05-02 12:15:57 +00:00
v8-ci-autoroll-builder
05fc473765 Update V8 DEPS.
Rolling v8/build: f292eb8..d928fcd

Rolling v8/tools/luci-go: git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155..git_revision:1b257aacd4934e5a8b2508b240ffc7d866df9273

Rolling v8/tools/luci-go: git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155..git_revision:1b257aacd4934e5a8b2508b240ffc7d866df9273

Rolling v8/tools/luci-go: git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155..git_revision:1b257aacd4934e5a8b2508b240ffc7d866df9273

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I972c30f88b7e49a4110608ea2f88c43c3f67cb1c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2865309
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@{#74312}
2021-05-02 04:09:57 +00:00
v8-ci-autoroll-builder
f0f6db3f91 Update V8 DEPS.
Rolling v8/build: 8cc6617..f292eb8

Rolling v8/third_party/aemu-linux-x64: kswh0qF56RoEDBXJbyo1IWPAJ9F7WGAvMHGyWGbpBtUC..BGSmhPgYrPBnQ9dUEMh0QHNL988lWdkmpI87DIIfwkoC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/bbfed50..00b6eba

Rolling v8/third_party/depot_tools: 0d1afc9..f663e54

Rolling v8/third_party/google_benchmark/src: 64cb55e..ba9a763

Rolling v8/tools/clang: ba668f1..7bc447f

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I61de01e618ebe21d4a2cd55b9f0d78bf74dc9857
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2864566
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@{#74311}
2021-05-01 03:59:26 +00:00
Clemens Backes
cd3d4b5e7b [wasm][test] Fix for gcc 7.4
This fixes a compiler warning on gcc 7.4.

R=ahaas@chromium.org
CC=machenbach@chromium.org

Bug: v8:11716
Change-Id: I385765f1ac3de17eea1bb56109869636f8ae9d95
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862779
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74310}
2021-04-30 17:10:00 +00:00
Jakob Kummerow
a43f3818df [cctest] Make sure FLAG_stack_size settings have effect
Using the default cctest TEST(...) macro causes later writes to
FLAG_stack_size to have no effect, because the StackGuard reads
that flag's value during Isolate initialization, which is done
before the test body is executed. This patch changes the two
existing tests that accidentally did this to UNINITIALIZED_TEST,
putting them in charge of Isolate creation, thereby ensuring that
the intended stack size is configured correctly.

Change-Id: Ib030795ef46f23d576f6dbbd26b347ac804b5085
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862778
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74309}
2021-04-30 17:08:55 +00:00
Dan Elphick
6bb5688fe0 Reland "[build] Fix gn check failures in v8/third_party"
This is a reland of e13a744a45

Fixed jsoncpp BUILD.gn errors by removing missing files.

Original change's description:
> [build] Fix gn check failures in v8/third_party
>
> This removes the blanket exclusion for third_party but leaves
> third_party/icu excluded (which is the same as chrome).
>
> Most fixed issues are to do with previously removed header files and
> missing dependencies.
>
> Bug: v8:7330
> Change-Id: I7e634e35c0620a1f3db9aba01119921e4f781e3e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856838
> Auto-Submit: Dan Elphick <delphick@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74295}

Bug: v8:7330
Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng
Change-Id: I4c2c63cc3cb6fb3fabe33717b20ac4a1efeec09b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862772
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74308}
2021-04-30 16:26:19 +00:00
Clemens Backes
a7a0ff10af [cleanup][include] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=mlippautz@chromium.org

Bug: v8:11717
Change-Id: I41c4c18dd3f70ec255e9d2769ffd25a38f6f2784
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862764
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74307}
2021-04-30 16:22:19 +00:00
Clemens Backes
8259cafa24 [cleanup][regexp] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=pthier@chromium.org

Bug: v8:11717
Change-Id: Id930a72e938a82e4dd8117cb2d4834d9dfb7e9e5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862763
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74306}
2021-04-30 16:10:29 +00:00
Nico Hartmann
8ae6f77f49 Update V8 DEPS.
Rolling v8/base/trace_event/common: cab90cb..d5bb24e

Rolling v8/build: 94367a1..8cc6617

Rolling v8/buildtools: 5dbd89c..5da6005

Rolling v8/buildtools/linux64: git_revision:dba01723a441c358d843a575cb7720d54ddcdf92..git_revision:6771ce569fb4803dad7a427aa2e2c23e960b917e

Rolling v8/buildtools/third_party/libc++abi/trunk: f6a8e55..5f51521

Rolling v8/third_party/aemu-linux-x64: KmvDYKZZ-xQz7ZzzSKBh3HrWPpQv89vfFY9mBp6RDq4C..kswh0qF56RoEDBXJbyo1IWPAJ9F7WGAvMHGyWGbpBtUC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/ca2c407..bbfed50

Rolling v8/third_party/depot_tools: ae1b2b1..0d1afc9

Rolling v8/third_party/google_benchmark/src: 835951a..64cb55e

Rolling v8/third_party/zlib: 0949050..e8da4da

Rolling v8/tools/luci-go: git_revision:a3a1f3a2e925eb44367c62783877c922c9ef7289..git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155

Rolling v8/tools/luci-go: git_revision:a3a1f3a2e925eb44367c62783877c922c9ef7289..git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155

Rolling v8/tools/luci-go: git_revision:a3a1f3a2e925eb44367c62783877c922c9ef7289..git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: Id081f2b8d4214852d1bb19eab4df82379db03ba5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862144
Reviewed-by: Nico Hartmann <nicohartmann@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: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74305}
2021-04-30 15:12:39 +00:00
Vicky Kontoura
f488ad78cb [web snapshot] Support oddballs
This CL adds support for oddballs false, true, null and undefined.

Bug: v8:11525, v8:11706
Change-Id: I0dc870f05578c0eb9ff06bf2ccd2474e18464566
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856843
Commit-Queue: Vicky Kontoura <vkont@google.com>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74304}
2021-04-30 14:32:29 +00:00
Jochen Eisinger
a5c321024c CallDepthScope should track the current microtask scope
Tracking the context is not enough, as we might clear the context to
avoid repeatedly reentering the same context.

Also fix unittests that relied on the default microtask queue getting
automatically processed instead of the one of the current context.

Bug: chromium:728583
Change-Id: Ia9a51c513fc7363a518af86cc54c5bda26b5fbe8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859850
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74303}
2021-04-30 14:08:49 +00:00
Clemens Backes
d665f40fa2 [cleanup][execution] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=jkummerow@chromium.org

Bug: v8:11717
Change-Id: I29e8dfca88f871b5d6b4c6422d036157021514da
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862762
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74302}
2021-04-30 12:53:09 +00:00
Benedikt Meurer
379331b7a4 [debugger] Don't attach source positions to implicit returns.
Previously we'd attach source positions to implicit returns that are
generated when leaving an async function with a promise rejection. This
was due to the use of `kNoSourcePosition` on the `end_position` in the
`ReturnStatement` nodes as indicator to pick the return position from
the function literal, instead of really not putting a source position on
that specific `Return` bytecode.

This CL adds a dedicated marker to `ReturnStatement` to express that the
`BytecodeGenerator` should put the return position from the function
literal there instead of overloading the meaning of `kNoSourcePosition`.

Bug: chromium:901819, chromium:782461
Fixed: chromium:1199919, chromium:1201706
Change-Id: I3647e0c3d711e9c3d6ae44606b70ec92ad82e1cf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859945
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74301}
2021-04-30 12:33:29 +00:00
Michael Achenbach
78dbc1439d Revert "[build] Fix gn check failures in v8/third_party"
This reverts commit e13a744a45.

Reason for revert: breaks perfetto:
https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20debug%20-%20perfetto%20-%20builder/12849

Original change's description:
> [build] Fix gn check failures in v8/third_party
>
> This removes the blanket exclusion for third_party but leaves
> third_party/icu excluded (which is the same as chrome).
>
> Most fixed issues are to do with previously removed header files and
> missing dependencies.
>
> Bug: v8:7330
> Change-Id: I7e634e35c0620a1f3db9aba01119921e4f781e3e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856838
> Auto-Submit: Dan Elphick <delphick@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74295}

Bug: v8:7330
Change-Id: I05cf897c0aeb6bf87f9889b878358c0d02600081
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862767
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#74300}
2021-04-30 12:21:10 +00:00
Clemens Backes
bdfd5e2207 [cleanup][objects] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=jkummerow@chromium.org

Bug: v8:11717
Change-Id: Iaaab7cc1ba8af297cf6f3aafa349bf29b34cd60d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859949
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74299}
2021-04-30 12:11:39 +00:00
Clemens Backes
b5a6366896 [cleanup][debug][inspector] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=szuend@chromium.org

Bug: v8:11717
Change-Id: Icce08a55509b06bacfc75276a2ae69c59e8b021d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859951
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74298}
2021-04-30 11:57:49 +00:00
Clemens Backes
52c7ab5654 [cleanup][test] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=ahaas@chromium.org

Bug: v8:11717
Change-Id: Ica92f4ddc9c351c1c63147cbcf050086ca26cc07
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859854
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74297}
2021-04-30 11:46:14 +00:00
Clemens Backes
f24b38af2c [cleanup][wasm] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=jkummerow@chromium.org

Bug: v8:11717
Change-Id: I5e6261c9a4825f6b58068d57327601723edfa481
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859948
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74296}
2021-04-30 11:45:09 +00:00
Dan Elphick
e13a744a45 [build] Fix gn check failures in v8/third_party
This removes the blanket exclusion for third_party but leaves
third_party/icu excluded (which is the same as chrome).

Most fixed issues are to do with previously removed header files and
missing dependencies.

Bug: v8:7330
Change-Id: I7e634e35c0620a1f3db9aba01119921e4f781e3e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856838
Auto-Submit: Dan Elphick <delphick@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74295}
2021-04-30 11:23:19 +00:00
Santiago Aboy Solanes
885b1185b3 [compiler] Update prototype chain lookup on MapRef and MapData
Map::HasOnlyStablePrototypesWithFastElements and
Map::SerializeForElementStore were asking if the prototype was a
JSObject but they were doing so with the original map on every loop
iteration instead of the current prototype's map.

Also, we can change it so that instead of using the underlying data
to check if it was a JSObject, but we can get the same information
reading the map's instance_type directly.

Bug: v8:7790
Change-Id: I314b361e59dd16e101d4fbcfbe558aeffd576cd5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859164
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74294}
2021-04-30 10:09:19 +00:00
Clemens Backes
b0ce0e3403 [cleanup][base] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=mlippautz@chromium.org

Bug: v8:11717
Change-Id: I05951486c8bbcd06bd4f329793cc483a1ade6833
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859851
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74293}
2021-04-30 10:07:49 +00:00
Clemens Backes
cd59c53a90 [cleanup][utils] Remove redundant NOLINT annotations
cpplint rules change over time, and we change the exact rules we enable
for v8. This CL removes NOLINT annotations which are not needed
according to the currently enabled rules.

R=mlippautz@chromium.org

Bug: v8:11717
Change-Id: I26602ad8aa509646053ec1bdd79470116b89dc3f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859853
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74292}
2021-04-30 09:57:29 +00:00
Wenyu Zhao
bcff0072da [test] Skip shared-heap tests and one more code range test for TPH
Bug: v8:11641
Change-Id: I3d9efa63ffb2ec7d188c13d0bf24bdc7e8297a28
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2861064
Auto-Submit: Wenyu Zhao <wenyu.zhao@anu.edu.au>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74291}
2021-04-30 08:19:22 +00:00
Marja Hölttä
387c803020 [super IC] Fix a receiver vs lookup start object confusion bug
Bug: chromium:1203122
Change-Id: I80a22bbc1e700cca33e26d6a1cf294a5e9a334eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856538
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74290}
2021-04-30 08:11:22 +00:00
Alex Rudenko
7d5e5f6c62 Implement V8InspectorSession::initializeCommandLineAPIScope
In https://crrev.com/c/2842128, a concern was raised that using
`V8InspectorSession::createCommandLineAPI` directly would not cache the command line
API definitions and V8 could expose a higher level API for this use
case. This CL exposes `InjectedScript::ContextScope` via V8InspectorSession.
If this approach is approved, V8InspectorSession::createCommandLineAPI
could be removed.

Example usage: https://crrev.com/c/2858964

Bug: chromium:1200705
Change-Id: Ib9fcadcb9bbd75c08f0122b0e4ee61e2874c4f8a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857640
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74289}
2021-04-30 06:12:33 +00:00
Junliang Yan
1a5d2e31c6 ppc: [liftoff] implement f32/64_set_cond
Change-Id: I294c465230b1c1b8bdb21e8e42bc419c8528d217
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2860742
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#74288}
2021-04-29 20:22:35 +00:00
Jakob Kummerow
e0b941688e [wasm-gc] Optimize performance of call_ref
By (mostly) unifying the different kinds of WasmFunctionData, and
precomputing and caching what we can, we can reduce the amount of
work that has to be done for each call.
We still have to store the current instance for JS function calls;
that may be eliminatable in the future.
WasmCapiFunctions are not included in the refactoring yet.

Bug: v8:7748,v8:9495
Change-Id: Ie6839153153d5854670cd01bc77a86111c1f68d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856543
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74287}
2021-04-29 18:42:45 +00:00
Vicky Kontoura
60b27a114f Reland "[web snapshot] Support numbers"
This is a reland of 7dcc70b8c9

Original change's description:
> [web snapshot] Support numbers
>
> This CL adds support for integer and double values in web snapshots.
>
> Bug: v8:11525, v8:11706
> Change-Id: Ib75c52d440cd51bf78f57eecca09cecf35b801a4
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854734
> Commit-Queue: Vicky Kontoura <vkont@google.com>
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74259}

Bug: v8:11525
Bug: v8:11706
Change-Id: Ia5912ab22db24559c6d0f028a8e744ec448e2250
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859942
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Vicky Kontoura <vkont@google.com>
Cr-Commit-Position: refs/heads/master@{#74286}
2021-04-29 17:44:05 +00:00
Sam Parker
4bd6f82cda [arm64][compiler] Instruction select add/sub sxtw
Modify TryAnyExtendMatch to combine Int64Add/Int64Sub(x, ChangeInt32ToInt64(y))
to use an extend register operand, removing the cast.

Change-Id: Id130f8a9614e2c208f9ed8c17b923ee738fcb916
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857964
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Cr-Commit-Position: refs/heads/master@{#74285}
2021-04-29 16:45:45 +00:00
Vasili Skurydzin
ad5f34a1d8 [ppc64] Skip simd tests if power processor version is earlier than 9
Change-Id: Idabbd2b1326fcca04cd937a730c5418f9c9cf8af
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2855075
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Vasili Skurydzin <vasili.skurydzin@ibm.com>
Cr-Commit-Position: refs/heads/master@{#74284}
2021-04-29 15:36:04 +00:00
Junliang Yan
629ee772e3 ppc: [liftoff] implement LoadConstant
Change-Id: Ia3c703dc47744cffc3f86ec46abb341e6c37590c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857637
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#74283}
2021-04-29 15:33:14 +00:00