Commit Graph

58942 Commits

Author SHA1 Message Date
Georg Neis
177489121a [turbofan] Fix concatenation in parameter printing
... and make the printing more consistent.

Bug: v8:9518
Change-Id: I6e8b595124974ec7f8e5003624bd33d2b0787ac0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864948
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64450}
2019-10-22 09:05:14 +00:00
Tobias Tebbi
419b4e7ea5 [torque] replace name mangling with unique numbering
Name mangling is hard to get right and not easy to read.
This CL replaces the remaining name mangling of types and generics
with simpler names that are not always unique, but then fixes them
up by appending a unique counter.

For struct types, this required an @export annotation since we use some
struct types in CSA.

Drive-by-fixes:

- Overwrite the copy constructor of Type to clear the list
of alias names when creating a new type.

- Change the existing append-a-number scheme to have different
  counters for each name. This the number of changed names when adding
  something and is more readable.

Bug: v8:7793
Change-Id: Ied11ea1a251130f4562ddc0d81967368349e0bf6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866650
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64449}
2019-10-22 08:56:43 +00:00
lybvinci
578d4a8ff7 Fix compile cctest error
When is_component_build is true, cctest will compile error, because
the dependencies is not exported.these files will failed:test-utils
-arm64.cc,test-strings.cc.

Change-Id: I4bcdde08199f21454ec6d7e230d9d096c0315eac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873447
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64448}
2019-10-22 08:32:59 +00:00
Michael Achenbach
a0e5b02dfa Whitespace change to trigger bots
Change-Id: I386570ae6881ad7831f6da69b4e727d05fec8f44
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872397
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64447}
2019-10-22 07:48:29 +00:00
Jakob Gruber
c4f502ed4d Remove JS natives support, step 3
The natives blob was deprecated in V8 7.8. This CL removes all related
functionality, including:

- Build system support, i.e.: generation of natives_blob.bin and the
v8_extra_library_files gn flag.
- Related scripts (js2c.py, concatenate-files.py).
- Related API functions (SetNativesDataBlob,
InitializeExternalStartupData).
- Natives bootstrapping logic.
- The InternalArray type (previously exposed through natives).
- Other natives-exposed builtins.
- Inlining of these builtins.
- The dedicated 'uncached external one byte string' type.

Step 1 landed in https://crrev.com/c/1824944.
Step 2 landed in https://crrev.com/c/1835536.
Step 3 (this CL) removes these all functionality related to natives
support in V8.

Bug: v8:7624
Change-Id: Ice6c2662781efe8417231805276476d32bc5a625
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1844771
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64446}
2019-10-22 07:48:05 +00:00
Michael Achenbach
aadd1e61d0 Revert "[Intl] Ship calendar and numberingSystem options"
This reverts commit 5d57f4e143.

Reason for revert:
https://ci.chromium.org/p/v8/builders/ci/V8%20Blink%20Linux/1332

Original change's description:
> [Intl] Ship calendar and numberingSystem options
> 
> Ship the "calendar" and "numberingSystem" options for
> Intl.DateTimeFormat (both options) and Intl.NumberFormat (only the later
> one) and support other calendar. Also consider the calendar while
> choosing calendar pattern.
> 
> I2L: http://shorturl.at/bgkAH
> I2S: http://shorturl.at/nuKUV
> 
> Flags: --harmony-intl-add-calendar-numbering-system
>        --harmony-intl-other-calendars
> 
> API owner approvals: chrishtr@ yoav@yoav.ws bratell.d@gmail.com
> 
> Plan to land into m80 tree and only merge after 10/17 m79 branch off.
> 
> Bug: v8:9154, v8:9155, v8:9320
> Change-Id: Ifa209919a40db60465f99405f3620a3b73b10204
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1838436
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64437}

TBR=adamk@chromium.org,jkummerow@chromium.org,ftang@chromium.org

Change-Id: I4b4f44ccdd771160161094beaaeb76d9d0dc005e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:9154, v8:9155, v8:9320
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872396
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64445}
2019-10-22 06:46:47 +00:00
v8-ci-autoroll-builder
572a4527d8 Update V8 DEPS.
Rolling v8/build: 7136ae1..996a3e8

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/a5c8651..0388283

