Commit Graph

47112 Commits

Author SHA1 Message Date
Peter Marshall
9160b83211 [runtime] Use the correct generic construct stub based on harmony flags
We hardcoded this accidentally in the original CL for the turbofan case,
instead we need to call JSConstructStubGeneric() which will return the
correct construct stub based on the harmony_restrict_constructor_return
flag.

Bug: chromium:829899
Change-Id: I6776a5daebd57d8881d926ad68595141312a877d
Reviewed-on: https://chromium-review.googlesource.com/1001893
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52470}
2018-04-09 09:29:07 +00:00
Simon Zünd
c6cb81a884 Adds CSA builtin for abstract TypedArray constructor.
Also removes the JS constructor.

R=jgruber@chromium.org

Bug: v8:7624
Change-Id: I33493ab2fafb35f95fb1822d46d3f249568c0a56
Reviewed-on: https://chromium-review.googlesource.com/999534
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52469}
2018-04-09 08:10:55 +00:00
Andreas Haas
1800e9bb36 [wasm][anyref] Add support for js-to-wasm and wasm-to-js wrappers
R=titzer@chromium.org

Bug: v8:7581
Change-Id: Ib100a45ad51ec6b6a0400cfe97fe918089c04ead
Reviewed-on: https://chromium-review.googlesource.com/998095
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52468}
2018-04-09 08:00:55 +00:00
Vlad Tsyrklevich
563c352466 [CFI] Refactor x64 test use of FUNCTION_CAST
Replace direct calls to generated code with calls using GeneratedCode to
match the rest of v8.

BUG=v8:7164

Change-Id: I5d90bcb6e90d99e105be18886d4844b83f611b95
Reviewed-on: https://chromium-review.googlesource.com/1000416
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52467}
2018-04-09 07:54:56 +00:00
jgruber
4e8d4bda9d Skip debug-stepout-scope-part* on tsan/stress
Remaining tests also lead to OOM, skip all of them on tsan stress
modes.

Bug: v8:7626
Change-Id: Ie2c128b9a718c7c34c974e628ba60e5549ea04fc
Reviewed-on: https://chromium-review.googlesource.com/1002552
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52466}
2018-04-09 07:52:15 +00:00
Ulan Degenbaev
12708c93e1 [heap-profiler] Make WeakMap key edge name more descriptive.
Currently a WeakMap key edge shows up as '<id> / WeakMap'. This patch
changes it to '<id> / key <KeyName> in WeakMap'.

Bug: chromium:827713
Change-Id: I0306bacdc331ab69739be88cf29d16a21187625f
Reviewed-on: https://chromium-review.googlesource.com/992035
Reviewed-by: Alexei Filippov <alph@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52465}
2018-04-09 07:32:20 +00:00
Michael Achenbach
59a5682589 [V8] Share windows runtime dlls with src/build
Bug: chromium:653569
Change-Id: I2fa288d3281c75d3e5d483fb94d29efe454c633b
Reviewed-on: https://chromium-review.googlesource.com/1000773
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52464}
2018-04-09 07:31:15 +00:00
Hannes Payer
001814ee90 [heap] Initialize free space memory in the sweeper.
Bug: chromium:829771
Change-Id: Ia3b6221cdc54c5102760665076f1cb2541d16fb4
Reviewed-on: https://chromium-review.googlesource.com/999634
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52463}
2018-04-09 06:38:20 +00:00
v8-autoroll
b7b9ad61ba Update V8 DEPS.
Rolling v8/build: 30e8660..6ae4520

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/5361d68..1e3e74d

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

Change-Id: I5055341de21a09bc3dd221b52b8d655221b0c654
Reviewed-on: https://chromium-review.googlesource.com/1001652
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52462}
2018-04-08 03:50:50 +00:00
v8-autoroll
24e117b5fa Update V8 DEPS.
Rolling v8/build: d1cd744..30e8660

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/aaeb23e..5361d68

Rolling v8/tools/clang: cd83d95..d7c36b0

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

