Commit Graph

3807 Commits

Author SHA1 Message Date
Michael Lippautz
714c0fd166 [heap-stats] Fix trace file reader for raw log files
Tbr: cbruni@chromium.org
No-try: true
Change-Id: Ica8c64e0956d4ca362646814e675104f94e77fac
Reviewed-on: https://chromium-review.googlesource.com/1155585
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54791}
2018-07-30 19:56:39 +00:00
Michael Lippautz
33e9321907 [heap,iwyu] More cleanup
The following are ready for iwyu:
- src/heap/mark-compact.h
- src/heap/objects-visiting.h

Bug: v8:7490
Change-Id: I4cb9b1146586adcef8c0e0cf187ca363fe6e9a8d
Reviewed-on: https://chromium-review.googlesource.com/1154970
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54788}
2018-07-30 14:53:01 +00:00
Peter Marshall
20ce87beef [cleanup] Fix more header includes to allow individual compilation
Fixes:
  src/parsing/parse-info.h
  src/parsing/preparsed-scope-data.h
  src/profiler/heap-profiler.h
  src/profiler/heap-snapshot-generator.h
  src/profiler/heap-snapshot-generator-inl.h'
  src/property.h
  src/prototype.h
  src/prototype-inl.h

Bug: v8:7754,v8:7490,v8:7965
Change-Id: Iba14292cdfbbaf29d5b989c16d579a1ee0edcc25
Reviewed-on: https://chromium-review.googlesource.com/1154967
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54787}
2018-07-30 14:36:41 +00:00
Michael Lippautz
268117f84c [heap,iwyu] Clean up scavenger and related headers
Bug: v8:7490
Change-Id: Id6e50a201732b4ca1fd1f69f8c43298e216ce95b
Reviewed-on: https://chromium-review.googlesource.com/1154788
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54785}
2018-07-30 13:07:52 +00:00
Michael Lippautz
80e85caa31 [iwyu] Cleanup more heap/ files
Bug: v8:7490
Change-Id: I6bed10a6389d83b1941ba894f06b2d9540e84139
Reviewed-on: https://chromium-review.googlesource.com/1152733
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54781}
2018-07-30 12:02:01 +00:00
Peter Marshall
a61c16b012 [cleanup] Fix more header includes to allow individual compilation
Fixes:
  src/map-updater.h
  src/objects/property-descriptor-object.h
  src/objects/prototype-info-inl.h
  src/objects/regexp-match-info.h
  src/objects/shared-function-info-inl.h

Bug: v8:7754,v8:7490,v8:7965

Change-Id: I7ae9dc86491c8e147d628f5fd8362534e861b15e
Reviewed-on: https://chromium-review.googlesource.com/1154221
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54780}
2018-07-30 09:34:27 +00:00
Sergiy Byelozyorov
e6bebb3a28 [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:838266
Change-Id: I898579f780e40ee0fb5fd1948a92a6c500242dfd
Reviewed-on: https://chromium-review.googlesource.com/1154219
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54771}
2018-07-28 12:38:54 +00:00
Sergiy Byelozyorov
43316a0a6c [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:838266
Change-Id: I0c288eeaf28569d671220ab320aaec677825bb37
Reviewed-on: https://chromium-review.googlesource.com/1154218
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54770}
2018-07-28 12:17:34 +00:00
Sergiy Byelozyorov
382c18627b [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:842224
Change-Id: Icd00b7b4b86e1cc2de0234c69632eb5e6a63b11a
Reviewed-on: https://chromium-review.googlesource.com/1154216
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54769}
2018-07-28 11:27:24 +00:00
Matheus Marchini
09bca095e3 [postmortem] add ScopeInfo and Context types
The metadata introduced in this patch will be useful for postmortem
tools to inspect Contexts and ScopeInfos (see
https://github.com/nodejs/llnode/issues/211).

R=bmeurer@google.com, yangguo@google.com

Change-Id: I927fcab4014d128bd782046c1ecb9ee045723e95
Reviewed-on: https://chromium-review.googlesource.com/1153858
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54768}
2018-07-28 09:49:14 +00:00
Sergiy Byelozyorov
ae76bb4c35 [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:842224
Change-Id: Ic7c6093331f1bd35fffbfc98cd3f1d0ed3571eb4
Reviewed-on: https://chromium-review.googlesource.com/1154212
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54767}
2018-07-28 05:06:44 +00:00
Sergiy Byelozyorov
28232f63d2 [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:842224
Change-Id: I63c96969382fff550a64f80d35a7576d84092a0a
Reviewed-on: https://chromium-review.googlesource.com/1154211
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54766}
2018-07-28 04:52:24 +00:00
Sergiy Byelozyorov
d2d3cc588a [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:838864
Change-Id: Ie0e6e1742344bfd69ec109f55fcccbaca0d66d66
Reviewed-on: https://chromium-review.googlesource.com/1154209
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54764}
2018-07-28 02:56:40 +00:00
Sergiy Byelozyorov
6cd560b265 Revert "[tools] Add an option to checkout v8-perf repo before running perf tests"
This reverts commit ba02337157.

