Release v0.5.1519 server preflight on exact release commit 0ba0aa5 found that crates/perry/tests/issue_6559_dyn_function_interpreter.rs::unsupported_construct_diagnostic_end_to_end aborts with panic in a function that cannot unwind.
Reproduction uses the production-compatible release runtime built with panic=abort and -C force-unwind-tables=yes, then compiles a fixture with try { new Function(runtimeBuiltClassSource) } catch (e) { ... }.
Expected: a catchable TypeError naming unsupported construct and class.
Actual: SIGABRT while the exception crosses the dynamic Function runtime path.
The likely regression surface is #8981: js_function_ctor_from_strings is extern C-unwind, while the #8479 exception-transport contract documents that C-unwind pass-through frames in the panic=abort runtime can install the exact RFC-2945 abort guard being triggered.
Acceptance:
- The unsupported_construct_diagnostic_end_to_end test passes against a release panic=abort runtime on Linux.
- The dyn-eval-off capability-probe refusal remains catchable in test/debug builds.
- Preserve force-unwind-tables and generated invoke/landingpad transport.
Release v0.5.1519 server preflight on exact release commit 0ba0aa5 found that crates/perry/tests/issue_6559_dyn_function_interpreter.rs::unsupported_construct_diagnostic_end_to_end aborts with panic in a function that cannot unwind.
Reproduction uses the production-compatible release runtime built with panic=abort and -C force-unwind-tables=yes, then compiles a fixture with try { new Function(runtimeBuiltClassSource) } catch (e) { ... }.
Expected: a catchable TypeError naming unsupported construct and class.
Actual: SIGABRT while the exception crosses the dynamic Function runtime path.
The likely regression surface is #8981: js_function_ctor_from_strings is extern C-unwind, while the #8479 exception-transport contract documents that C-unwind pass-through frames in the panic=abort runtime can install the exact RFC-2945 abort guard being triggered.
Acceptance: