Commit Graph

48161 Commits

Author SHA1 Message Date
Mathias Bynens
dd78d60359 Ship Array.prototype.{flat,flatMap} 🎉
Intent to ship:
https://groups.google.com/d/msg/v8-users/15GL4-UHEcE/OEKOou3bBgAJ

Bug: v8:7220
Change-Id: Ib1efde29e27b956db3d8ebf12ff7a3f163db7c22
Reviewed-on: https://chromium-review.googlesource.com/1076335
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53419}
2018-05-29 15:44:18 +00:00
Camillo Bruni
f728d6984d [js-perf-test] Consistently use createSuite in all benchmarks
Change-Id: I7bf0144bacd0572a42b98d0a0f19df3daf63128b
Bug: chromium:840785
Reviewed-on: https://chromium-review.googlesource.com/1051240
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53418}
2018-05-29 15:06:48 +00:00
Junliang Yan
8b37b69824 PPC/s390: [stubs] General stub cleanup (includes & platform-independent code)
Port c52b7af57d

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

Change-Id: I75ec0305f618336ce63fb664ae356dfcf48948c4
Reviewed-on: https://chromium-review.googlesource.com/1075468
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53417}
2018-05-29 15:02:28 +00:00
Simon Zünd
9ef4df2f30 [torque] Add unsafe cast to Torque.
This CL is a proposal to add "checked" casts (CAST in CSA) to the Torque language.
The CL adds the "unsafe_cast<>" operator that emits a "CAST".

Example:

let n: Number = ...;
...
if (TaggedIsSmi(n)) {
  let m: Smi = unsafe_cast<Smi>(n);
  ...
}

The cast wont incur a runtime overhead now.

R=tebbi@chromium.org

Change-Id: I9fca90d1d11e61617ba0270e5022fd66200e2195
Reviewed-on: https://chromium-review.googlesource.com/1070151
Commit-Queue: Simon Zünd <szuend@google.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53416}
2018-05-29 14:59:58 +00:00
Anna Henningsen
0fd549f885 [api] Allow escaping MaybeLocal handles on EscapableHandleScope
This adds a convenience overload for `EscapableHandleScope::Escape()`
which moves `MaybeLocal<T>`s into the outer scope, like a regular
`Local<T>`.

This basically moves the syntactic clutter of having to write
`maybe_local.FromMaybe(Local<Foo>())` instead of just `maybe_local`
to a central location.

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I1d87d75c6564b10e8ec34957bdd3eac46ffea917
Reviewed-on: https://chromium-review.googlesource.com/1056529
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53415}
2018-05-29 14:51:18 +00:00
Tobias Nießen
dcc76e7e45 [simulator] Fix simulator output
This change fixes the usage message of arm, mips, mips64, ppc and s390
simulators.

Change-Id: Ib00d3049cb1c81c2653ee8b66d21eabde8f16f76
Reviewed-on: https://chromium-review.googlesource.com/1059623
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53414}
2018-05-29 14:38:28 +00:00
Sebastien Marchand
df2419039c Fix a Jumbo breakage
see crbug.com/841460 , we recently hit some build issues when using
Goma + jumbo builds because of a conflict on the definition of CONST,
v8 defines it in globals.h and including windows.h also defines it. It
should be possible to fix this by adding a bunch of #undef CONST but it
seems a little bit hacky and might not always work (this could only fix
the problem temporary if the jumbo merge limit changes and cause some
include files to get included in a different order).

Renaming the v8 definition of CONST to kConst, this follows the
style guide guidelines: "there is no reason to change old code to use
constant-style names, unless the old names are actually causing a
compile-time problem"
(https://google.github.io/styleguide/cppguide.html#Enumerator_Names)

I also had to turn the PropertyConstness enum into an enum class to
avoid some conflicts (both PropertyConstness and VariableMode define
kConst).


Bug: chromium:841460
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I2b70b9095374e88a5ae364cc557b39f20a3ab60f
Reviewed-on: https://chromium-review.googlesource.com/1064197
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sébastien Marchand <sebmarchand@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53413}
2018-05-29 14:36:48 +00:00
Mathias Bynens
10b98d0d93 Stage Array.prototype.{flat,flatMap}
Proposal repo: https://tc39.github.io/proposal-flatMap/