Reason for revert: decided to use CIPD package instead, see reasoning here: http://shortn/_MgZHcjC60Q.

Original change's description:
> [tools] Add an option to checkout v8-perf repo before running perf tests
>
> R=​machenbach@chromium.org
>
> No-Try: true
> Bug: chromium:838864
> Change-Id: I02e38778ec4c33a20f4b2e93fb22615baa316883
> Reviewed-on: https://chromium-review.googlesource.com/1151295
> Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54723}

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

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

No-Try: true
No-Tree-Checks: true
Bug: chromium:838864
Change-Id: I65a5b075c6fede61b59528ba92f6803011f187c7
Reviewed-on: https://chromium-review.googlesource.com/1153687
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54759}
2018-07-27 21:28:58 +00:00
Michael Lippautz
8abada5b41 [iwyu] Untangle heap/local-allocator(-inl).h
Bug: v8:7490
Change-Id: I72444df6f75bc61c467c2df51f87581ef44fe09e
Reviewed-on: https://chromium-review.googlesource.com/1151632
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54751}
2018-07-27 10:44:30 +00:00
Peter Marshall
558cfa099e [cleanup] Fix more header includes to allow individual compilation
Fixes:
  src/objects/intl-objects-inl.h
  src/objects/js-collection.h
  src/objects/js-collection-inl.h
  src/objects/js-regexp-string-iterator-inl.h
  src/objects/microtask-inl.h
  src/objects/module-inl.h
  src/objects/ordered-hash-table-inl.h
  src/objects/promise-inl.h

Bug: v8:7754,v8:7490
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Id5a5017713fa9920add2b38dbc56ab74abd4addd
Reviewed-on: https://chromium-review.googlesource.com/1152732
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54748}
2018-07-27 09:15:20 +00:00
Peter Marshall
fbedc72a6c [cleanup] Fix more header includes to allow individual compilation
Fixes:
  src/objects/arguments.h
  src/objects/arguments-inl.h
  src/objects/compilation-cache-inl.h
  src/objects/data-handler-inl.h
  src/objects/hash-table-inl.h

Bug: v8:7754,v8:7490
Change-Id: Ic17d4c3477c7d2003b325497cb9082899a0bf3fc
Reviewed-on: https://chromium-review.googlesource.com/1151312
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54736}
2018-07-26 21:27:09 +00:00
Sergiy Byelozyorov
ba02337157 [tools] Add an option to checkout v8-perf repo before running perf tests
R=machenbach@chromium.org

No-Try: true
Bug: chromium:838864
Change-Id: I02e38778ec4c33a20f4b2e93fb22615baa316883
Reviewed-on: https://chromium-review.googlesource.com/1151295
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54723}
2018-07-26 13:13:56 +00:00
Jakob Kummerow
f15cb8fe54 [tests] Make processing of test filters faster
The test driver compares command-line arguments against test names
it finds on disk. Using Python's "fnmatch" for this nicely handles
wildcards, but is relatively slow. For given test names that don't
contain any '*', we can use string equality testing, which is much
faster.

Example: the time to evaluate

 tools/run-tests.py --arch x64 --mode release \
   $(grep 'object-spread' -l -r test/test262/data/test/ | \
       sed -E 's|\.js$||' | \
       sed -E 's|^test/test262/data/test/|test262/|')

goes from "I gave up and killed the process after several minutes"
to a couple of seconds with this patch.

