v8/test/cctest/interpreter
Seth Brenith 91e6421ccb [torque] Use generated instance types, part 1
This change begins making use of the fact that Torque now knows about
the relationship between classes and instance types, to replace a few
repetitive lists:

- Instance type checkers (single and range), defined in
  src/objects/instance-type.h
- Verification dispatch in src/diagnostics/objects-debug.cc
- Printer dispatch in src/diagnostics/objects-printer.cc
- Postmortem object type detection in
  tools/debug_helper/get-object-properties.cc

Torque is updated to generate four macro lists for the instance types,
representing all of the classes separated in two dimensions: classes
that correspond to a single instance type versus those that have a
range, and classes that are fully defined in Torque (with fields and
methods inside '{}') versus those that are only declared. The latter
distinction is useful because fully-defined classes are guaranteed to
correspond to real C++ classes, whereas only-declared classes are not.

A few other changes were required to make the lists above work:

- Renamed IsFiller to IsFreeSpaceOrFiller to better reflect what it does
  and avoid conflicts with the new macro-generated IsFiller method. This
  is the part I'm most worried about: I think the new name is an
  improvement for clarity and consistency, but I could imagine someone
  typing IsFiller out of habit and introducing a bug. If we'd prefer to
  keep the name IsFiller, my other idea is to rename FreeSpace to
  VariableSizeFiller and Filler to FixedSizeFiller.
- Made Tuple3 extend from Struct, not Tuple2, because IsTuple2 is
  expected to check for only TUPLE2_TYPE and not include TUPLE3_TYPE.
- Normalized the dispatched behavior for BigIntBase and HeapNumber.
- Added a few new object printers.

Bug: v8:7793
Change-Id: I5462bb105f8a314baa59bd6ab6ab6215df6f313c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1860314
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64597}
2019-10-28 18:30:31 +00:00
..
bytecode_expectations [regexp] Improve String.prototype.matchAll error message 2019-10-24 01:54:58 +00:00
bytecode-expectations-printer.cc [torque] Use generated instance types, part 1 2019-10-28 18:30:31 +00:00
bytecode-expectations-printer.h [cleanup] Eliminate non-const reference parameters 2019-09-10 09:31:07 +00:00
generate-bytecode-expectations.cc [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
interpreter-tester.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
interpreter-tester.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
source-position-matcher.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
source-position-matcher.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-bytecode-generator.cc Reland x3 "[runtime] Remove extension slots from context objects" 2019-10-22 14:26:02 +00:00
test-interpreter-intrinsics.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-interpreter.cc [cleanup] Eliminate non-const reference parameters 2019-09-10 09:31:07 +00:00
test-source-positions.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00