Bug: v8:7220
Change-Id: I79022fe26c609225dce21c0b45e8bedff12cc7b5
Reviewed-on: https://chromium-review.googlesource.com/1076427
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53412}
2018-05-29 14:24:18 +00:00
Tobias Tebbi
bf9d2893f0 [torque] add union types
This adds support for union types to Torque.

There is a new type expression
A | B
to form the union of the type expressions A and B.
This is only possible if A and B have a common supertype, to prevent
nonsensical unions of types with different representations.

Union types are normalized:
A | B == B | A
A | (B | C) == (A | B) | C
A | A == A

The subtyping rules are defined recursively:
(A | B) <: C  if  A <: C and B <: C
A <: (B | C)  if  A <: B or A <: C

This allows to define Object as a union type:

type Tagged generates 'TNode<Object>';
type Smi extends Tagged generates 'TNode<Smi>';
type HeapObject extends Tagged generates 'TNode<HeapObject>';
type Object = Smi | HeapObject;

The type {Tagged} is introduced to have a common supertype of all
tagged values, but we should not use it directly, because {Object}
contains the additional information that there is nothing but {Smi}
and {HeapObject} values.

When mapping union types to CSA types, we select the most specific
common supertype. For Number and Numeric, we already use union types
on the CSA side. Since it is not possible to map to CSA union types
in general, we special-case these two union types to map them to
the CSA union types we already use.

Bug: v8:7793
Change-Id: I7a4e466436f55d04012f29ef17acfdb957653908
Reviewed-on: https://chromium-review.googlesource.com/1076132
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53411}
2018-05-29 14:12:57 +00:00
Marja Hölttä
57cc9eaeb1 [in-place weak refs] Remove WeakFixedArray::Shrink.
WeakFixedArray::Shrink is fragile when not used properly (might invalidate GC
bookeeping (location of weak slots)).

BUG=v8:7308

Change-Id: Id84329e2a78907f5f0bfafae32fc2a71b77edbe7
Reviewed-on: https://chromium-review.googlesource.com/1076236
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53410}
2018-05-29 13:44:57 +00:00
jgruber
757631830d [masm] Don't push CodeObject when entering INTERNAL frames
The code slot of internal frames seems to be basically unused.
As always, there are exceptions:

1. In elements.cc we check whether the current code object is the apply
builtin. We can use a heap lookup through the frame's pc instead.
2. In isolate.cc we store a reference to the frame's code object to try
and pack it into the minidump. This can safely be skipped.

Remaining use-sites in frames.cc all skip INTERNAL frames by using the
JavaScriptFrameIterator.

Bug: v8:6666
Change-Id: I93c5035812838bbae5109415450915db12497b9c
Reviewed-on: https://chromium-review.googlesource.com/1075047
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53409}
2018-05-29 13:20:03 +00:00
Michael Starzinger
502fc4068e [wasm] Avoid embedding {undefined} into {WasmCode}.
This removes the last embedded objects from {WasmCode} objects. We still
embedded the {undefined} value into Wasm-to-JS wrappers, those are now
loaded from the instance object similar to {null} values. The relocation
information for {WasmCode} now no longer contains {EMBEDDED_OBJECT} as
entries anywhere. Another step towards making code Isolate independent.

R=titzer@chromium.org
BUG=v8:7424

Change-Id: I720cd0230948f2063770595ceded373d9bb1e87d
Reviewed-on: https://chromium-review.googlesource.com/1075268
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53408}
2018-05-29 12:18:03 +00:00
Michael Starzinger
e966dcd4b6 [wasm] Remove dead {ValidateImmovableEmbeddedObjects}.
R=titzer@chromium.org

Change-Id: I228518b1db0f83cb5928a14bc65722d2329b0c53
Reviewed-on: https://chromium-review.googlesource.com/1076228
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53407}
2018-05-29 12:12:23 +00:00
Ben L. Titzer
42f179ad02 [wasm] Optimize decode fastpath
This CL further optimizes the decoding fastpath by moving feature
checks off the critical path. For prototype opcodes that are enabled
by feature flags, they are handled in a switch case off the main
path.

R=mstarzinger@chromium.org

