v8/test/cctest
Thibaud Michaud 440548267b [wasm][interpreter][eh] Implement catch with immediate
In the latest spec, catch can take an exception index immediate, and
control-flow jumps to the appropriate catch handler depending on the
thrown exception.

Do this by allowing multiple jump targets for the same pc in labels and
in the control transfer map. At runtime, the unwinder will choose the
appropriate control transfer entry based on the exception tag, unpack
the exception and jump to the handler.

Enable the exception cctests that were currently disabled for the
interpreter, fix some issues and add tests for the new behaviors.

R=clemensb@chromium.org

Bug: v8:8091
Change-Id: I30cb8f9459647a7c6f7bfd9785b238a9c9e9fc10
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2690587
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72661}
2021-02-11 15:38:56 +00:00
..
compiler Don't use floating-point values in basic block instrumentation 2021-02-10 14:15:20 +00:00
heap heap: Drop null references 2021-02-08 22:26:48 +00:00
interpreter Revert "Reland "[interpreter] Speed up the BytecodeArrayAccessor through direct memory access"" 2021-02-10 18:33:35 +00:00
libplatform [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in test/{cctest,fuzzer,inspector} 2020-11-10 01:24:43 +00:00
libsampler [api] Use shorter 8::Local::As<*> casts in more places 2020-11-28 11:04:26 +00:00
parsing [cleanup] Replace all remaining Min/Max uses with std::min/max 2020-11-24 17:32:01 +00:00
torque [torque] Allow returning pairs from builtins 2021-01-19 18:03:12 +00:00
wasm [wasm][interpreter][eh] Implement catch with immediate 2021-02-11 15:38:56 +00:00
assembler-helper-arm.cc [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
assembler-helper-arm.h [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
BUILD.gn Add RISC-V backend 2021-02-09 17:06:36 +00:00
cctest-utils.h Add RISC-V backend 2021-02-09 17:06:36 +00:00
cctest.cc cppgc: Avoid initializing cppgc platform through V8 2021-02-09 08:26:11 +00:00
cctest.h [compiler] Re-reland "Faster JS-to-Wasm calls" 2021-02-05 09:41:30 +00:00
cctest.status Add RISC-V backend 2021-02-09 17:06:36 +00:00
collector.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
DEPS Reland "[tracing] Roll perfetto @ 28b633cd" 2019-09-06 13:42:02 +00:00
disasm-regex-helper.cc [turbofan] Improve load poisoning tests. 2019-07-02 17:55:04 +00:00
disasm-regex-helper.h [turbofan] Improve load poisoning tests. 2019-07-02 17:55:04 +00:00
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
manually-externalized-buffer.h [api] Deprecate [Shared]ArrayBuffer::Externalize/GetContents and constructors 2019-10-29 22:01:54 +00:00
OWNERS Add myself as an owner for debug-helper and v8windbg 2020-09-21 15:19:27 +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 [asserts] Make assert scopes LocalHeap friendly 2020-11-20 17:39:14 +00:00
test-accessors.cc [api] Use shorter 8::Local::As<*> casts in more places 2020-11-28 11:04:26 +00:00
test-allocation.cc [zone-compr] Initial support for zone pointer compression 2020-07-24 08:27:21 +00:00
test-api-accessors.cc [Respect] Rename lists 2020-06-22 15:15:31 +00:00
test-api-array-buffer.cc [api] Use shorter 8::Local::As<*> casts in more places 2020-11-28 11:04:26 +00:00
test-api-icu.cc Update to ICU68-1 2020-11-04 19:14:59 +00:00
test-api-interceptors.cc [api] Use shorter 8::Local::As<*> casts in more places 2020-11-28 11:04:26 +00:00
test-api-stack-traces.cc [api] Make ScriptOrigin take isolate as parameter 2021-01-14 23:51:04 +00:00
test-api-typed-array.cc [api] Deprecate [Shared]ArrayBuffer::Externalize/GetContents and constructors 2019-10-29 22:01:54 +00:00
test-api-wasm.cc [api] Add API callback setter for the wasm exceptions origin trial 2021-02-10 16:34:44 +00:00
test-api.cc [fastcall] support more return types 2021-02-09 08:30:40 +00:00
test-api.h [compiler] Re-reland "Faster JS-to-Wasm calls" 2021-02-05 09:41:30 +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 [arm64][cfi] Enable sim_abort_on_bad_auth by default. 2021-02-05 10:23:40 +00:00
test-assembler-arm.cc [wasm-simd][arm] Prototype sign select 2020-12-10 01:29:47 +00:00
test-assembler-ia32.cc Reland "[Turboprop] Move dynamic check maps immediate args to deopt exit." 2020-12-16 18:38:52 +00:00
test-assembler-mips64.cc [mips][cleanup] Replace all remaining Min/Max uses with std::min/max 2020-11-26 08:01:15 +00:00
test-assembler-mips.cc [mips][cleanup] Replace all remaining Min/Max uses with std::min/max 2020-11-26 08:01:15 +00:00
test-assembler-ppc.cc Reland "Reland "[deoptimizer] Change deopt entries into builtins"" 2020-10-21 06:01:38 +00:00
test-assembler-riscv64.cc Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-assembler-s390.cc Reland "Reland "[deoptimizer] Change deopt entries into builtins"" 2020-10-21 06:01:38 +00:00
test-assembler-x64.cc Reland "Reland "[deoptimizer] Change deopt entries into builtins"" 2020-10-21 06:01:38 +00:00
test-atomicops.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-backing-store.cc Reland x6 [arraybuffer] Rearchitect backing store ownership 2019-09-09 13:07:42 +00:00
test-bignum-dtoa.cc [cleanup] Remove V8_2PART_UINT64_C macro 2020-07-20 11:52:17 +00:00
test-bignum.cc [cleanup] Remove V8_2PART_UINT64_C macro 2020-07-20 11:52:17 +00:00
test-bit-vector.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-circular-queue.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-code-layout.cc [code] Make metadata offsets relative to metadata section 2020-10-27 10:49:13 +00:00
test-code-pages.cc [TurboFan] Templatize GetBytecodeArray 2020-12-17 16:46:53 +00:00
test-code-stub-assembler.cc Revert "[compiler] Directly read PropertyCells" 2021-02-10 08:47:07 +00:00
test-compiler.cc [nci] Remove --turbo-nci-as-midtier and other flags 2021-02-02 11:28:18 +00:00
test-concurrent-descriptor-array.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-concurrent-feedback-vector.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-concurrent-prototype.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-concurrent-script-context-table.cc Reland "[heap] Introduce LocalIsolate for main thread" 2020-11-19 10:44:43 +00:00
test-concurrent-string.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-concurrent-transition-array.cc Reland "[heap] Introduce LocalIsolate for main thread" 2020-11-19 10:44:43 +00:00
test-constantpool.cc PPC: [cleanup] Replace all remaining Min/Max uses with std::min/max 2020-11-25 08:49:53 +00:00
test-conversions.cc [cleanup] Remove V8_2PART_UINT64_C macro 2020-07-20 11:52:17 +00:00
test-cpu-profiler.cc [nci] Remove --turbo-nci-as-midtier and other flags 2021-02-02 11:28:18 +00:00
test-date.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-debug-helper.cc [v8windbg] Generate debug macros files 2021-01-19 12:07:38 +00:00
test-debug.cc [api] Make ScriptOrigin take isolate as parameter 2021-01-14 23:51:04 +00:00
test-decls.cc [api] Create v8::String::NewFromLiteral that returns Local<String> 2020-03-09 12:02:07 +00:00
test-deoptimization.cc [js-function] Remove deprecated predicates 2020-08-11 11:53:00 +00:00
test-descriptor-array.cc [asserts] Make assert scopes LocalHeap friendly 2020-11-20 17:39:14 +00:00
test-dictionary.cc Disable --stress-concurrent-allocation for tests that change free lists 2020-09-03 11:15:39 +00:00
test-disasm-arm64.cc [wasm-simd][arm64] Prototype prefetch arm64 2020-11-24 02:44:09 +00:00
test-disasm-arm.cc [wasm-simd][arm] Implement saturating rounding multiply high 2021-01-12 02:15:35 +00:00
test-disasm-ia32.cc Revert "[wasm-simd][ia32] Implement i64x2 signed compares" 2021-02-10 22:15:16 +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-riscv64.cc Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-disasm-s390.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-x64.cc [wasm-simd][x64] Fix encoding of vcvtdq2pd 2021-01-27 22:48:59 +00:00
test-diy-fp.cc [cleanup] Remove V8_2PART_UINT64_C macro 2020-07-20 11:52:17 +00:00
test-double.cc [cleanup] Remove V8_2PART_UINT64_C macro 2020-07-20 11:52:17 +00:00
test-dtoa.cc [cleanup] Remove V8_2PART_UINT64_C macro 2020-07-20 11:52:17 +00:00
test-elements-kind.cc [factory] Remove deprecated JSFunction ctors 2020-11-11 06:12:35 +00:00
test-factory.cc [heap] Make maximum regular code object size a runtime value. 2020-10-16 13:32:13 +00:00
test-fast-dtoa.cc [cleanup] Remove V8_2PART_UINT64_C macro 2020-07-20 11:52:17 +00:00
test-feedback-vector.cc [feedback] Minor name and type changes 2020-11-03 11:50:29 +00:00
test-feedback-vector.h [compiler] Make is_compiled_scope take an explicit Isolate 2020-07-06 15:49:55 +00:00
test-field-type-tracking.cc [test] Cleanup field type tracking cctests 2020-11-13 17:02:23 +00:00
test-fixed-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-flags.cc [wasm] Remove the --wasm-interpret-all flag 2020-04-28 08:14:52 +00:00
test-func-name-inference.cc [asserts] Make assert scopes LocalHeap friendly 2020-11-20 17:39:14 +00:00
test-fuzz-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-global-handles.cc global-handles: Fix ASAN fake stack handling 2020-10-30 13:56:36 +00:00
test-global-object.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-hashcode.cc [dict-proto] Add support for ordered property dicts, pt.3 2020-11-19 11:54:24 +00:00
test-hashmap.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-heap-profiler.cc Reland "[turboprop] Add a slot for optimization marker in feedback vector" 2020-10-28 11:09:14 +00:00
test-helper-riscv64.cc Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-helper-riscv64.h Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-icache.cc Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-identity-map.cc Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
test-inobject-slack-tracking.cc Use consistent capitalization rules for instance types 2019-10-09 17:44:42 +00:00
test-inspector.cc Implement protocol::Binary to/from base64 conversion 2020-04-30 08:46:05 +00:00
test-intl.cc [lookup] Refactor LookupIterator "property or element" creation 2020-01-09 18:39:11 +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-to-wasm.cc [compiler] Re-reland "Faster JS-to-Wasm calls" 2021-02-05 09:41:30 +00:00
test-js-weak-refs.cc Revert "[heap] Convert WeakObjects to heap::base::Worklist" 2020-10-06 14:21:55 +00:00
test-liveedit.cc Add quotes around unexpected token SyntaxError 2019-06-11 06:11:58 +00:00
test-local-handles.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-lockers.cc Reland "[heap] Introduce LocalIsolate for main thread" 2020-11-19 10:44:43 +00:00
test-log-stack-tracer.cc [TurboFan] Templatize GetBytecodeArray 2020-12-17 16:46:53 +00:00
test-log.cc [cpu-profiler] Log code events for bytecode flushing 2021-02-10 21:57:52 +00:00
test-macro-assembler-arm64.cc Reland "[Turboprop] Move dynamic check maps immediate args to deopt exit." 2020-12-16 18:38:52 +00:00
test-macro-assembler-arm.cc Reland "[Turboprop] Move dynamic check maps immediate args to deopt exit." 2020-12-16 18:38:52 +00:00
test-macro-assembler-mips64.cc [mips][Turboprop] Move dynamic check maps immediate args to deopt exit. 2020-12-19 10:21:56 +00:00
test-macro-assembler-mips.cc [mips][Turboprop] Move dynamic check maps immediate args to deopt exit. 2020-12-19 10:21:56 +00:00
test-macro-assembler-riscv64.cc Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-macro-assembler-x64.cc [codegen] Use smaller instructions for smi loading on x64 2021-01-25 11:54:56 +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 [modules][api] Add version of HostImportModuleDynamically with import assertions 2021-01-26 04:15:15 +00:00
test-object.cc Reland2 [super] Store home object in Context instead of JSFunction 2021-01-29 09:19:23 +00:00
test-orderedhashtable.cc [dict-proto] make small ordered hash tables use InternalIndex, too 2020-10-29 13:00:53 +00:00
test-parsing.cc Reland2 [super] Store home object in Context instead of JSFunction 2021-01-29 09:19:23 +00:00
test-persistent-handles.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-platform.cc [test] Fix StackAlignment test 2020-10-14 10:48:27 +00:00
test-pointer-auth-arm64.cc [arm64][cfi] Enable sim_abort_on_bad_auth by default. 2021-02-05 10:23:40 +00:00
test-poison-disasm-arm64.cc [arm64] Intentionally corrupt the upper half of decompressed SMIs 2019-11-19 12:14:12 +00:00
test-poison-disasm-arm.cc [cctest][turboprop] Disable DisasmPoisonMonomorphicLoadFloat64 for arm 2020-07-30 10:41:36 +00:00
test-profile-generator.cc Revert "[cpu-profiler] Implement weak phantom finalizers for CodeMap entries" 2021-01-26 23:50:18 +00:00
test-property-details.cc [dict-proto] Allow storing certain PropertyDetails in single byte 2021-02-04 13:45:13 +00:00
test-random-number-generator.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-regexp.cc Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-representation.cc Move relevant files to src/objects 2019-05-20 08:57:47 +00:00
test-roots.cc [heap] Use BasicMemoryChunk::FromHeapObject more 2020-06-17 14:05:48 +00:00
test-sampler-api.cc Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-serialize.cc Revert "[objects] Remove MakeExternal case for uncached internal strings" 2021-01-15 20:57:04 +00:00
test-simple-riscv64.cc Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-smi-lexicographic-compare.cc [cleanup] Eliminate non-const reference parameters 2019-09-10 09:31:07 +00:00
test-stack-unwinding-win64.cc Make Windows stack walking test use runtime-compiled code 2020-10-19 21:50:52 +00:00
test-strings.cc Revert "[objects] Remove MakeExternal case for uncached internal strings" 2021-01-15 20:57:04 +00:00
test-strtod.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-symbols.cc [runtime] Rename Name::Hash() to Name::EnsureHash() 2020-11-16 10:48:15 +00:00
test-sync-primitives-arm64.cc Reland "Reland "[deoptimizer] Change deopt entries into builtins"" 2020-10-21 06:01:38 +00:00
test-sync-primitives-arm.cc [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
test-thread-termination.cc [regexp] Use experimental engine if backtrack limit exceeded 2020-10-14 11:18:37 +00:00
test-threads.cc Replace base::make_unique by std::make_unique 2019-09-10 11:21:51 +00:00
test-trace-event.cc [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in test/{cctest,fuzzer,inspector} 2020-11-10 01:24:43 +00:00
test-traced-value.cc [tracing] Improve tracing signals for compilation/optimization. 2019-03-25 14:49:08 +00:00
test-transitions.cc [ptr-compr] Isolatify Map::MigrateToMap() and friends 2019-07-03 08:08:05 +00:00
test-transitions.h [asserts] Make assert scopes LocalHeap friendly 2020-11-20 17:39:14 +00:00
test-typedarrays.cc [api] Deprecate [Shared]ArrayBuffer::Externalize/GetContents and constructors 2019-10-29 22:01:54 +00:00
test-types.cc [turbofan] Normalize types for Oddball constants 2020-03-12 14:28:52 +00:00
test-unboxed-doubles.cc [cleanup] Replace all remaining Min/Max uses with std::min/max 2020-11-24 17:32:01 +00:00
test-unscopables-hidden-prototype.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-unwinder-code-pages.cc [arm][arm64] Use normal fp semantics in JSEntry 2021-01-19 16:13:51 +00:00
test-usecounters.cc [atomics] Remove the deprecated Atomics.wake 2020-08-10 23:02:17 +00:00
test-utils-arm64.cc [arm64][cleanup] Remove CPURegister::Is and CPURegister::is 2019-11-14 12:58:09 +00:00
test-utils-arm64.h Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-utils.cc [cleanup] Split out bit-field.h and bounds.h from utils/utils.h 2019-11-15 13:00:08 +00:00
test-v8windbg.cc [tools] Add v8windbg, a WinDbg extension for V8 2020-02-18 19:16:18 +00:00
test-verifiers.cc [asserts] Make assert scopes LocalHeap friendly 2020-11-20 17:39:14 +00:00
test-version.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-weakmaps.cc [factory] Remove deprecated JSFunction ctors 2020-11-11 06:12:35 +00:00
test-weaksets.cc [factory] Remove deprecated JSFunction ctors 2020-11-11 06:12:35 +00:00
testcfg.py Reland "Preparing v8 to use with python3 /test" 2019-03-20 09:56:06 +00:00
trace-extension.cc [api] Create v8::String::NewFromLiteral that returns Local<String> 2020-03-09 12:02:07 +00:00
trace-extension.h [cleanup] Remove unused TickSample class from the public API 2019-08-22 07:27:35 +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