Change-Id: I2f99649c97e5e83616822d442c60bcbd1ca9e9b9
Reviewed-on: https://chromium-review.googlesource.com/1000489
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52461}
2018-04-07 03:52:27 +00:00
Daniel Clifford
4aa00d1477 Add new CSA routines needed by Torque
Currently these new functions are unused and untested, but will be used once
Torque is checked in. They are split off into this separate CL to ease rollback
of Torque if required.

Change-Id: If2b96f342011592ae7cd88a4f6d9a4f2acc3643e
Reviewed-on: https://chromium-review.googlesource.com/998171
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52460}
2018-04-06 20:58:32 +00:00
Eric Holk
9c9e458377 [wasm] Enable remaining cctests with trap handlers
Bug: v8:5277
Change-Id: I47ad0b7dbd9471e350b7aa1b6dd5ad122b97021a
Reviewed-on: https://chromium-review.googlesource.com/990239
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Eric Holk <eholk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52459}
2018-04-06 18:05:49 +00:00
Myles Borins
9ca75fb635 [time] remove High-resolution PrintError
A DCHECK in TimeTicks::HighResolutionNow was replaced with
a warning to stop systems from crashing. This warning broke
parts of the Node.js test-suite on certain systems.

The warning has been replaced with a comment documenting
this situation and a TODO to ensure we don't lose track
of this code path.

Bug: v8:7617
Bug: chromium:809016
Change-Id: I5e3af8c31817291d264af861514f34e3e1af9af2
Reviewed-on: https://chromium-review.googlesource.com/997153
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Myles Borins <mborins@google.com>
Cr-Commit-Position: refs/heads/master@{#52458}
2018-04-06 16:13:45 +00:00
Clemens Hammacher
609c8059b2 Remove redundant WARN_UNUSED_RESULT macro
Replace all uses with V8_WARN_UNUSED_RESULT.
WARN_UNUSED_RESULT was defined in src/base/compiler-specific.h, which
includes include/v8config.h, which already defined
V8_WARN_UNUSED_RESULT.

R=mstarzinger@chromium.org

Bug: v8:7570
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I662072294605036ca5aa0c8fdaa0218ac5d95f23
Reviewed-on: https://chromium-review.googlesource.com/998893
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52457}
2018-04-06 16:06:15 +00:00
Michael Achenbach
1d9b29d5fe [test] Skip flaky test
NOTRY=true
TBR=hablich@chromium.org

Bug: v8:7632
Change-Id: I42e6b3f3585c8a98750ac39de06934174f2a2fa4
Reviewed-on: https://chromium-review.googlesource.com/999417
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52456}
2018-04-06 15:19:34 +00:00
Daniel Clifford
174625c842 Temporarly disable flaky OutOfMemory test
Change-Id: If2a207d97b16bd74c2fd75e2ad9be1ecc921f492
Reviewed-on: https://chromium-review.googlesource.com/998169
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52455}
2018-04-06 15:16:52 +00:00
Leszek Swirski
6bd1d3c280 [objects] Merge SFI outer_scope_info and feedback_metadata
Merge the outer_scope_info and feedback_metadata fields on
SharedFunctionInfo. outer_scope_info is only used during parsing,
and feedback_metadata is only available after compilation, so the
two never exist at the same time. Thus, they can share a field slot.

The exception is un-compiling and re-compiling a function, where we
need the outer_scope_info again. Fortunately, the outer_scope_info
can be re-calculated from the SFI's scope_info.

Bug: v8:7606
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I6b97fefe859e89df75ad870da4a0bfa4b869772a
Reviewed-on: https://chromium-review.googlesource.com/992432
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52454}
2018-04-06 15:06:04 +00:00
jgruber
48d1525daf Skip debug-stepout-scope on tsan/stress
Bug: v8:7626
Change-Id: Ifd6908941b7bc62357c3577bea4a097c45903129
Reviewed-on: https://chromium-review.googlesource.com/998167
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52453}
2018-04-06 15:01:02 +00:00
Alexey Kozyatinskiy
ab61093f68 Reland "[debug] add runtime side effect check for StaCurrentContextSlot"
This is a reland of 0340874be4