Change-Id: If40fedbaadb9c611c78bc2b7df035ced056cb39a
Reviewed-on: https://chromium-review.googlesource.com/1076187
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53406}
2018-05-29 12:09:13 +00:00
Michael Starzinger
b2abe2cf97 [wasm] Introduce specialized WasmCompileLazy frame type.
This makes the WasmCompileLazy builtin push a new WASM_COMPILE_LAZY
frame type. We can thereby remove the workaround to return a relocated
instance from the underlying runtime function. It also removes the last
remaining embedded code objects from {WasmCode} objects.

R=titzer@chromium.org

Change-Id: Ic9c3f59339e8d7bed53ea0ed70ef50dfe640f1c6
Reviewed-on: https://chromium-review.googlesource.com/1073455
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53405}
2018-05-29 11:31:43 +00:00
Sigurd Schneider
661768cf12 [turbofan] Add deopt feedback to CheckIf
Bug: v8:7779
Change-Id: I97d7a46039d9063e4169fa215f7f6857c80eb3b9
Reviewed-on: https://chromium-review.googlesource.com/1076087
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53404}
2018-05-29 10:52:18 +00:00
Ben L. Titzer
02a51d7f33 [wasm] Check representation for secondary parameter locations
A previous CL (https://chromium-review.googlesource.com/c/v8/v8/+/1075056)
introduced an optimization the spill slot where the WASM instance
is stored using the "secondary parameter location" mechanism used for
JS functions and contexts. However the optimization checked the full
machine type of the parameter, which was too narrow. As a result,
the optimization never activated. This CL fixes that by only
checking the machine representation.

R=mstarzinger@chromium.org

Change-Id: I60813935c8d119d2ddf794c797dad314b99ea867
Reviewed-on: https://chromium-review.googlesource.com/1076008
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53403}
2018-05-29 10:51:15 +00:00
Michael Starzinger
f4b23239df [wasm] Add missing WebAssembly.instantiate regression test.
R=titzer@chromium.org
TEST=mjsunit/regress/wasm/regress-799952
BUG=chromium:799952

Change-Id: Idb4a1938cc04f2f5b1ea33ba390c5917fea2c0c1
Reviewed-on: https://chromium-review.googlesource.com/1075967
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53402}
2018-05-29 10:37:32 +00:00
Hannes Payer
66e9596c14 [heap] Cleanup: Use std::atomic<T> instead of base::AtomicNumber<T> in mark-compact.
Bug: chromium:842083
Change-Id: Ie09b02bfe3fbc4f9ad2486843349d0f896b87b39
Reviewed-on: https://chromium-review.googlesource.com/1075532
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53401}
2018-05-29 10:33:53 +00:00
Sigurd Schneider
d4258eb14c [turbolizer] Convert Turbolizer to TypeScript
Change-Id: I2be450c6498ce863d5e36acf02db643788e6c8bf
Reviewed-on: https://chromium-review.googlesource.com/1068045
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53400}
2018-05-29 10:07:41 +00:00
jgruber
3e57261399 [builtins] Move remaining Array constructor stubs to builtins
Calls from embedded builtins to stubs are expensive due to the
indirection through the builtins constants table. This moves
all remaining Array constructor stubs to builtins.

Bug: v8:6666
Change-Id: I5989a7480697a506a1bae1929ddd2e3f1d655048
Reviewed-on: https://chromium-review.googlesource.com/1074759
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53399}
2018-05-29 09:48:21 +00:00
Tobias Tebbi
54f77c4290 [cleanup] improve types in base.tq and use LoadTypedArrayLength everywhere
Bug: v8:7754
Change-Id: I8548d0e07fabc23bb5f65b1f91683c756195ae1b
Reviewed-on: https://chromium-review.googlesource.com/1071654
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53398}
2018-05-29 09:35:21 +00:00
Tobias Tebbi
506d49fb86 [torque] require exact match in return type for cast-like operations
This fixes the bug that cast<A>(...) could be interpreted as
cast<B>(...) if B is a subtype of A.

Bug: v8:7793

Change-Id: Ia03ce832f8c14ced09114d41c935be06d4629d99
Reviewed-on: https://chromium-review.googlesource.com/1075890
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53397}
2018-05-29 08:55:27 +00:00
jgruber
0a373f8a0d [stubs] Route all ArrayConstructor stub accesses through CodeFactory
This is the initial step towards moving all array constructor stubs to
builtins.