Rolling v8/third_party/depot_tools: acf922c..53f9e09

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

Change-Id: I26c76120520eb6afdca3d46597dfc14dafa7e6fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871961
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@{#64444}
2019-10-22 03:39:15 +00:00
Zhi An Ng
7d1afc8628 Revert "Clean up macros"
This reverts commit 08b26f53c6.

Reason for revert: Breaks tree https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20noi18n%20-%20debug/29046

Original change's description:
> Clean up macros
> 
> Move some instruction definitions into sse-instr, which is used to
> generate some disasm tests, so we can remove some cases there.
> 
> Bug: v8:9810
> Change-Id: I0615ec823396da08bc5d234cf1dabca6afd3f052
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866965
> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64441}

TBR=gdeepti@chromium.org,zhin@chromium.org

Change-Id: I067c1fdbaa6eb2a08c0fcb7c8885d72f073a8818
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:9810
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873195
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64443}
2019-10-21 23:57:36 +00:00
Deepti Gandluri
6c54a6a6b6 Remove unused pshufw instruction
Bug: v8:9810
Change-Id: I5eb359f9bc04be4c0855a5161b7c525c803f679f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873187
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64442}
2019-10-21 23:43:35 +00:00
Ng Zhi An
08b26f53c6 Clean up macros
Move some instruction definitions into sse-instr, which is used to
generate some disasm tests, so we can remove some cases there.

Bug: v8:9810
Change-Id: I0615ec823396da08bc5d234cf1dabca6afd3f052
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866965
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64441}
2019-10-21 23:20:35 +00:00
Ng Zhi An
44d68718b1 Move SSE instructions into list macro
Bug: v8:9810
Change-Id: Ie7c497d8aae40db71c3039e457d0535fd8d5b3f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872015
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64440}
2019-10-21 23:13:24 +00:00
Frank Tang
4eddc6c524 Correct expectation of Infinity -Infinity and NaN
Bug: v8:9876
Change-Id: I2ca4512790e0a84b6f4ebd67bce76b7eb24eb33c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1867793
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64439}
2019-10-21 20:48:44 +00:00
Daniel Clark
777fa98cc4 Make SetSyntheticModuleExport throw instead of crash for nonexistent export name
Per spec, Module::SetSyntheticModuleExport should throw a ReferenceError
when called with an export name that was not supplied when constructing
that SyntheticModule.  Instead, the current implementation crashes with
a failed CHECK().

Add a new Module::SyntheticModuleSetExport that throws (without an ensuing
crash) for this case, and deprecate the old
Module::SetSyntheticModuleExport.

Bug: v8:9828
Change-Id: I3b3d353064c3851882781818099bd8f6ee74c809
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1860996
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Dan Clark <daniec@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#64438}
2019-10-21 20:32:04 +00:00
Frank Tang
5d57f4e143 [Intl] Ship calendar and numberingSystem options
Ship the "calendar" and "numberingSystem" options for
Intl.DateTimeFormat (both options) and Intl.NumberFormat (only the later
one) and support other calendar. Also consider the calendar while
choosing calendar pattern.

I2L: http://shorturl.at/bgkAH
I2S: http://shorturl.at/nuKUV

Flags: --harmony-intl-add-calendar-numbering-system
       --harmony-intl-other-calendars

API owner approvals: chrishtr@ yoav@yoav.ws bratell.d@gmail.com

Plan to land into m80 tree and only merge after 10/17 m79 branch off.

Bug: v8:9154, v8:9155, v8:9320
Change-Id: Ifa209919a40db60465f99405f3620a3b73b10204
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1838436
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64437}
2019-10-21 20:17:25 +00:00
Frank Tang
787cd95fef Fix crash bug with some numberingSystem and dateStyle/timeStyle
Bug: v8:9849
Change-Id: Ib7812e27dcacb30fd2610badbf79dee190fdec15
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1869078
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64436}
2019-10-21 20:12:54 +00:00
Seth Brenith
cdf8925e1a Fix JSEntry unwinding data on Windows ARM64
The current unwinding data for JSEntry correctly restores the frame
pointer and program counter from the caller frame, which might or might
not be sufficient to continue unwinding, depending on the contents of
that caller frame. Currently, the cctest StackUnwindingWin64 is broken
(at least with my build config) because the caller frame also needs the
stack pointer, which is not restored correctly.