Original change's description:
> [debug] add runtime side effect check for StaCurrentContextSlot
> 
> R=yangguo@chromium.org
> 
> Bug: v8:7588
> Change-Id: If78f6dd460c7423923800a98d44520c1bf71663c
> Reviewed-on: https://chromium-review.googlesource.com/996236
> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52398}

Bug: v8:7588
Change-Id: Ife6b039ea3291103a54ae04c3007fe4610371c3f
Reviewed-on: https://chromium-review.googlesource.com/998801
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52452}
2018-04-06 14:54:43 +00:00
Clemens Hammacher
83fd383b07 [wasm] Simplify background task handling
The maximum number of background tasks to spawn can be computed
right in the constructor of the CompilationState, and is constant
afterwards. Additionally, we ensure to never start more background
tasks than the number of available compilation units.

R=ahaas@chromium.org

Change-Id: I430e9a28a0bd15166ed05d120782f182d10c3e44
Reviewed-on: https://chromium-review.googlesource.com/997652
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52451}
2018-04-06 14:47:21 +00:00
Ben L. Titzer
12e3c96f2a [wasm] Remove WasmToWasm wrapper vestiges
R=mstarzinger@chromium.org

Bug: v8:7424
Change-Id: I5a854d334957c285eebe850024c25d1cdcf71f7f
Reviewed-on: https://chromium-review.googlesource.com/995772
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52450}
2018-04-06 14:45:16 +00:00
Junliang Yan
62896e48da PPC/s390: Reland "[runtime] Remove the construct_stub field of the SFI"
Port b158bfdc2f

Original Commit Message:

    This is a reland of 63ecddc814

    Original change's description:
    > [runtime] Remove the construct_stub field of the SFI
    >
    > Don't dispatch based on the construct_stub field anymore. Rather than
    > read it out and jump to the construct stub, we can switch on the
    > builtin_id.
    >
    > Builtins will always have builtin_id as a Smi, so this signals we need
    > to jump to JSBuiltinsConstructStub. The only exception is for uncompiled
    > functions, which will have kCompileLazy as the builtin_id, but need to
    > jump to the generic stub instead.
    >
    > API function calls will have a FunctionTemplateInfo in the SFI
    > function_data field, and need to go to the builtins stub as well.
    >
    > The final case is everything else, which should go to the generic stub.
    >
    > Bug: v8:7503
    > Change-Id: I14790a5f9784dc0d940bf10a05f5310026e1d482
    > Reviewed-on: https://chromium-review.googlesource.com/980941
    > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
    > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
    > Commit-Queue: Peter Marshall <petermarshall@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#52345}

R=petermarshall@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I53d92ea7326c5a0ffec25eef0972cdeb659848b6
Reviewed-on: https://chromium-review.googlesource.com/998018
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#52449}
2018-04-06 14:26:40 +00:00
Igor Sheludko
e4a72d8b7f [csa] Minor refactoring to prepare for the Object.assign CL.
1) Add exit point parameter to EmitGenericPropertyStore(),
2) carve TryLookupPropertyInSimpleObject() out of TryLookupProperty().

Bug: v8:5988
Change-Id: I6cef48731c27e5bb72dce5eaa0169fbf59787ed7
Reviewed-on: https://chromium-review.googlesource.com/997747
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52448}
2018-04-06 14:25:34 +00:00
v8-autoroll
fb0bc36be2 Update V8 DEPS.
Rolling v8/build: 647f86b..d1cd744

Rolling v8/buildtools: 3748a2a..10d701f

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/b1c9ad5..aaeb23e

Rolling v8/tools/clang: 82ac1c9..cd83d95

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

Change-Id: Ib6e4745827cc54412062558c1f7272fc56143518
Reviewed-on: https://chromium-review.googlesource.com/999329
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52447}
2018-04-06 14:22:44 +00:00
Igor Sheludko
f018cebf38 [csa] Fix incorrect usages of SelectTaggedConstant() and drop it.
... in favor of SelectConstant().

