v8/test
Seth Brenith e483fb2731 [torque] Automatically generate verifier functions
This change generates functions that verify the things that Torque knows
about objects and their fields. We still must implement each verifier
function in objects-debug.cc, but we can call into the generated code to
verify that field types match their Torque definitions. If no additional
verification is required, we can use the macro USE_TORQUE_VERIFIER as a
shorthand for a verifier that calls the corresponding generated
function.

A new annotation @noVerifier can be applied to both class and field
definitions, to prevent generating verification code. This allows fully
customized verification for complicated cases like
JSFunction::prototype_or_initial_map, which might not exist at all, and
JSObject::elements, which might be a one pointer filler map.

Because Factory::InitializeJSObjectFromMap fills new objects with
undefined values, and many verifiers need to deal with partially-
initialized objects, the generated verifiers allow undefined values on
every class deriving from JSObject. In cases where stricter checks were
previously performed, they are kept in objects-debug.cc.

Bug: v8:7793
Change-Id: I84034efadca89ba0aceddf92e886ffbfaa4c23fa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594042
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61422}
2019-05-10 17:17:04 +00:00
..
benchmarks [test] Skip flaky test on predictable mode 2019-05-07 13:57:18 +00:00
cctest Reland "Reland "[compiler] Don't collect source positions for the top frame"" 2019-05-10 15:56:44 +00:00
common [wasm] Implement the table.fill instruction 2019-05-07 11:36:44 +00:00
debugger Reland "[Test] Update tests to work with lazy feedback allocation." 2019-05-08 12:51:13 +00:00
fuzzer [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 12:43:16 +00:00
inspector inspector: added Debugger.setInstrumentationBreakpoint method 2019-05-08 20:34:11 +00:00
intl [Intl] Add "numberingSystem" for Intl.RelativeTimeFormat 2019-05-10 16:12:14 +00:00
js-perf-test [js-perf-test] Add perf test for BigInt's ToBoolean 2019-05-07 12:59:47 +00:00
memory [perf] Refactor the Memory benchmark to use d8 2019-05-06 15:10:57 +00:00
message [wasm] Fix source positions for rethrown exceptions. 2019-05-09 10:44:58 +00:00
mjsunit Reland "Reland "[compiler] Don't collect source positions for the top frame"" 2019-05-10 15:56:44 +00:00
mkgrokdump Reland "[heap] Skip ro-space from heap iterators, add CombinedHeapIterator." 2019-05-02 17:35:18 +00:00
mozilla Reland "[test] Remove longer timeout on bots" 2019-05-02 13:04:29 +00:00
preparser [test] Don't test jitless without embedded-builtins 2019-02-26 14:33:01 +00:00
test262 [Interpreter] Await the input value of iterator.return for yield* on async generators 2019-05-09 18:32:08 +00:00
torque [torque] Automatically generate verifier functions 2019-05-10 17:17:04 +00:00
unittests [turbofan] Simplify effect-control-linearizer.h 2019-05-10 14:12:47 +00:00
wasm-js [testrunner] handle timeout param in file 2019-02-27 17:49:17 +00:00
wasm-spec-tests [wasm] Update spec tests 2019-04-29 08:03:46 +00:00
webkit [test] Stress wasm code gc in "stress_background_compile" 2019-05-02 09:56:05 +00:00
BUILD.gn [tools] Implement confidence-based number of runs 2019-05-09 09:42:28 +00:00
OWNERS Make tmrts an infra OWNER 2019-02-15 09:02:24 +00:00