Bug: v8:6666
Change-Id: I49b86e43ab4ee3d0889853a2624e189ff7d2e705
Reviewed-on: https://chromium-review.googlesource.com/1073417
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53396}
2018-05-29 08:52:17 +00:00
Michael Lippautz
307ebc35fa Revert "[infra] Add gc_stats variant to Linux64 debug bot"
This reverts commit e839484ebe.

Reason for revert: https://ci.chromium.org/buildbot/client.v8/V8%20Linux64%20-%20debug/22300

Original change's description:
> [infra] Add gc_stats variant to Linux64 debug bot
> 
> No-try: true
> Bug: v8:7760
> Change-Id: I2a4e91b58de4387a4bfa5b79681db25880af8954
> Reviewed-on: https://chromium-review.googlesource.com/1068643
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53394}

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

Change-Id: I7342341fb63742de4e51c0df65e8323f2a6dbd7a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7760
Reviewed-on: https://chromium-review.googlesource.com/1075927
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53395}
2018-05-29 06:13:07 +00:00
Michael Lippautz
e839484ebe [infra] Add gc_stats variant to Linux64 debug bot
No-try: true
Bug: v8:7760
Change-Id: I2a4e91b58de4387a4bfa5b79681db25880af8954
Reviewed-on: https://chromium-review.googlesource.com/1068643
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53394}
2018-05-29 05:46:26 +00:00
Junliang Yan
d97ca526dc PPC/s390: [stubs] Remove TransitionElementsKindStub
Port a55d8632f7

Original Commit Message:

    Its contents are now inlined into the one remaining call site.

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

Change-Id: If0ba82784c0b9b095301e88141e1ff5b1fd507be
Reviewed-on: https://chromium-review.googlesource.com/1075607
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53393}
2018-05-28 16:54:26 +00:00
Hannes Payer
82f416382a [heap] Cleanup: Remove various from/to space helpers.
Change-Id: I4cb2e72fdc008ee855014d703af33d2e937bada3
Reviewed-on: https://chromium-review.googlesource.com/1070148
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53392}
2018-05-28 16:46:26 +00:00
Ben L. Titzer
2b5f7205cf [wasm] Improve fastpath for getting simple opcode signature
This CL improves the parsing and validation speed of WASM bytecode by
eliminating a call to get the "simple opcode signature" on the fast
path. It introduces a byte-indexed array that points directly to a
FunctionSig*. By declaring the array in the  wasm-opcodes.h header file
and initializing (constexpr) in the wasm-opcodes.cc file, the decoder
can use this array directly in its first test. (Note that constexpr
obviates the need for LazyInitialize in previous iterations of this
mechanism).

There are two more calls on this fast path that can be simplified,
WasmOpcodes::IsSignExtensionOpcode() and WasmOpcodes::IsAnyRefOpcode().
These calls are needed to check for a feature flag and can be
implemented differently in a followup CL.

R=mstarzinger@chromium.org

Change-Id: Ibb4adb1134932c7e0b6a35facec4d8dd8c998c56
Reviewed-on: https://chromium-review.googlesource.com/1075276
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53391}
2018-05-28 15:59:26 +00:00
Junliang Yan
f32878dcec PPC/s390: [builtins] Move InternalArrayConstructorStub to builtin
Port 7d161e4d38

Original Commit Message:

    Calls from embedded builtins to stubs are expensive due to the
    indirection through the builtins constants table. This moves
    the InternalArrayConstructorStub to a builtin.

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

Change-Id: Id16d4a5dc49d6832d5976aace17c33807270e50f
Reviewed-on: https://chromium-review.googlesource.com/1074558
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53390}
2018-05-28 14:42:22 +00:00
Igor Sheludko
7a45af140e [ptr-compr] Unify SmiTag/SmiUntag operations in hand-written assembly code.
The result of SmiUntag is a sign-extended word-size value.