Bug: chromium:829679
Change-Id: Ic7cc887254b4f6b29339b06c5782d71f77d3c9a5
Reviewed-on: https://chromium-review.googlesource.com/999601
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52446}
2018-04-06 13:54:02 +00:00
Clemens Hammacher
9136841f58 [wasm] Eliminate nondeterminism if requested
If --wasm-num-compilation-tasks is set to 0, we spawn all background
tasks as foreground tasks. Semantically, they are still treated like
background tasks, but they will execute interleaved with the foreground
tasks. This should not deadlong since all foreground tasks eventually
return to the event loop.

R=ahaas@chromium.org

Bug: chromium:829681
Change-Id: Id57cbb10157c085acd57a3d30a0a43c824a64591
Reviewed-on: https://chromium-review.googlesource.com/999594
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52445}
2018-04-06 13:40:23 +00:00
Sergiy Byelozyorov
87f9c1483c Suppress running find_bad_constructs when testing V8 standalone
R=machenbach@chromium.org

Change-Id: I45a6b7ef7b185c0bc05185672383c682b6e1e798
Reviewed-on: https://chromium-review.googlesource.com/998153
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52444}
2018-04-06 13:24:30 +00:00
Yang Guo
aa3fb5d85c Update tools/node/fetch_deps to new googletest location.
TBR=machenbach@chromium.org

Change-Id: Icbba06aefb728ebc7e2f04fa9992d51e0589a33b
Reviewed-on: https://chromium-review.googlesource.com/999596
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52443}
2018-04-06 13:23:20 +00:00
Igor Sheludko
d1532a1aef [ic] Don't use slow stub handler for fresh transitioning stores.
Given that we got a store transition handler for free (because it's just
a transition map) there's no need to wait for a second "use" of that
transition in order to install a normal store transition handler.

Bug: v8:5988
Change-Id: Iecdcfdd096a8efffdd0662f1b1d604943e57d85a
Reviewed-on: https://chromium-review.googlesource.com/997553
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52442}
2018-04-06 13:17:07 +00:00
Peter Marshall
1f7d80cd97 [cleanup] Add CSA types to SpeciesConstructor and GetSuperConstructor
Also changed the order of params so that context comes first to be more
consistent with other CSA helpers.

Change-Id: Ibf602dc7f3a148bed7fc0f93cc3dbc714febd786
Reviewed-on: https://chromium-review.googlesource.com/999513
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52441}
2018-04-06 13:14:57 +00:00
Michael Achenbach
223e0088ef Revert "[heap] Move initial objects into RO_SPACE"
This reverts commit f8ae62fe14.

Reason for revert:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20internal%20snapshot/builds/14825

Original change's description:
> [heap] Move initial objects into RO_SPACE
> 
> This moves:
> * the main oddballs (null, undefined, hole, true, false) as well as
> their supporting maps (also adds hole as an internalized string to make
> this work).
> * most of the internalized strings
> * the struct maps
> * empty array
> * empty enum cache
> * the contents of the initial string table
> * the weak_cell_cache for any map in RO_SPACE (and eagerly creates the
> value avoid writing to it during run-time)
> 
> The StartupSerializer stats change as follows:
> 
>      RO_SPACE  NEW_SPACE  OLD_SPACE  CODE_SPACE  MAP_SPACE  LO_SPACE
> old         0          0     270264       32608      12144         0
> new     21776          0     253168       32608       8184         0
> Overall memory usage has increased by 720 bytes due to the eager
> initialization of the Map weak cell caches.
> 
> Also extends --serialization-statistics to print out separate instance
> type stats for objects in RO_SPACE as shown here:
> 
>   Read Only Instance types (count and bytes):
>        404      16736  ONE_BYTE_INTERNALIZED_STRING_TYPE
>          2         32  HEAP_NUMBER_TYPE
>          5        240  ODDBALL_TYPE
>         45       3960  MAP_TYPE
>          1         16  BYTE_ARRAY_TYPE
>          1         24  TUPLE2_TYPE
>          1         16  FIXED_ARRAY_TYPE
>          1         32  DESCRIPTOR_ARRAY_TYPE
>         45        720  WEAK_CELL_TYPE
> 
> Bug: v8:7464
> Change-Id: I12981c39c82a7057f68bbbe03f89fb57b0b4c6a6
> Reviewed-on: https://chromium-review.googlesource.com/973722
> Commit-Queue: Dan Elphick <delphick@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52435}

