You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(runtime): unsupported dynamic Function construct aborts instead of reaching catch #9207
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.
Activity
fix(release): clear v0.5.1519 runtime preflight blockers (#9212)
fix(runtime): preserve dynamic Function throws in release (#9207)
fix(runtime): bound dyn-eval preparation throws (#9207)
fix(runtime): allow interpreted throws through rest dispatch (#9207)
fix(runtime): let interpreted throws cross call0 in tests (#9207)
fix(runtime): let interpreted throws cross receiverless calls (#9207)
fix(runtime): let interpreted throws cross value calls (#9207)