Bug: v8:7703
Change-Id: I85dc87b541cab78286e47e2147c16c6a0939f509
Reviewed-on: https://chromium-review.googlesource.com/1073232
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53389}
2018-05-28 14:27:27 +00:00
Hannes Payer
7032b91dc0 [heap] Cleanup: Use std::atomic<T> instead of base::AtomicNumber<T> in spaces.
Bug: chromium:842083
Change-Id: Ic0cfd84d56f48e61711cdbb695178837e1570e21
Reviewed-on: https://chromium-review.googlesource.com/1073427
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53388}
2018-05-28 14:18:07 +00:00
Ben L. Titzer
246fd44c98 [wasm] Avoid respill and reload for WASM instance parameter
This CL adds support for "secondary parameter locations" for
the WASM instance parameter. Since this parameter is spilled onto
the stack by the function prologue, it is not necessary to allocate
additional spill slots for it. This saves both code space and
runtime.

R=mstarzinger@chromium.org

Change-Id: I440e2c58cd2a227be8a7f386df5193d8fb729fd1
Reviewed-on: https://chromium-review.googlesource.com/1075056
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53387}
2018-05-28 14:13:27 +00:00
Marja Hölttä
da2be4d030 [in-place weak refs] Fix HeapSnapshotGenerator.
WeakFixedArrays can also contain strong pointers.

(Separating this fix from
https://chromium-review.googlesource.com/c/v8/v8/+/1075053 ; after that CL tests
will fail without this fix.)

BUG=v8:7308

Change-Id: I0d47ab179625bcbf6149cf02ad696f8af250ae8d
Reviewed-on: https://chromium-review.googlesource.com/1075270
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53386}
2018-05-28 14:09:47 +00:00
Georg Neis
21eb2029d0 Fix bug in object literals with redeclarations.
Bug: v8:7791
Change-Id: I0df79f39c6f60b3cfbdc0161f7c085c635659d81
Reviewed-on: https://chromium-review.googlesource.com/1075054
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53385}
2018-05-28 13:00:07 +00:00
Yang Guo
d08dca5434 Do not install extensions when creating snapshot.
Bug: v8:7760

Change-Id: Id7bfa18f3ac0b7d62e99d0d530ea0cb9427e198e
Reviewed-on: https://chromium-review.googlesource.com/1074693
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53384}
2018-05-28 10:53:07 +00:00
Michael Starzinger
090f9b7719 [wasm] Extend checking of {WasmCode} relocation info.
This extends the validity checking of relocation information from only
non-anonymous {WasmCode} objects to all (even anonymous) such objects,
including code being copied in from the garbage-collected heap.

R=jgruber@chromium.org

Change-Id: Icbc842ad819f4471cc11d3d19bbde1d192731569
Reviewed-on: https://chromium-review.googlesource.com/1073284
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53383}
2018-05-28 10:33:37 +00:00
Yang Guo
aa6ce3ee61 [log][api] introduce public CodeEventListener API
Introduce a new public API called CodeEventListener to allow embedders
to better support external profilers and other diagnostic tools without
relying on unsupported methods like --perf-basic-prof.

Bug: v8:7694
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I063cc965394d59401358757634c9ea84c11517e9
Co-authored-by: Daniel Beckert <daniel@sthima.com.br>
Reviewed-on: https://chromium-review.googlesource.com/1028770
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53382}
2018-05-28 09:27:24 +00:00
Michael Starzinger
7633479c1c [wasm] Remove obsolete {RelocInfo::WASM_GLOBAL_HANDLE}.
R=titzer@chromium.org

Change-Id: I238835a63403e3688f271fc04f4a80c4b3c767c0
Reviewed-on: https://chromium-review.googlesource.com/1074656
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53381}
2018-05-28 09:07:44 +00:00
Jaroslav Sevcik
cb44d296a4 [turbofan] Remove unused Type::Of.
Bug: v8:7790
Change-Id: I9ca667109b17c5787aca8499dc379238cd43e5cb
Reviewed-on: https://chromium-review.googlesource.com/1073418
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53380}
2018-05-28 08:11:38 +00:00
v8-autoroll
f3a3c1ce4d Update V8 DEPS.
Rolling v8/build: 244ad31..39cffda

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

Change-Id: I92a7ae51de2eec216a072bfa80413dd5db556948
Reviewed-on: https://chromium-review.googlesource.com/1074560
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53379}
2018-05-28 03:28:27 +00:00
v8-autoroll
c1af23e1e5 Update V8 DEPS.
Rolling v8/build: 31a054c..244ad31

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