In particular, I see this xdata for v8::internal::GeneratedCode<...>,
which is the function that calls Builtins_JSEntry:

10400015 : 2 code words, 1 epilog, function length=15
01000012 : epilog starts at 12 and its unwind handler starts at 4
e405c8d2 : save_reg x=b z=8
           alloc_s x=5
           end
e405c8d2 : same thing but for the epilog

The prolog that corresponds to the unwind codes above is:

sub sp, sp, #50
str lr, [sp, #0x40]

Note that it does not set fp, so unwinding requires an accurate sp.

This change emits slightly more complicated unwinding data for JSEntry
so that the frame pointer, stack pointer, and program counter can all be
restored.

Change-Id: I0c7f3eba97ef64408f46631b487c4b0ceb06fa9b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1848860
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64435}
2019-10-21 18:52:12 +00:00
Ng Zhi An
2669f27daa [wasm-simd] Implement i64x2 neg for ia32
Bug: v8:9728
Change-Id: I0b90bf97fc8f57f8b372c3254d585c707da9fe7a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1865255
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64434}
2019-10-21 17:31:15 +00:00
Igor Sheludko
d1c35a4852 [builtins] Prepare CSA::ConvertToRelativeIndex() for non-Smi indices
Bug: v8:4153
Change-Id: I88abd7b5b5ba1b7156d60427217fc8e301cbc099
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866653
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64433}
2019-10-21 16:40:59 +00:00
Seth Brenith
edd7434b3d Update Unwinder to handle JSEntry frame on Windows ARM64
On Windows ARM64, it is insufficient to just follow the linked list of
frame pointers in all cases. This is similar to logic added in
https://crrev.com/c/v8/v8/+/1701133 except this affects the Unwinder
methods rather than the function metadata for RtlVirtualUnwind.

Together with https://crrev.com/c/chromium/src/+/1844276 , this allows
the Chromium unit test V8UnwinderTest.UnwindThroughV8Frames to pass on
Windows ARM64.

Change-Id: I82d4d894be14d4a6ace75bba10c13b10342d0b12
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1845189
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#64432}
2019-10-21 16:09:40 +00:00
Dan Elphick
e676ba8005 [builtins] Tnodify builtins-microtask-queue-gen.cc
Converts last remaining Node*.

Bug: v8:6949
Change-Id: I792a7efa3dc3cdfd0e0ae8349aad6da54f4e8db8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871928
Auto-Submit: Dan Elphick <delphick@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64431}
2019-10-21 16:01:38 +00:00
Jakob Gruber
f42870ae5d [compiler] Support non-branch continuations for StackPointerGreaterThan
We previously had a DCHECK to protect the assumption that the
continuation to StackPointerGreaterThan must be a branch. This is not
a valid assumption to make, in fact the second callsite of
VisitStackPointerGreaterThan immediately violates it.

Instead, this CL additionally considers non-branch continuations when
getting the effect level.

A slight digression since it was not clear to me how comparison
results were materialized for 'Set' continuations: this happens during
codegen, where CodeGenerator::AssembleInstruction inserts a call to
AssembleArchBoolean if necessary.

Bug: v8:9829,v8:9534
Change-Id: Ib554071b7aa33e0f6b8a0d605219db6b6dc7d5b0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871912
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64430}
2019-10-21 15:55:58 +00:00
Georg Neis
a927810c03 [turbofan] Fix bug in instruction scheduling
Disallow reorderings across calls and across caller registers save/restore.

