This module behaves differently in our interpreter and in v8:
(module
(import "fuzzing-support" "log-i32" (func $log (param i32)))
(tag $t (param))
(func $throw
(throw $t)
)
(func $try-retcall
(try $label$3
(do
(return_call $throw)
)
(catch $t)
)
)
(func $test (export "test")
(call $try-retcall)
(call $log
(i32.const 0)
)
)
)
Since we interpret return_call as call + return, the thrown exception is caught by the try and $test continues on to call $log. The correct behavior is that $try-retcall should return and then $throw should be called, so $test should propagate the exception and never call $log.