TBR=rmcilroy@chromium.org,yangguo@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,delphick@chromium.org

Change-Id: Ie62a73a5be3b21a15bb46e342acb3e808fbaa4f3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7464
Reviewed-on: https://chromium-review.googlesource.com/999653
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52440}
2018-04-06 12:42:37 +00:00
Michael Achenbach
dcfea5b358 [test] Mark slow tests
NOTRY=true
TBR=clemensh@chromium.org

Change-Id: Ifc171886d122ca19230a3099cf14f13a4bfcabb1
Reviewed-on: https://chromium-review.googlesource.com/999515
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52439}
2018-04-06 12:28:56 +00:00
Clemens Hammacher
6651b95b41 [wasm] Test that Manageds get collected on GC
Test that Managed objects get collected if they are not referenced any
more.

R=ulan@chromium.org

Bug: v8:7628
Change-Id: I4a594ebe835071d76d7a6e2ddee6a6092b3e4a31
Reviewed-on: https://chromium-review.googlesource.com/999482
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52438}
2018-04-06 12:20:37 +00:00
Michael Achenbach
ba5b4a3235 [foozzie] Make correctness runs deterministic
NOTRY=true

Bug: chromium:829681
Change-Id: Iccf9b190e77b1c27fedec74d67f5948803dd1fa9
Reviewed-on: https://chromium-review.googlesource.com/998355
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52437}
2018-04-06 12:16:36 +00:00
Ben L. Titzer
a6d974fe00 [wasm] Merge the WasmContext into WasmInstanceObject
This change makes lifetime management of WasmCode much simpler.
By using the WasmInstanceObject as the context for WASM code execution,
including the pointer to the memory base and indirect function tables,
this keeps the instance alive when WASM code is on the stack, since
the instance object is passed as a parameter and spilled onto the stack.
This is in preparation of sharing the code between instances and
isolates.

Bug: v8:7424

R=mstarzinger@chromium.org

Change-Id: Ia35a3ce91a8f6135767fa764e185cde8bbc889f4
Reviewed-on: https://chromium-review.googlesource.com/997932
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52436}
2018-04-06 12:13:26 +00:00
Dan Elphick
f8ae62fe14 [heap] Move initial objects into RO_SPACE
This moves:
* the main oddballs (null, undefined, hole, true, false) as well as
their supporting maps (also adds hole as an internalized string to make
this work).
* most of the internalized strings
* the struct maps
* empty array
* empty enum cache
* the contents of the initial string table
* the weak_cell_cache for any map in RO_SPACE (and eagerly creates the
value avoid writing to it during run-time)

The StartupSerializer stats change as follows:

     RO_SPACE  NEW_SPACE  OLD_SPACE  CODE_SPACE  MAP_SPACE  LO_SPACE
old         0          0     270264       32608      12144         0
new     21776          0     253168       32608       8184         0
Overall memory usage has increased by 720 bytes due to the eager
initialization of the Map weak cell caches.

Also extends --serialization-statistics to print out separate instance
type stats for objects in RO_SPACE as shown here:

  Read Only Instance types (count and bytes):
       404      16736  ONE_BYTE_INTERNALIZED_STRING_TYPE
         2         32  HEAP_NUMBER_TYPE
         5        240  ODDBALL_TYPE
        45       3960  MAP_TYPE
         1         16  BYTE_ARRAY_TYPE
         1         24  TUPLE2_TYPE
         1         16  FIXED_ARRAY_TYPE
         1         32  DESCRIPTOR_ARRAY_TYPE
        45        720  WEAK_CELL_TYPE