Change-Id: Ie4cb30a5c5524787703855e55265d099e8a656ff
Reviewed-on: https://chromium-review.googlesource.com/1074534
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53378}
2018-05-27 03:27:07 +00:00
Junliang Yan
b6b079d872 PPC/s390: [builtins] Move ArrayConstructorStub to builtin
Port 111c5735ef

Original Commit Message:

    Calls from embedded builtins to stubs are expensive due to the
    indirection through the builtins constants table. This moves
    the ArrayConstructorStub to a builtin.

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

Change-Id: Icc6af15d80eb5c95a191832eb9636ebe97e61e07
Reviewed-on: https://chromium-review.googlesource.com/1074548
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53377}
2018-05-26 18:16:56 +00:00
v8-autoroll
c45f74e29f Update V8 DEPS.
Rolling v8/build: f86e77c..31a054c

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/0e97383..0043a4a

Rolling v8/third_party/depot_tools: 4d2e8bf..f16fdf3

Rolling v8/tools/swarming_client: 34f5f28..3543e21

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

Change-Id: Icc3a21fc3cd6f39cbcbab2f6e7f4b6ef63476962
Reviewed-on: https://chromium-review.googlesource.com/1074069
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53376}
2018-05-26 03:31:12 +00:00
Aseem Garg
f22991ab40 [wasm] Add simd compare ops to wasm interpreter
R=gdeepti@chromium.org,bbudge@chromium.org,clemensh@chromium.org,titzer@chromium.org
BUG=v8:6020

Change-Id: I9d307a70d44504dc0e84e3e09d48bcc9b9542462
Reviewed-on: https://chromium-review.googlesource.com/1071095
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53375}
2018-05-25 22:29:34 +00:00
Aseem Garg
f8445719c3 [wasm] Delete Simd unsigned int types for interpreter
R=gdeepti@chromium.org,bbudge@chromium.org,clemensh@chromium.org,titzer@chromium.org
BUG=v8:6020

Change-Id: I05bb2124751f64565ad4e22f267fe42a3e0f1845
Reviewed-on: https://chromium-review.googlesource.com/1070935
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53374}
2018-05-25 22:19:24 +00:00
Bill Budge
a52ee2f5f5 [wasm] Fix compile for Arm64 on OSX
R=ahaas@chromium.org

Also-by: ahaas@chromium.org
Change-Id: Ieb7e20dedcbd3def7e6c4f42e6392306ac3ed1f7
Reviewed-on: https://chromium-review.googlesource.com/1073505
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53373}
2018-05-25 20:52:14 +00:00
Junliang Yan
a1269d684c PPC/s390: [builtins] Move ArrayNArgumentsConstructorStub to builtin
Port 0094defac4

Original Commit Message:

    Calls from embedded builtins to stubs are expensive due to the
    indirection through the builtins constants table. This moves
    the ArrayNArgumentsConstructorStub to a builtin.

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

Change-Id: Ibf5e33cd14ef5baece9ddb660ab54b07233e8a20
Reviewed-on: https://chromium-review.googlesource.com/1073056
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53372}
2018-05-25 18:47:24 +00:00
Eric Holk
54f9f0a249 [arm] Fix build from Mac
R= ahaas@chromium.org

Also-By: ahaas@chromium.org
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I8e34bb93df0cb7174e6c2fc2c36fe8697f4f88c4
Reviewed-on: https://chromium-review.googlesource.com/1073608
Reviewed-by: Eric Holk <eholk@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Eric Holk <eholk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53371}
2018-05-25 18:03:33 +00:00
Sreten Kovacevic
e48d9788a4 [mips] Port [wasm] Remove dead handling of RUNTIME_ENTRY relocations.
Port of commit 8ac37bc392.
RelocInfo::INTERNAL_REFERENCE_ENCODED is used only on mips, mips64
and ppc.

Original commit message:
`The RelocInfo::RUNTIME_ENTRY relocation mode is only used for deopt
points in JavaScript code and should never appear in WebAssembly code.`

Change-Id: Ic595103740dc3c349836114f9cbc815865c5b54c
Reviewed-on: https://chromium-review.googlesource.com/1073420
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Sreten Kovacevic <sreten.kovacevic@mips.com>
Cr-Commit-Position: refs/heads/master@{#53370}
2018-05-25 17:35:53 +00:00