v8/test/cctest
Seth Brenith 15ea19dbca [torque] Stricter object field verification, part 2
This change removes the special case in the Torque compiler for types
that descend from JSObject: they will no longer get implicit
"| Undefined" appended to their types for verification purposes. It
removes any additional custom verification steps in objects-debug that
are made redundant by that change.

In order to do so safely, I categorized all cases where we were
implicitly adding "| Undefined" to the field type, as follows:

1. Classes that aren't using the generated verifier function (we should
   probably revisit these, but for now we at least know they're safe):
   - JSGlobalObject
   - JSFinalizationGroup
   - JSFinalizationGroupCleanupIterator

2. Classes where the existing verifier is already at least as strict as
   what we would get after removing the implicit "| Undefined":
   - JSDate
   - JSPromise
   - JSRegExp
   - JSRegExpStringIterator
   - WasmMemoryObject
   - JSWeakRef
   - JSStringIterator
   - WasmExceptionObject
   - JSListFormat (fixed in part 1)
   - JSPluralRules (fixed in part 1)
   - JSRelativeTimeFormat (fixed in part 1)
   - JSSegmenter (fixed in part 1)
   - JSArrayBufferView (fixed in part 1)
   - JSTypedArray (fixed in part 1)

3. Classes where, to the best of my knowledge based on code inspection,
   we already initialize the object correctly to pass the new stricter
   generated verifier:
   - JSFunction
   - JSArrayIterator
   - JSMessageObject
   - JSBoundFunction
   - JSAsyncFromSyncIterator
   - WasmModuleObject
   - JSAsyncFunctionObject

4. Classes that needed some adjustment to their initialization order to
   avoid exposing uninitialized state to the GC:
   - JSArray (only in Factory::NewJSArray; Runtime_NewArray and
              CodeStubAssembler::AllocateJSArray already behave fine)
   - WasmTableObject
   - JSDateTimeFormat
   - JSNumberFormat
   - JSCollator
   - JSV8BreakIterator
   - JSLocale
   - JSSegmentIterator
   - JSModuleNamespace

5. Classes that had incorrect type definitions in Torque:
   - WasmGlobalObject (category 4 after correction)

6. Classes that weren't fully initialized due to bugs:
   - JSGeneratorObject
   - JSAsyncGeneratorObject