Bug: v8:9775
Change-Id: I8b1037dd127217ed9f4a42d45e0d928380c9241a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1862558
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64429}
2019-10-21 15:22:30 +00:00
Joshua Litt
d6f911368b [optional-chaining] Disallow optional chaining with private names.
Bug: chromium:1014458
Change-Id: I9e5e83da4452e9953218335353047f41c18f68fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864333
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64428}
2019-10-21 15:18:00 +00:00
Santiago Aboy Solanes
dd29ce3ee3 [builtins][arm64] Removed obsolete comment
Bug: v8:9771
Change-Id: I1bac467c21b2a4188959acc9d41f7ae147e64655
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871927
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64427}
2019-10-21 14:52:07 +00:00
Jakob Gruber
0089006fc5 [regexp] Apply the backtrack limit in jitted code
.. similar to how it is applied in the interpreter. We reserve a stack
slot for the backtrack count, increment it on each backtrack, and fail
if the limit is hit.

Bug: v8:9695
Change-Id: I835888c612d6c8bfa2f34e73ab8c8241dcabc6ed
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864938
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64426}
2019-10-21 14:39:26 +00:00
Clemens Backes
ecf555469c Reland "Refactor platform tests to avoid deprecated API"
This is a reland of 0347f00a64

Original change's description:
> Refactor platform tests to avoid deprecated API
>
> The old tasks API is deprecated and we want to remove it in 8.0.
> Thus, this CL refactors the platform tests to use the new
> TaskRunner-based API, and removes redundant tests.
>
> R=ahaas@chromium.org
>
> Bug: v8:9810
> Change-Id: Ie53c90184639e77b3247228059fd88290b233e0c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868619
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64412}

Bug: v8:9810
Cq-Include-Trybots: luci.v8.try:v8_linux64_msan_rel
Change-Id: I0f66791828e0f605a67f9af575dbead35e8feb9d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871917
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64425}
2019-10-21 14:03:21 +00:00
Leszek Swirski
08955bb258 Revert "Reland "[runtime] Remove extension slots from context objects""
This reverts commit c48096d442.

Reason for revert: Flaky bot failures (https://bugs.chromium.org/p/v8/issues/detail?id=9744#c9)

Original change's description:
> Reland "[runtime] Remove extension slots from context objects"
> 
> This is a reland of c07c02e1c4
> 
> Original change's description:
> > [runtime] Remove extension slots from context objects
> >
> > Context objects have an extension slot, which contains further
> > additional data that depends on the type of the context.
> >
> > This CL removes the extension slot from contexts that don't need
> > them, hence reducing memory.
> >
> > The following contexts will still have an extension slot: native,
> > module, await, block and with contexts. See objects/contexts.h for
> > what the slot is used for.
> > The following contexts will not have an extension slot anymore (they
> > were not used before): script, catch and builtin contexts.
> > Eval and function contexts only have the extension slot if they
> > contain a sloppy eval.
> >
> > Bug: v8:9744
> > Change-Id: I8ca56c22fa02437bbac392ea72174ebfca80e030
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1863191
> > Commit-Queue: Victor Gomes <victorgomes@google.com>
> > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> > Auto-Submit: Victor Gomes <victorgomes@google.com>
> > Cr-Commit-Position: refs/heads/master@{#64372}
> 
> TBR=verwaest@chromium.org,jgruber@chromium.org,ulan@chromium.org,leszeks@chromium.org,petermarshall@chromium.org
> 
> Bug: v8:9744
> Change-Id: I0749cc2d8f59940c25841736634a70047116d647
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1869192
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> Auto-Submit: Victor Gomes <victorgomes@google.com>
> Cr-Commit-Position: refs/heads/master@{#64380}

TBR=ulan@chromium.org,jgruber@chromium.org,petermarshall@chromium.org,leszeks@chromium.org,verwaest@chromium.org,victorgomes@google.com

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

Bug: v8:9744
Change-Id: Ia58067b41f1eb5880a52b36ead754d7190ff7f6f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871922
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64424}
2019-10-21 13:58:21 +00:00
Clemens Backes
cfe9172e64 [wasm] Disallow interpreter move
The MOVE_ONLY_NO_DEFAULT_CONSTRUCTOR macro defines a defaulted move
constructor and move-assignment operator. The {std::unique_ptr} on the
other hand needs the contained type to be complete when instantiating
the move assignment operator. Hence, this fails e.g. on MSVC, see
https://github.com/nodejs/node/pull/30020#issuecomment-544485991.

It turns out that we never actually move the interpreter, so we can
just replace the MOVE_ONLY_NO_DEFAULT_CONSTRUCTOR by
DISALLOW_COPY_AND_ASSIGN.

R=ahaas@chromium.org

Change-Id: Iba7d30243510ed9554be62b0c4c8e6f47f0c3307
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871921
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64423}
2019-10-21 13:55:41 +00:00
Santiago Aboy Solanes
71e52b2713 [turbolizer] Make the '/' shortcut work in all of multiview
Before this change, the activeElement used to be the body and not
multiview. Then, the EventListener wasn't triggering.

Bug: v8:7327
Change-Id: I9782159ffd510c9a7afd83695f20ede9e774ac20
Notry: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868624
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64422}
2019-10-21 13:47:56 +00:00
Sigurd Schneider
af608c8498 [turbolizer] Make the resizers permanently big
Since the resizers (the handles used to resize the panes) were
getting bigger when selected, they obscured part of the scrollbar
making the scrollbar too hard to select.