Change-Id: I9ec404b7516afd801fe6126347f6dff533d1977c
Reviewed-on: https://chromium-review.googlesource.com/1149196
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54704}
2018-07-25 20:48:05 +00:00
Michael Achenbach
46930afc4e [tools] Fix missing import in node script
NOTRY=true
TBR=yangguo@chromium.org

Change-Id: I2d8d07f048204874995dd4d349b6fb2b5b226630
Reviewed-on: https://chromium-review.googlesource.com/1150158
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54695}
2018-07-25 13:18:25 +00:00
Sergiy Byelozyorov
a82ea31afb [tools] Detect location of android build tools automatically
R=machenbach@chromium.org

No-Try: true
Bug: chromium:838864
Change-Id: Ifbdd9fe986e84197fd1ff6441c1565fed44c2c6f
Reviewed-on: https://chromium-review.googlesource.com/1149869
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54689}
2018-07-25 11:23:55 +00:00
Clemens Hammacher
6af63b9483 [iwyu] Fix includes in maybe-handles-inl.h and maybe-object-inl.h
R=titzer@chromium.org

Bug: v8:7965
Change-Id: I1bdd5b3bc8626727c94b95b519a8896384ff990b
Reviewed-on: https://chromium-review.googlesource.com/1148573
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54684}
2018-07-25 09:24:29 +00:00
Peter Marshall
1465c36d85 [cleanup] Fix the includes for some more files
Change-Id: I87b141d44706fedf7821c266c6207564fd77a9b6
Reviewed-on: https://chromium-review.googlesource.com/1148577
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54677}
2018-07-25 08:11:14 +00:00
Clemens Hammacher
81f12eee5c [iwyu] Fix includes in double.h
Drive-by: Convert const to constexpr.

R=titzer@chromium.org

Bug: v8:7965
Change-Id: Ifddfba78e819a0d340fba27a6efedea654b057e8
Reviewed-on: https://chromium-review.googlesource.com/1148722
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54676}
2018-07-25 07:57:55 +00:00
Frank Tang
ac8b5b919e [Intl] Implement Intl.ListFormat constructor
Spec: http://tc39.github.io/proposal-intl-list-format/

Design Doc:  go/add-intl.listformat-to-v8