Bug: v8:9311
Change-Id: I99ab303d3352423f50a3d0abb6eb0c9b463e7552
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1654980
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62228}
2019-06-17 18:34:21 +00:00
..
compiler [turbofan] JSHeapBroker logging respects --trace-turbo-filter 2019-06-12 11:02:38 +00:00
heap [cleanup][heap] Improve heap iterator naming 2019-06-17 14:38:02 +00:00
interpreter Update iterator close to new spec 2019-06-06 19:18:45 +00:00
libplatform [tracing] Add a test harness for perfetto tracing tests 2019-05-27 15:05:12 +00:00
libsampler
parsing Move utility code to src/utils 2019-05-23 14:13:34 +00:00
torque Reland "[csa] Tweak CSA pipeline to eliminate more redundant checks" 2019-06-17 09:40:29 +00:00
wasm [stack-trace] Change column number for wasm frames to module offset 2019-06-14 11:33:18 +00:00
assembler-helper-arm.cc [cleanup] Drop some dead (Macro)Assembler code 2019-05-27 08:53:28 +00:00
assembler-helper-arm.h Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
BUILD.gn [test-api] Extract arraybufs and typed arrays 2019-06-17 15:27:01 +00:00
cctest.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
cctest.h [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
cctest.status [snapshot] Remove TEST natives 2019-06-04 15:05:52 +00:00
collector.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
DEPS
expression-type-collector-macros.h
gay-fixed.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
gay-fixed.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
gay-precision.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
gay-precision.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
gay-shortest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
gay-shortest.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
OWNERS Add OWNERS files for src and test 2019-05-30 04:51:21 +00:00
print-extension.cc
print-extension.h
profiler-extension.cc
profiler-extension.h
scope-test-helper.h
setup-isolate-for-tests.cc
setup-isolate-for-tests.h Move initialization code into src/init 2019-05-16 12:36:15 +00:00
test-access-checks.cc
test-accessor-assembler.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-accessors.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-allocation.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-api-accessors.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-api-array-buffer.cc [test-api] Extract arraybufs and typed arrays 2019-06-17 15:27:01 +00:00
test-api-interceptors.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
test-api-stack-traces.cc Reland "Move API-related files" 2019-05-17 12:52:27 +00:00
test-api-typed-array.cc [test-api] Extract arraybufs and typed arrays 2019-06-17 15:27:01 +00:00
test-api.cc [test-api] Extract arraybufs and typed arrays 2019-06-17 15:27:01 +00:00
test-api.h [test-api] Extract arraybufs and typed arrays 2019-06-17 15:27:01 +00:00
test-array-list.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-assembler-arm64.cc Revert "[arm64] Refactor constant pool implementation" 2019-06-17 11:50:13 +00:00
test-assembler-arm.cc [cleanup] Remove 'typedef struct' and 'typedef enum' 2019-05-28 12:17:35 +00:00
test-assembler-ia32.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-assembler-mips64.cc [cleanup] Remove 'typedef struct' and 'typedef enum' 2019-05-28 12:17:35 +00:00
test-assembler-mips.cc [cleanup] Remove 'typedef struct' and 'typedef enum' 2019-05-28 12:17:35 +00:00
test-assembler-ppc.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-assembler-s390.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-assembler-x64.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-atomicops.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-bignum-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-bignum.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-bit-vector.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-circular-queue.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-code-layout.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-code-stub-assembler.cc [torque] Stricter object field verification, part 2 2019-06-17 18:34:21 +00:00
test-compiler.cc [api] Add a way to specify the max heap size in ResourceConstraints 2019-06-06 10:22:56 +00:00
test-constantpool.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-conversions.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-cpu-profiler.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-date.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-debug.cc [cleanup][heap] Improve heap iterator naming 2019-06-17 14:38:02 +00:00
test-decls.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-deoptimization.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-dictionary.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-disasm-arm.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-ia32.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-mips64.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-mips.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-ppc.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-s390.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-x64.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-diy-fp.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-double.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-elements-kind.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-extra.js
test-factory.cc Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
test-fast-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-feedback-vector.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-feedback-vector.h Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-field-type-tracking.cc [ptr-compr] Pass Isolate to JSObject::MigrateToMap() and friends 2019-06-11 09:58:36 +00:00
test-fixed-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-flags.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-func-name-inference.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-fuzz-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-global-handles.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-global-object.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-hashcode.cc [ptr-compr] Pass Isolate to JSObject::NormalizeProperties() 2019-06-11 11:11:10 +00:00
test-hashmap.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-heap-profiler.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-icache.cc Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
test-identity-map.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
test-inobject-slack-tracking.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-inspector.cc
test-intl.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-javascript-arm64.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-js-arm64-variables.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-js-weak-refs.cc [WeakRefs] Rename to KeepDuringJob, ClearKeptObjects 2019-06-13 08:57:39 +00:00
test-liveedit.cc Add quotes around unexpected token SyntaxError 2019-06-11 06:11:58 +00:00
test-lockers.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-log-stack-tracer.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-log.cc [cleanup][heap] Improve heap iterator naming 2019-06-17 14:38:02 +00:00
test-macro-assembler-arm.cc [cleanup] Remove 'typedef struct' and 'typedef enum' 2019-05-28 12:17:35 +00:00
test-macro-assembler-mips64.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-macro-assembler-mips.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-macro-assembler-x64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-managed.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-mementos.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-modules.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-object.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-orderedhashtable.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-parsing.cc Remove always-enabled --harmony-hashbang flag 2019-06-11 15:47:08 +00:00
test-platform.cc
test-poison-disasm-arm.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-profile-generator.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-random-number-generator.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-regexp.cc [regexp] Reduce public API surface 2019-06-17 15:10:24 +00:00
test-representation.cc Move relevant files to src/objects 2019-05-20 08:57:47 +00:00
test-roots.cc [roheap] Set owner_ to nullptr for read-only chunks 2019-06-04 12:06:12 +00:00
test-sampler-api.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-serialize.cc [cleanup][heap] Improve heap iterator naming 2019-06-17 14:38:02 +00:00
test-smi-lexicographic-compare.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-stack-unwinding-x64.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-strings.cc [api] Add a way to specify the max heap size in ResourceConstraints 2019-06-06 10:22:56 +00:00
test-strtod.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-symbols.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
test-sync-primitives-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-sync-primitives-arm.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-thread-termination.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-threads.cc Move relevant files to src/execution 2019-05-22 08:36:33 +00:00
test-trace-event.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-traced-value.cc
test-transitions.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-transitions.h Move relevant files to src/objects 2019-05-20 08:57:47 +00:00
test-typedarrays.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-types.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-unboxed-doubles.cc [ptr-compr] Pass Isolate to JSObject::MigrateToMap() and friends 2019-06-11 09:58:36 +00:00
test-unscopables-hidden-prototype.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-unwinder.cc [cleanup] Avoid {Object::operator->} 2019-05-23 07:52:07 +00:00
test-usecounters.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-utils-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-utils-arm64.h Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-utils.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-version.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-weakmaps.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-weaksets.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
testcfg.py
trace-extension.cc [cleanup] Avoid {Object::operator->} 2019-05-23 07:52:07 +00:00
trace-extension.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
unicode-helpers.cc Move string-related files to src/strings 2019-05-21 07:17:48 +00:00
unicode-helpers.h Move string-related files to src/strings 2019-05-21 07:17:48 +00:00