From 6046e2c3af4708fc34e5c567f25e4aef28875a45 Mon Sep 17 00:00:00 2001 From: ArkadySkv Date: Thu, 10 Sep 2026 10:03:21 +0400 Subject: [PATCH 1/2] fuzz: Skip wasm-split tests on modules with __indirect_function_table Avoids triggering the Emscripten special-case logic in wasm-split that reuses existing tables, which causes table corruption and fuzzer crashes. This is the short-term fix (Path A). A follow-up will address the underlying wasm-split table-reuse behavior (Path B). See #8106. --- scripts/fuzz_opt.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scripts/fuzz_opt.py b/scripts/fuzz_opt.py index bd2effe45b0..18f5288e8c6 100755 --- a/scripts/fuzz_opt.py +++ b/scripts/fuzz_opt.py @@ -1757,6 +1757,16 @@ def can_run_on_wasm(self, wasm): if not LEGALIZE: return False + # Skip modules with Emscripten table ABI + try: + output = run([in_bin('wasm-opt'), wasm, '--print', '--enable-reference-types'], + capture_output=True, text=True) + if '__indirect_function_table' in output: + print(f"Skipping wasm-split test for {wasm} due to __indirect_function_table") + return False + except: + pass + # see D8.can_run return all_disallowed(DISALLOWED_FEATURES_IN_V8) From 839d8d325fe4372d724aa92956848f88b0499e60 Mon Sep 17 00:00:00 2001 From: ArkadySkv Date: Fri, 11 Sep 2026 15:16:41 +0400 Subject: [PATCH 2/2] fuzz: Replace bare except with except Exception in can_run_on_wasm Fixes CI lint error (bare-except). --- scripts/fuzz_opt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/fuzz_opt.py b/scripts/fuzz_opt.py index 18f5288e8c6..a9a4d78eba8 100755 --- a/scripts/fuzz_opt.py +++ b/scripts/fuzz_opt.py @@ -1764,7 +1764,7 @@ def can_run_on_wasm(self, wasm): if '__indirect_function_table' in output: print(f"Skipping wasm-split test for {wasm} due to __indirect_function_table") return False - except: + except Exception: pass # see D8.can_run