Also, when they were snapped, the right resizer totally obscured
the scrollbar.

Bug: v8:7327
Change-Id: I04f3df00181df2265890ef54706091b3bc36f23e
Notry: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1869191
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64421}
2019-10-21 13:45:06 +00:00
Santiago Aboy Solanes
d716bceb34 Reland "[ptr-compr][CSA] Enable the DecompressionOptimizer phase in CSA"
This is a reland of ad9bd3a0cc

Reland reason: Probably not the cause of the TSAN failures

Original change's description:
> [ptr-compr][CSA] Enable the DecompressionOptimizer phase in CSA
>
> Also update the MachineGraphVerifier to take into account the
> possibility of the Store receiving a Compressed representation as well.
>
> Bug: v8:7703
> Change-Id: I6d6e28b980151af6296000cfe6f67a3a037b029c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859627
> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64410}

TBR=tebbi@chromium.org, jgruber@chromium.org

Bug: v8:7703
Change-Id: Ic8181d0288a8504e611437601f6b34e472fcac47
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871919
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64420}
2019-10-21 13:42:56 +00:00
Clemens Backes
d0ae6031e7 [api] Prepare removal of deprecated tasks API
Before we can remove the deprecated methods, we need to provide default
implementations for them. Then, we can remove all overrides in
embedders, and finally remove the methods from v8.

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

Bug: v8:9810
Change-Id: If9286dc8ba441c226c9a1d524832ff203ac4bce6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871915
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64419}
2019-10-21 13:07:56 +00:00
Michaël Zasso
3e82c8df98 Fix check for V8_TARGET_OS_WIN macro
On Windows with MSVC, the current code triggers a fatal error C1017
(invalid integer constant expression).

Change-Id: I41c371a1d7909737052c03c830bb62c41154a192
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871918
Commit-Queue: Michaël Zasso <mic.besace@gmail.com>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64418}
2019-10-21 12:57:46 +00:00
Jakob Gruber
48756fcf74 [regexp] Add a backtracking limit in the interpreter
V8 uses a backtracking regexp engine, which has the caveat that some
regexp patterns can have exponential runtime behavior when excessive
backtracking is involved.

Especially when regexp patterns are user-controlled, it would be useful
to be able to set an upper limit for a single regexp execution. This CL
takes an initial step in that direction by adding a backtracking limit
(intended to approximate execution time):

- The limit is stored in the JSRegExp's data array.
- A limit can currently only be set through the %NewRegExpWithLimit
runtime function.
- The limit is applied during interpreter execution. When exceeded, the
interpreter stops execution and returns FAILURE (even if continued
execution would at some later point have resulted in SUCCESS).

In follow-up CLs, this mechanism will be extended to work in jitted
regexp code, and exposed through the V8 API.

Bug: v8:9695
Change-Id: Iadb5c100052f4a63b26f1ec49cf97c6713a66b9b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864934
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64417}
2019-10-21 12:48:15 +00:00
Milad Farazmand
89cdae9890 PPC/s390: [wasm-simd] Implement f64x2 abs neg for arm
Port afbbfcbe1c

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