Bug: v8:7464
Change-Id: I12981c39c82a7057f68bbbe03f89fb57b0b4c6a6
Reviewed-on: https://chromium-review.googlesource.com/973722
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52435}
2018-04-06 12:01:16 +00:00
Michael Achenbach
b4d1a3af6c [build] Add MB config for new cfi trybot
NOTRY=true
TBR=sergiyb@chromium.org

Bug: chromium:829774
Change-Id: I85ea46a68f620dfd7db04e881b6363ef260392f7
Reviewed-on: https://chromium-review.googlesource.com/999490
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52434}
2018-04-06 11:37:06 +00:00
Michael Starzinger
7b2b708ff0 [wasm] Remove obsolete {Code::has_tagged_params} field.
Now that all WebAssembly code (including its lazy compile stub) has been
moved off the garbage-collected heap, we can determine the taggedness of
parameters purely from the {Code::Kind} and no longer need a dedicated
flag for it.

R=clemensh@chromium.org
BUG=v8:6792

Change-Id: If40b6763d042c19b937391fac8301a03b8ccc891
Reviewed-on: https://chromium-review.googlesource.com/999416
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52433}
2018-04-06 11:09:23 +00:00
Michael Achenbach
146e3c1868 [build] Align all debug-specific options behind v8_debug gn arg
This will allow setting v8_debug from within a Chromium release bot.

Bug: chromium:828846
Change-Id: I714291feaa9ba90daba871ca9a12e6651bcd7dfa
Reviewed-on: https://chromium-review.googlesource.com/999486
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52432}
2018-04-06 11:04:23 +00:00
Michael Achenbach
85d98578b4 Revert "Reland "Enable cfi-icall on the v8 CFI bots""
This reverts commit cfd7df1bb6.

Reason for revert: Seems to flush out more problems:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20cfi/builds/14390

Original change's description:
> Reland "Enable cfi-icall on the v8 CFI bots"
> 
> This is a reland of 9a7e9cf2a7
> 
> Original change's description:
> > Enable cfi-icall on the v8 CFI bots
> > 
> > BUG=v8:7164
> > 
> > Change-Id: I7522ba6ac2bde89c84bcd49bc116a432091a2938
> > Reviewed-on: https://chromium-review.googlesource.com/990802
> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#52343}
> 
> Bug: v8:7164
> Change-Id: Ia883adedf9d54e4a2518d66c85799354d930990e
> Reviewed-on: https://chromium-review.googlesource.com/996133
> Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52425}

TBR=machenbach@chromium.org,clemensh@chromium.org,vtsyrklevich@chromium.org

Change-Id: I5a45756f7e2e74ac50ae9fb93716b9083cdf4379
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7164
Reviewed-on: https://chromium-review.googlesource.com/999633
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52431}
2018-04-06 10:50:04 +00:00
Clemens Hammacher
04246dcc1b [wasm] Clean up SetBlockType
Remove redundant argument, add a DCHECK and explicitly specify the
capture list of the lambdas.

R=ahaas@chromium.org

Bug: v8:7570
Change-Id: I09fc6004ffc5cdc7b4c153748ed95e86ae85aaa2
Reviewed-on: https://chromium-review.googlesource.com/998098
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52430}
2018-04-06 10:47:23 +00:00
Dan Elphick
378e884680 [snapshot] CodeSerializer never allocates in RO_SPACE
When serializing/deserializing RO_SPACE objects in CodeSerializer use
BackReferences to avoid re-allocating inside RO_SPACE.

Change-Id: Ie9063a43a4f758f0401ad59dfcc61c4b759591bc
Reviewed-on: https://chromium-review.googlesource.com/997837
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52429}
2018-04-06 10:33:13 +00:00
Jakob Gruber
2c3654c4a6 Revert "[debug] add runtime side effect check for StaCurrentContextSlot"
This reverts commit 0340874be4.

Reason for revert: Tentative revert for https://crbug.com/v8/7626

Original change's description:
> [debug] add runtime side effect check for StaCurrentContextSlot
> 
> R=​yangguo@chromium.org
> 
> Bug: v8:7588
> Change-Id: If78f6dd460c7423923800a98d44520c1bf71663c
> Reviewed-on: https://chromium-review.googlesource.com/996236
> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52398}