Test: intl/list-format/*

R=gsathya@chromium.org, mvstanton@chromium.org

Bug: v8:7871
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I0dfb91b7806007e4f02f3b0438c30528c8143081
Reviewed-on: https://chromium-review.googlesource.com/1124343
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Daniel Ehrenberg <littledan@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54668}
2018-07-24 21:50:13 +00:00
Peter Marshall
d2abbc138e [cleanup] Fix header includes for js-array-inl.h
Change-Id: Ib0a047c0e02b3feaf878af2ec87d5d0f35167280
Reviewed-on: https://chromium-review.googlesource.com/1148561
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54665}
2018-07-24 18:56:35 +00:00
Clemens Hammacher
ce3a402d0e [iwyu][wasm] Fix IWYU violations
R=titzer@chromium.org

Bug: v8:7965
Change-Id: I5e44e8a4dd522703e7a20e32abae1f66ba44451e
Reviewed-on: https://chromium-review.googlesource.com/1148566
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54661}
2018-07-24 17:32:34 +00:00
Clemens Hammacher
d324382e1c Reland "[turboassembler] Introduce hard-abort mode"
This is a reland of a462a7854a

Original change's description:
> [turboassembler] Introduce hard-abort mode
> 
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
> 
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
> 
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
> 
> R=mstarzinger@chromium.org
> 
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}

Bug: chromium:863799
Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326
Reviewed-on: https://chromium-review.googlesource.com/1146100
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54656}
2018-07-24 15:58:46 +00:00
Tobias Tebbi
24ebe454f2 [iwyu] enable header include checks for torque
This also fixes all resulting failures.

Bug: v8:7965
Change-Id: I5451cdd3a3ec48c708107a22445808c268efe861
Reviewed-on: https://chromium-review.googlesource.com/1148336
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54643}
2018-07-24 12:53:21 +00:00
Michael Achenbach
2acc4d440b [test] Add reusable negative-test output processor
Bug: chromium:846711
Change-Id: Ic51e31a48106e495c3dc7d75ef4c97fa82071a64
Reviewed-on: https://chromium-review.googlesource.com/1148057
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54633}
2018-07-24 09:50:18 +00:00
Clemens Hammacher
bb5de1b719 [iwyu] Extend header includes blacklist
In order to make the bot green and start shrinking down the blacklist,
we first need to extend it more unfortunately.

R=marja@chromium.org

Bug: v8:7966, v8:7965
Change-Id: I44ddcceb6fe0ef572222b9635117deb15ed166d1
Reviewed-on: https://chromium-review.googlesource.com/1148050
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54630}
2018-07-24 09:01:57 +00:00
Théotime Grohens
fe45ddcc14 [dataview] Improve exception error messages
This CL makes the unoptimized DataView getter and setter methods
output the right function name when throwing an exception,
instead of a generic one.

It also contains a little drive-by cleanup of the Torque code
to keep it up to date with the language.

Change-Id: I10eb37090a0206172e470b5958af6a5968f3836f
Reviewed-on: https://chromium-review.googlesource.com/1146570
Commit-Queue: Théotime Grohens <theotime@google.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54615}
2018-07-23 15:45:09 +00:00
Sigurd Schneider
039c18e19a Speculatively revert "[turboassembler] Introduce hard-abort mode"
This reverts commit a462a7854a.

Reason for revert: Breaks a TurboAssembler test:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm/7726

Original change's description:
> [turboassembler] Introduce hard-abort mode
> 
> For checks and assertions (mostly for debug code, like stack alignment
> or zero extension), we had two modes: Emit a call to the {Abort}
> runtime function (the default), and emit a debug break (used for
> testing, enabled via --trap-on-abort).
> In wasm, where we cannot just call a runtime function because code must
> be isolate independent, we always used the trap-on-abort behaviour.
> This causes problems for our fuzzers, which do not catch SIGTRAP, and
> hence do not detect debug code failures.
> 
> This CL introduces a third mode ("hard abort"), which calls a C
> function via {ExternalReference}. The C function still outputs the
> abort reason, but does not print the stack trace. It then aborts via
> "OS::Abort", just like the runtime function.
> This will allow fuzzers to detect the crash and even find a nice error
> message.
> 
> Even though this looks like a lot of code churn, it is actually not.
> Most added lines are new tests, and other changes are minimal.
> 
> R=​mstarzinger@chromium.org
> 
> Bug: chromium:863799
> Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
> Reviewed-on: https://chromium-review.googlesource.com/1142163
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54592}

TBR=mstarzinger@chromium.org,clemensh@chromium.org

Change-Id: I60c011cfe262ccebbb9abf32699a9fe17e72a3c8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:863799
Reviewed-on: https://chromium-review.googlesource.com/1145431
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54597}
2018-07-20 17:28:49 +00:00
Clemens Hammacher
a462a7854a [turboassembler] Introduce hard-abort mode
For checks and assertions (mostly for debug code, like stack alignment
or zero extension), we had two modes: Emit a call to the {Abort}
runtime function (the default), and emit a debug break (used for
testing, enabled via --trap-on-abort).
In wasm, where we cannot just call a runtime function because code must
be isolate independent, we always used the trap-on-abort behaviour.
This causes problems for our fuzzers, which do not catch SIGTRAP, and
hence do not detect debug code failures.

This CL introduces a third mode ("hard abort"), which calls a C
function via {ExternalReference}. The C function still outputs the
abort reason, but does not print the stack trace. It then aborts via
"OS::Abort", just like the runtime function.
This will allow fuzzers to detect the crash and even find a nice error
message.

Even though this looks like a lot of code churn, it is actually not.
Most added lines are new tests, and other changes are minimal.

R=mstarzinger@chromium.org

Bug: chromium:863799
Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
Reviewed-on: https://chromium-review.googlesource.com/1142163
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54592}
2018-07-20 14:44:29 +00:00
Clemens Hammacher
4b4125778a [iwyu] Add script to check that headers can be included in isolation
The most important point of IWYU (include-what-you-use) is that each
header includes everything it is using, so that whoever includes that
header does not need to additionally include other things.
This CL adds a script which generates files to automatically check this.
It is automatically invoked during "gclient runhooks" if the
"check_v8_header_includes" variable is set. This script generates a
number of .cc files in the "check-header-includes" directory, together
with a "sources.gni" file which lists all the generated cc files. Each
file includes one header.
If additionally the gn args "v8_check_header_includes" is set, this gni
file is included, and all the generated CC files will be compiled. This
will detect violations of the aforementioned IWYU rule.

R=titzer@chromium.org, machenbach@chromium.org

Bug: v8:7754, v8:7965
Change-Id: Id1cf256507052c3a9ea82f8c80ea1c0385457e31
Reviewed-on: https://chromium-review.googlesource.com/1145199
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54590}
2018-07-20 13:54:59 +00:00
Yang Guo
2ebce7a814 [tools] opt out of metrics when fetching deps for node
R=machenbach@chromium.org

Change-Id: Ia50f6e637aec58e9c1bdd726c84b296fd71d7cbb
Reviewed-on: https://chromium-review.googlesource.com/1142767
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54571}
2018-07-20 09:05:55 +00:00
Tobias Sargeant
af0bd71140 Fix a trivial typo in grokdump.py
Change-Id: I5977c58d7d39f5f13352234f0d016c47ce9be133
Reviewed-on: https://chromium-review.googlesource.com/1143465
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Tobias Sargeant <tobiasjs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54562}
2018-07-19 16:46:14 +00:00
Clemens Hammacher
a6a727357e [foozzie] Move --suppress-asm-messages flag to FLAGS
Instead of repeating it in every configuration, just add it to the
common FLAGS.

R=machenbach@chromium.org

Change-Id: I93e7ef0f0ad55bfe0a0e24f50d5a73d4658d7554
Reviewed-on: https://chromium-review.googlesource.com/1141733
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54552}
2018-07-19 10:39:37 +00:00
Clemens Hammacher
605f94b700 [foozzie] Update existing configs for liftoff
Instead of having a separate liftoff config, which is tested against
the default (which currently means tier-up from liftoff to turbofan),
just choose reasonable liftoff configs for the existing configs.
'ignition' now implies pure liftoff execution.
'ignition_turbo_opt' always compiles with turbofan.
Other configs use the default (tier up).

R=machenbach@chromium.org

Bug: chromium:824098, v8:6600
Change-Id: I92c008fc1b1fa54d3161fb5695a095127d6ac263
Reviewed-on: https://chromium-review.googlesource.com/1141731
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54548}
2018-07-19 09:51:06 +00:00
Sergiy Byelozyorov
60acf3e8af Revert "[tools] Keep raw data in the generated JSON for debugging purposes"
This reverts commit 1e1cca61da.

Reason for revert: breaks builders

Original change's description:
> [tools] Keep raw data in the generated JSON for debugging purposes
> 
> R=​machenbach@chromium.org
> 
> Bug: chromium:861668
> Change-Id: Ic3225ed5919c21a7f6a9f21cba4aa491e1d6606d
> Reviewed-on: https://chromium-review.googlesource.com/1140331
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54508}

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

Change-Id: I10dff94c9cfe08c4a6b6d4d225b429fe16b95d19
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:861668
Reviewed-on: https://chromium-review.googlesource.com/1141784
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54517}
2018-07-18 10:51:30 +00:00
Marja Hölttä
9991fbd21f [in-place weak refs] Make NormalizedMapCache use in-place weak references.
Now we can finally get rid of Map::weak_cell_cache!

BUG=v8:7308

Change-Id: I87a06509bf638bf6833ea2ba1eca525fb4b15df1
Reviewed-on: https://chromium-review.googlesource.com/1128882
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54511}
2018-07-18 07:35:52 +00:00
Sergiy Byelozyorov
1e1cca61da [tools] Keep raw data in the generated JSON for debugging purposes
R=machenbach@chromium.org

Bug: chromium:861668
Change-Id: Ic3225ed5919c21a7f6a9f21cba4aa491e1d6606d
Reviewed-on: https://chromium-review.googlesource.com/1140331
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54508}
2018-07-18 06:35:03 +00:00
Vasili Skurydzin
abab9fbb64 s390, ppc64: Enable v8gen.py on Linux s390, ppc64
Change-Id: Ia05e949e1a823e30a45894c47f6f6df2e159befe
Reviewed-on: https://chromium-review.googlesource.com/1135540
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54485}
2018-07-17 08:54:26 +00:00
Matheus Marchini
804a693eb4 [postmortem] add JS_ERROR_TYPE and context embedder index
* JS_ERROR_TYPE is required for postmortem tools to inspect JSError
    objects (see https://github.com/nodejs/llnode/pull/215 for a usage
    example)
  * The context embedder index is required for postmortem tools to
    access embedder data stored in the context (see
    https://github.com/nodejs/llnode/pull/204 for a usage example)

R=bmeurer@google.com, yangguo@google.com

Change-Id: Ib7c7eb44f6ad327fc71a1d45f510c49377db7a25
Reviewed-on: https://chromium-review.googlesource.com/1138493
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54475}
2018-07-16 18:42:35 +00:00
Camillo Bruni
e3b4ffa9ba [tools] Improve function event logging and parse processor
- Log script sources with --log-function-events
- Don't show confusing duration in graphs
- Introduce separate compilation category
- Log script details after deserialization
- Log parse times for eval scripts
- Display deserialized scripts and functions

Change-Id: I58f3bf8efe3955632322f958716c36ad38761fd0
Bug: chromium:757467, chromium:850038
Reviewed-on: https://chromium-review.googlesource.com/1128082
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54465}
2018-07-16 14:05:14 +00:00
Sigurd Schneider
b8e3793a8e [turbolizer] Treeshake d3 library
Bug: v8:7327
Change-Id: I96fa8f6c2dbc9fb3da0be9a8b8d730cc1d1e3415
Reviewed-on: https://chromium-review.googlesource.com/1131456
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54452}
2018-07-16 08:45:20 +00:00
Camillo Bruni
3ffeaac89b [tools] Limit number of retries in callstats.py
Abort after reaching MAX_NOF_RETRIES since there is only a very low chance
that the page will keep on working after that.

Change-Id: Ia9e5f3cf69ae2b5ad40a60f86a46800541404862
Bug: v8:7941
Reviewed-on: https://chromium-review.googlesource.com/1134771
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54433}
2018-07-13 10:52:03 +00:00
Clemens Hammacher
3255d8dd41 Reland "Fix and extend lldbinit"
This is a reland of 5b744bfbd4.
Node is fixed by this pull request:
https://github.com/v8/node/pull/75

Original change's description:
> Fix and extend lldbinit
>
> 1) Define all commands in one file.
> 2) Add logic to make 'jco' print current pc by default.
> 3) Add a comment to explain how to load the lldb_commands.py file.
> 4) Minor refactorings.
>
> R=ahaas@chromium.org
> No-Try: true
>
> Bug: v8:7754
> Change-Id: I553f2ce4cefedad05466c692a8665a570372b76a
> Reviewed-on: https://chromium-review.googlesource.com/1127892
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54329}

Bug: v8:7754
Change-Id: I8645ae07176fe6983a581dd175ed6f2b2b15d4ea
Reviewed-on: https://chromium-review.googlesource.com/1135026
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54424}
2018-07-13 07:40:19 +00:00
John Barboza
d9e78322d0 fix gn builds on aix
Change-Id: I60aed7bf8207703fa6ceddb6165e173e68b5ff5f
Reviewed-on: https://chromium-review.googlesource.com/1103533
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54386}
2018-07-12 07:28:36 +00:00
Michael Achenbach
ebb7ac2bc2 Revert "Fix and extend lldbinit"
This reverts commit 5b744bfbd4.

Reason for revert: Breaks node.js install:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20-%20node.js%20integration/1546

Original change's description:
> Fix and extend lldbinit
> 
> 1) Define all commands in one file.
> 2) Add logic to make 'jco' print current pc by default.
> 3) Add a comment to explain how to load the lldb_commands.py file.
> 4) Minor refactorings.
> 
> R=​ahaas@chromium.org
> No-Try: true
> 
> Bug: v8:7754
> Change-Id: I553f2ce4cefedad05466c692a8665a570372b76a
> Reviewed-on: https://chromium-review.googlesource.com/1127892
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54329}

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

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

Bug: v8:7754
Change-Id: Iecaaf53ce6536395f83a78046f0375ec77003356
Reviewed-on: https://chromium-review.googlesource.com/1132878
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54375}
2018-07-11 09:54:16 +00:00