Change-Id: I5c2dc6f4ae185259f7b6fc23265c9eff495a599d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1869452
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64416}
2019-10-21 12:36:05 +00:00
Leszek Swirski
7cb5925154 Revert "[ptr-compr][CSA] Enable the DecompressionOptimizer phase in CSA"
This reverts commit ad9bd3a0cc.

Reason for revert: Speculative revert for TSAN failures (https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/28816)

Original change's description:
> [ptr-compr][CSA] Enable the DecompressionOptimizer phase in CSA
> 
> Also update the MachineGraphVerifier to take into account the
> possibility of the Store receiving a Compressed representation as well.
> 
> Bug: v8:7703
> Change-Id: I6d6e28b980151af6296000cfe6f67a3a037b029c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859627
> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64410}

TBR=jgruber@chromium.org,tebbi@chromium.org,solanes@chromium.org

Change-Id: I805593d9b49503a20348a4b059049ed24345cf8e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7703
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871914
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64415}
2019-10-21 11:38:37 +00:00
Leszek Swirski
12e1cfcd22 Revert "Refactor platform tests to avoid deprecated API"
This reverts commit 0347f00a64.

Reason for revert: MSAN failures (https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/29288)

Original change's description:
> Refactor platform tests to avoid deprecated API
> 
> The old tasks API is deprecated and we want to remove it in 8.0.
> Thus, this CL refactors the platform tests to use the new
> TaskRunner-based API, and removes redundant tests.
> 
> R=​ahaas@chromium.org
> 
> Bug: v8:9810
> Change-Id: Ie53c90184639e77b3247228059fd88290b233e0c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868619
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64412}

TBR=ahaas@chromium.org,clemensb@chromium.org

Change-Id: I1b240df992425f25a2a4a9d33d27f6262d91c004
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:9810
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871913
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64414}
2019-10-21 11:37:32 +00:00
Clemens Backes
11e50bc31b Remove build support for gcc < 5
We still set a lot of macros depending on specific gcc versions. All
these old versions are unsupported by now anyways, so we can also just
define these macros as 1.
If this CL sticks for a while, we can start actually cleaning up all
code relying on these macros, as most of them should be 1 now on all
platforms.

R=ulan@chromium.org

Bug: v8:9810
Change-Id: I2f9c55170091f8c263deeddfb7ff89e5b2a0bb12
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1862564
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64413}
2019-10-21 11:20:09 +00:00
Clemens Backes
0347f00a64 Refactor platform tests to avoid deprecated API
The old tasks API is deprecated and we want to remove it in 8.0.
Thus, this CL refactors the platform tests to use the new
TaskRunner-based API, and removes redundant tests.

R=ahaas@chromium.org

Bug: v8:9810
Change-Id: Ie53c90184639e77b3247228059fd88290b233e0c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868619
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64412}
2019-10-21 11:16:39 +00:00
Santiago Aboy Solanes
a893810312 Remove the benchmarks/ folder
It was unused and the last commit was a long time ago.

NOPRESUBMIT=true

Change-Id: I5c4992cbc2e9977549787e21e4f5dac284291c58
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1863938
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64411}
2019-10-21 10:58:49 +00:00
Santiago Aboy Solanes
ad9bd3a0cc [ptr-compr][CSA] Enable the DecompressionOptimizer phase in CSA
Also update the MachineGraphVerifier to take into account the
possibility of the Store receiving a Compressed representation as well.

Bug: v8:7703
Change-Id: I6d6e28b980151af6296000cfe6f67a3a037b029c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859627
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64410}
2019-10-21 10:32:39 +00:00
Mike Stanton
014c977f98 [TurboFan] concurrent support to inline anonymous callback closures
TurboFan can normally inline an arrow function closure callback like:

[1, 2, 3].map(x => x * x);

The serializer has information to support this in the form of
FunctionBlueprint Hints, though it's not exploiting them. This CL
remedies that.