TBR=yangguo@chromium.org,kozyatinskiy@chromium.org

Change-Id: I77a679649a6149607aefd44f6b7f3f6dfe548776
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7588
Reviewed-on: https://chromium-review.googlesource.com/998036
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52428}
2018-04-06 09:53:25 +00:00
Simon Zünd
028d4d8107 Removes messages.js
Inlines nameOrSourceURL and locationFromPosition of the Script object
at call sites.

R=jgruber@chromium.org

Bug: v8:7624
Change-Id: If217d4c1412fa22aaa856a017f73be4c803e70ac
Reviewed-on: https://chromium-review.googlesource.com/997741
Commit-Queue: Simon Zünd <szuend@google.com>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52427}
2018-04-06 09:24:23 +00:00
Michael Lippautz
3e3606e744 [heap] Fix ArrayBufferTracker teardown ordering
The byte_length of ArrayBuffers may be a heap number. This length is
needed for freeing a buffer during tear down, implying that ArrayBuffers
need to be freed before regular space tear down can remove actual pages.

Bug: v8:7623
Change-Id: Iab91843e48c50276a2e110915f69cf9e6c24ef8f
Reviewed-on: https://chromium-review.googlesource.com/997776
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52426}
2018-04-06 09:23:18 +00:00
Vlad Tsyrklevich
cfd7df1bb6 Reland "Enable cfi-icall on the v8 CFI bots"
This is a reland of 9a7e9cf2a7

Original change's description:
> Enable cfi-icall on the v8 CFI bots
> 
> BUG=v8:7164
> 
> Change-Id: I7522ba6ac2bde89c84bcd49bc116a432091a2938
> Reviewed-on: https://chromium-review.googlesource.com/990802
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52343}

Bug: v8:7164
Change-Id: Ia883adedf9d54e4a2518d66c85799354d930990e
Reviewed-on: https://chromium-review.googlesource.com/996133
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52425}
2018-04-06 09:22:14 +00:00
Mythri
9cf5e47bfa Fix --cache=code option to work with interactive shell.
--cache=code produces and consume cache in different isolates. Earlier
we created a new isolate for the run consuming the code cache. This cl
changes to create a new isolate when producing the code cache so that
RunShell works as expected.

Change-Id: I1c73aab2bee429aafdcc52a68ddcf742edfcd652
Reviewed-on: https://chromium-review.googlesource.com/997694
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52424}
2018-04-06 09:03:43 +00:00
Vlad Tsyrklevich
fee762f9a9 [CFI] Add chromium cfi-icall blacklist entries
BUG=v8:7164

Change-Id: I00f5fc6452901538a04315b93550be9bf03a9dd2
Reviewed-on: https://chromium-review.googlesource.com/996406
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52423}
2018-04-06 08:12:53 +00:00
Sigurd Schneider
3c2a259db9 Revert "[turbofan] Enable Promise constructor inlining by default"
This reverts commit 370d95dc36.

Reason for revert: Unexpected performance regressions

Original change's description:
> [turbofan] Enable Promise constructor inlining by default
> 
> Bug: v8:7584
> Change-Id: I7443c28c74676ee1f27550674c8f712594e21cc7
> Reviewed-on: https://chromium-review.googlesource.com/992314
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52341}

TBR=mstarzinger@chromium.org,jarin@chromium.org,sigurds@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: v8:7584
Change-Id: I821d73475d3e62d0e1ee1233d8e18c1f854e26bc
Reviewed-on: https://chromium-review.googlesource.com/999413
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52422}
2018-04-06 07:46:33 +00:00
Myles Borins
536bd76ad0 [tools] update node fetch_deps.py for gn
Various fixes necessary to get the script working with V8 6.6

Upstreamed from https://github.com/nodejs/node/pull/19201

Change-Id: Ic7819eb17cf4be8380b8c1811e569236244e7400
Reviewed-on: https://chromium-review.googlesource.com/996858
Commit-Queue: Myles Borins <mborins@google.com>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52421}
2018-04-06 07:35:33 +00:00