v8/test/cctest
Michael Starzinger 46a99b07fc [wasm] Add support for "br_on_exn" in the interpreter.
This adds preliminary support for handling the "br_on_exn" opcode in the
interpreter. It also makes "catch" and "rethrow" use a proper exception
reference instead of a dummy value.

To that end this also adds {Handle<>} as a new kind of {WasmValue} which
is intended to pass reference values (e.g. "anyref" or "except_ref") to
the runtime system. Therefore lifetime of such a {WasmValue} is directly
coupled to any surrounding {HandleScope}.

For now we just store {Handle<>} directly on the simulated operand stack
of the interpreter. This is of course bogus, since the surrounding scope
does not outlive the interpreter activation. Decoupling the lifetime of
the operand stack from a {HandleScope} will be done in a follow-up CL.

As a drive-by this change also implements support for the "ref_null" and
the "ref_is_null" opcodes as a proof-of-concept that the new {WasmValue}
is also applicable to the "anyref" reference type.

R=clemensh@chromium.org
TEST=cctest/test-run-wasm-interpreter/ReferenceTypeLocals
BUG=v8:8091,v8:7581

Change-Id: I2307e0689a19c4aab1d67f1ba6742cb3cc31aa3c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1550299
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60598}
2019-04-03 12:16:36 +00:00
..
compiler [Turbofan][ptr-compr] Add representation changes for and to Compressed* values 2019-04-03 09:45:53 +00:00
heap [heap][cleanup] Using 'using' instead of 'typedef' 2019-03-29 12:15:30 +00:00
interpreter [compiler] Make source position collection lazier 2019-03-28 10:17:41 +00:00
libplatform [tracing] Add missing support for flow events. 2019-03-13 16:01:19 +00:00
libsampler [cpu-profiler] Only record SIGPROF-based samples for samplers that request samples 2019-02-13 09:29:38 +00:00
parsing Retire PretenureFlag and use AllocationType everywhere. 2019-03-12 08:10:44 +00:00
torque [torque-ls] Port tests from cctest to unittest 2019-03-04 17:04:02 +00:00
wasm [wasm] Add support for "br_on_exn" in the interpreter. 2019-04-03 12:16:36 +00:00
assembler-helper-arm.cc [arm, arm64] Setup arguments to RecordWriteStub using mov. 2019-03-05 11:07:00 +00:00
assembler-helper-arm.h [arm, arm64] Setup arguments to RecordWriteStub using mov. 2019-03-05 11:07:00 +00:00
BUILD.gn Reland "V8 x64 backend doesn't emit ABI compliant stack frames" 2019-04-03 02:00:43 +00:00
cctest.cc [api] Accept Extensions via unique_ptr 2019-02-01 07:15:18 +00:00
cctest.h [cpu-profiler] Expose whether or not a script is shared cross origin in a CpuProfileNode 2019-03-13 08:16:43 +00:00
cctest.status Reland "V8 x64 backend doesn't emit ABI compliant stack frames" 2019-04-03 02:00:43 +00:00
DEPS [torque]: Add the ability to test Torque functionality with cctest 2018-05-13 10:58:56 +00:00
expression-type-collector-macros.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
gay-fixed.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-fixed.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-precision.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-precision.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-shortest.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-shortest.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
log-eq-of-logging-and-traversal.js [log] Improve log parsing 2018-06-20 13:40:22 +00:00
OWNERS [MIPS] Set Yu Yin as owner of MIPS files. 2019-03-06 11:46:22 +00:00
print-extension.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
print-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
profiler-extension.cc Reland "[Compile] Ensure we don't access the native context during bytecode finalization." 2018-10-26 22:33:56 +00:00
profiler-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
scope-test-helper.h [parser] Various Scope and Context speedups 2019-01-28 13:06:03 +00:00
setup-isolate-for-tests.cc [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
setup-isolate-for-tests.h [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
test-access-checks.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-accessor-assembler.cc [ubsan] Port Map to the new design 2018-11-13 06:59:12 +00:00
test-accessors.cc [ubsan] Port Code to the new design 2018-11-12 18:47:04 +00:00
test-allocation.cc [zone] Fix peak memory accounting 2019-03-28 13:39:11 +00:00
test-api-accessors.cc [cleanup] Replace 0 and NULL with nullptr for test files. 2018-09-14 12:56:00 +00:00
test-api-interceptors.cc Reland "Optimize in operator" 2019-03-01 09:01:18 +00:00
test-api.cc [heap,api] Remove deprecated APIs 2019-03-18 12:51:22 +00:00
test-api.h [ubsan] Replace a few more Object** with alternatives 2018-12-17 14:17:22 +00:00
test-array-list.cc [explicit isolates] Remove GetIsolate from objects.cc 2018-07-13 12:42:14 +00:00
test-assembler-arm64.cc [arm, arm64] Setup arguments to RecordWriteStub using mov. 2019-03-05 11:07:00 +00:00
test-assembler-arm.cc [arm, arm64] Setup arguments to RecordWriteStub using mov. 2019-03-05 11:07:00 +00:00
test-assembler-ia32.cc [cleanup][ia32] Fix kPointerSize in ia32 builtins 2019-02-15 07:43:09 +00:00
test-assembler-mips64.cc Retire PretenureFlag and use AllocationType everywhere. 2019-03-12 08:10:44 +00:00
test-assembler-mips.cc Retire PretenureFlag and use AllocationType everywhere. 2019-03-12 08:10:44 +00:00
test-assembler-ppc.cc PPC: removed AIX function descriptors in tests 2019-03-06 12:55:45 +00:00
test-assembler-s390.cc PPC/s390: [test] Refactor AllocateAssemblerBuffer 2019-01-17 17:37:32 +00:00
test-assembler-x64.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-atomicops.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bignum-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-bignum.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bit-vector.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-circular-queue.cc [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
test-code-layout.cc [ppc] Emit the constant pool after handler table generation 2019-02-01 15:19:42 +00:00
test-code-stub-assembler.cc [cleanup] Move Compressed[XXX]Slot definitions to separate header 2019-03-06 19:41:21 +00:00
test-compiler.cc [turbofan] Skip arguments adaptor when target cannot observe arguments. 2019-02-25 12:47:36 +00:00
test-constantpool.cc [assembler] Move ConstantPools out of src/assembler.h 2018-10-19 11:38:39 +00:00
test-conversions.cc [objects.h splitting] Move HeapNumber to heap-number.h 2018-12-17 17:58:09 +00:00
test-cpu-profiler.cc [cpu-profiler] Add SourceType field to CpuProfileNode 2019-04-03 10:35:03 +00:00
test-date.cc [Intl] Move cachedOrNewService to C++ w/o caching 2018-11-02 07:08:26 +00:00
test-debug.cc [cpu-profiler] Expose whether or not a script is shared cross origin in a CpuProfileNode 2019-03-13 08:16:43 +00:00
test-decls.cc [api] Mark SetHiddenPrototype as DEPRECATED 2019-02-08 14:49:30 +00:00
test-deoptimization.cc [deprecation] Deprecate ToBoolean(Local<Context>) 2018-09-24 12:02:09 +00:00
test-dictionary.cc Switch RehashBasedOnMap to use ReadOnlyRoots 2019-02-25 12:28:26 +00:00
test-disasm-arm64.cc Explicitly store the code layout in CodeDesc 2019-01-30 13:17:38 +00:00
test-disasm-arm.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-disasm-ia32.cc [wasm simd] Make F32x4Min/Max IEEE 754 compliant 2019-03-22 18:26:23 +00:00
test-disasm-mips64.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-disasm-mips.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-disasm-ppc.cc PPC/s390: [assembler] Remove legacy constructor 2019-01-17 17:11:57 +00:00
test-disasm-s390.cc PPC/s390: [assembler] Remove legacy constructor 2019-01-17 17:11:57 +00:00
test-disasm-x64.cc [wasm simd] Make F32x4Min/Max IEEE 754 compliant 2019-03-22 18:26:23 +00:00
test-diy-fp.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-double.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-elements-kind.cc [objects] Adjust overly aggressive over-allocation. 2019-02-19 06:54:51 +00:00
test-extra.js [js] Remove CORE JS Natives (prologue.js), port extra utils to C++/Torque 2019-01-07 11:57:46 +00:00
test-factory.cc Move CodeDesc to dedicated file 2019-01-30 14:08:59 +00:00
test-fast-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-feedback-vector.cc [lite] Allocate feedback vectors lazily 2019-03-25 16:02:38 +00:00
test-feedback-vector.h [lite] Allocate feedback vectors lazily 2019-03-25 16:02:38 +00:00
test-field-type-tracking.cc [turbofan] Canonicalize uses of DependOnProtector 2019-02-27 18:56:30 +00:00
test-fixed-dtoa.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-flags.cc [nojit] Add a few flag implications based on --jitless 2019-01-15 11:20:19 +00:00
test-func-name-inference.cc [fni] Mark computed props as computed, not anonymous function 2019-03-01 20:52:03 +00:00
test-fuzz-arm64.cc Reland "Add Windows ARM64 ABI support to V8" 2018-10-24 19:46:36 +00:00
test-global-handles.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-global-object.cc [iwyu] api.h iwyu 2018-07-20 11:49:02 +00:00
test-hashcode.cc [cleanup] Free 400 targets from the draconic reign of.. 2019-03-26 10:56:21 +00:00
test-hashmap.cc [ubsan] Fix various cases of undefined behavior 2019-01-10 13:52:04 +00:00
test-heap-profiler.cc [cleanup] Use CHECK_EQ in test-heap-profiler.cc where possible 2019-04-03 11:54:06 +00:00
test-icache.cc PPC: removed AIX function descriptors in tests 2019-03-06 12:55:45 +00:00
test-identity-map.cc [objects.h splitting] Move HeapNumber to heap-number.h 2018-12-17 17:58:09 +00:00
test-inobject-slack-tracking.cc [objects] Adjust overly aggressive over-allocation. 2019-02-19 06:54:51 +00:00
test-inspector.cc [cleanup] Refactor inspector to use default members. 2018-09-18 09:13:59 +00:00
test-intl.cc Defer inferring language mode as far as possible 2019-01-25 11:53:19 +00:00
test-javascript-arm64.cc [deprecation] Deprecate ToBoolean(Local<Context>) 2018-09-24 12:02:09 +00:00
test-js-arm64-variables.cc [jumbo] arm64 cctest fixes 2017-09-30 17:17:23 +00:00
test-js-weak-refs.cc [js weak refs] Expand WeakCell::WeakCellVerify + minor fix 2019-01-31 16:50:20 +00:00
test-liveedit.cc [cleanup] Replace calls to deprecated String::Concat and ToInt32 from tests. 2018-07-24 17:30:14 +00:00
test-lockers.cc [api] Accept Extensions via unique_ptr 2019-02-01 07:15:18 +00:00
test-log-stack-tracer.cc [logger] Start cleaning up Logger class 2019-01-21 11:53:32 +00:00
test-log.cc [cpu-profiler] Expose whether or not a script is shared cross origin in a CpuProfileNode 2019-03-13 08:16:43 +00:00
test-macro-assembler-arm.cc [cleanup] Remove obsolete representations. 2019-02-21 06:07:06 +00:00
test-macro-assembler-mips64.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-macro-assembler-mips.cc MIPS32: Fix failing build 2019-01-17 16:54:49 +00:00
test-macro-assembler-x64.cc [cleanup] Remove obsolete representations. 2019-02-21 06:07:06 +00:00
test-managed.cc Add size estimate to Managed<T> 2018-05-30 10:26:21 +00:00
test-mementos.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-modules.cc [api,modules] Allow GetModuleNamespace on unevaluated modules. 2018-01-08 09:01:25 +00:00
test-object.cc [parser] Various Scope and Context speedups 2019-01-28 13:06:03 +00:00
test-orderedhashtable.cc [dict] Add more useful methods 2019-01-07 19:39:34 +00:00
test-parsing.cc [modules] Make debug-scopes handle synthetic variables 2019-03-04 15:06:02 +00:00
test-platform.cc s390: Edited Generate_CEntry to correctly return buffer when built with clang 2018-09-05 07:01:16 +00:00
test-poison-disasm-arm.cc [test] Add type confusion poisoning test for polymorhic access. 2018-10-10 17:57:57 +00:00
test-profile-generator.cc [cpu-profiler] Add SourceType field to CpuProfileNode 2019-04-03 10:35:03 +00:00
test-random-number-generator.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-regexp.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-representation.cc [cleanup] Remove obsolete representations. 2019-02-21 06:07:06 +00:00
test-roots.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-sampler-api.cc [cleanup] Refactor general tests to use default members. 2018-09-14 14:40:47 +00:00
test-serialize.cc Make Heap::InReadOnlySpace static 2019-03-13 16:55:02 +00:00
test-smi-lexicographic-compare.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
test-stack-unwinding-x64.cc Reland "V8 x64 backend doesn't emit ABI compliant stack frames" 2019-04-03 02:00:43 +00:00
test-strings.cc [turbofan] Significantly improve ConsString creation performance. 2019-03-19 10:43:00 +00:00
test-strtod.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-symbols.cc [cleanup] Remove Isolate parameter from object print 2018-07-12 11:31:57 +00:00
test-sync-primitives-arm64.cc [assembler] Remove legacy constructor 2019-01-17 12:39:57 +00:00
test-sync-primitives-arm.cc [base] Introduce MutexGuard as typedef for LockGuard<Mutex> 2018-10-12 15:44:51 +00:00
test-thread-termination.cc [regexp] Implement interrupt support in the interpreter 2019-03-12 13:44:12 +00:00
test-threads.cc Clean up ThreadId 2019-03-11 10:37:05 +00:00
test-trace-event.cc [cleanup] Clean up trace event tests by removing macros 2019-03-25 13:46:58 +00:00
test-traced-value.cc [tracing] Improve tracing signals for compilation/optimization. 2019-03-25 14:49:08 +00:00
test-transitions.cc [cleanup] Move some stuff out of objects-inl.h 2019-02-09 00:34:12 +00:00
test-transitions.h [ubsan] Port Map to the new design 2018-11-13 06:59:12 +00:00
test-typedarrays.cc Remove always-true --harmony-bigint runtime flag 2018-10-01 11:31:13 +00:00
test-types.cc Add target for common test headers 2019-02-12 09:30:01 +00:00
test-unbound-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-unboxed-doubles.cc Retire PretenureFlag and use AllocationType everywhere. 2019-03-12 08:10:44 +00:00
test-unscopables-hidden-prototype.cc [api] Mark SetHiddenPrototype as DEPRECATED 2019-02-08 14:49:30 +00:00
test-unwinder.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-usecounters.cc [counters] remove "override mistake" use counters 2019-01-18 19:27:29 +00:00
test-utils-arm64.cc [iwyu] Ensure that macro assembler includes happen correctly 2018-11-16 15:52:56 +00:00
test-utils-arm64.h [iwyu] Ensure that macro assembler includes happen correctly 2018-11-16 15:52:56 +00:00
test-utils.cc [cleanup] Split off api-inl.h from api.h to make latter self contained 2018-07-23 16:03:49 +00:00
test-version.cc [build] Introduce an embedder version string 2017-10-05 07:17:45 +00:00
test-weakmaps.cc Reland "[heap] Clean-up keys of oldspace weakmaps during scavenge" 2019-04-01 13:59:56 +00:00
test-weaksets.cc Retire PretenureFlag and use AllocationType everywhere. 2019-03-12 08:10:44 +00:00
testcfg.py Reland "Preparing v8 to use with python3 /test" 2019-03-20 09:56:06 +00:00
trace-extension.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
trace-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
unicode-helpers.cc Fix & reland "[utf8] Rewrite NewStringFromUtf8 using Utf8::ValueOfIncremental" 2019-02-06 13:11:11 +00:00
unicode-helpers.h [Parser] Add support for Zone allocated ConsumedPreParsingScopeData. 2018-09-07 10:28:40 +00:00