Bug: v8:7790
Change-Id: I8fc10f04ffc9bd2ea03cd761e8a5a41258000c76
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1863939
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64409}
2019-10-21 10:06:29 +00:00
Michael Achenbach
09d4a426ba [tools] Retain python2 compatibility with divisions in test runner
Bug: v8:9871
Change-Id: Ib2042002c1eba72b81fcd15811a627b13e7e3281
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866770
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64408}
2019-10-21 08:47:46 +00:00
Jakob Gruber
d7793c0684 Revert "[regexp] Clone match info for match indices."
This reverts commit dfd9ceb984.

Reason for revert: Regressions https://chromeperf.appspot.com/group_report?rev=64356 https://crbug.com/1015749

Original change's description:
> [regexp] Clone match info for match indices.
>
> The current behavior for generating match indices simply stashes a
> pointer to the match info and then constructs the indices lazily.
> However, it turns out the match info object used to create the result
> object is the regexp_last_match_info living on native context, and thus
> it can change between the creation of the result object and the generation
> of indices. This cl clones the match info which will be safer.
>
> Bug: v8:9548
> Change-Id: Ia6f26f88fbc22fd09671bf4c579d39a1510b552d
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864585
> Commit-Queue: Joshua Litt <joshualitt@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64356}

TBR=jgruber@chromium.org,joshualitt@chromium.org

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

Bug: v8:9548, chromium:1015749
Change-Id: I9c30b8fb459cf2aa89d920bf061614441250844d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1870236
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64407}
2019-10-21 08:46:19 +00:00
Mu Tao
43bf727bc3 [mips][Liftoff] Fix stack slot initialization on mips
Port 7d09b270d8

Original Commit Message:

    It turns out that because we are *subtracting* from fp, we need to
    *subtract less* to get a higher address. Who knew.

R=xwafish@gmail.com, clemensb@chromium.org

Change-Id: I1ddb5e15ef7fab2f198aebf07a5ce607add4c3c4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868559
Auto-Submit: Mu Tao <pamilty@gmail.com>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64406}
2019-10-21 08:27:19 +00:00
Yang Guo
71526bb021 Remove 'profiler' category from WATCHLISTS
R=bmeurer@chromium.org

Change-Id: Ia76369623c767fbbc249d1d77643d63062f99487
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1870231
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64405}
2019-10-21 08:23:59 +00:00
Liviu Rau
c5783e27c7 Remove nosnap configs and references
Bug: v8:9856
Change-Id: Ia7dd11c3e603b7880a90fb89087d3118409b432f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864650
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64404}
2019-10-21 07:28:38 +00:00
Benedikt Meurer
84cd9a82ff [async stacks] Fix corner case for async generators.
When using promise hooks we can actually end up in capturing stack trace
with an async generator on the stack whose queue is empty, and we need
to gracefully handle that case as well.

Fixed: chromium:1015945
Change-Id: Ia459e7444b373ecab01ca6900a781fd8b4021d1a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1870230
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64403}
2019-10-21 07:19:58 +00:00
Gus Caplan
88e1cf8cf4 [Torque] port Boolean prototype to Torque
Change-Id: Ia450876e085b8d4aec5df6be6d17a9cfa557980a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866884
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64402}
2019-10-21 07:18:18 +00:00
Jakob Gruber
8f58c84e45 Reland "[regexp] Guarantee an allocated regexp stack"
This is a reland of 97ed8b277b

Original change's description:
> [regexp] Guarantee an allocated regexp stack
> 
> The regexp stack is used during execution of jitted regexp matcher
> code.  Previously, the stack was initially not present / nullptr, and
> we had to explicitly check for this condition and bail out in builtin
> code.
> 
> This CL changes behavior to guarantee a present stack by adding a
> statically-allocated area that is used whenever no
> dynamically-allocated stack exists.
> 
> Change-Id: I52934425ae72cf0e5d13fab2b9d63d37ca76fcf3
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1852126
> Auto-Submit: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64326}

Change-Id: If345c09bdbfc8dc6b63f016c3f10ffda811bbb6d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866771
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64401}
2019-10-21 07:13:28 +00:00