Skip to content

Omit unused TypeScript catch exception bindings - #366

Merged
CaelmBleidd merged 2 commits into
neofrom
caelmbleidd/iccq-unused-catch-pr
Oct 1, 2026
Merged

CaelmBleidd merged 2 commits into
neofrom
caelmbleidd/iccq-unused-catch-pr

Conversation

@CaelmBleidd

@CaelmBleidd CaelmBleidd commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Summary

The TypeScript frontend currently emits a CaughtExceptionRef assignment even when a catch binding is never referenced. That unnecessary value can make a symbolic run fail while evaluating otherwise reachable catch code.

  • Emit the caught-exception binding only when the catch block references its identifier.
  • Resolve references by TypeScript symbol so a matching property name, shadowed local, or type-only mention does not create a binding; retain shorthand value references.
  • Preserve the catch body and its return statements.

Validation

  • npm test -- test/try.spec.ts: 12 tests passed.
  • npm run typecheck: passed.
  • npm run build: passed and produced the native frontend bundle.

This change is used by the prepared ICCQ unknown-call follow-up experiment. The experiment remains pinned to its original frontend revision; this PR is a clean cherry-pick onto current neo for review.

Companion runtime fixes: USVM #394, stacked on USVM #391.

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Test Results

  225 files  ±0    225 suites  ±0   16m 34s ⏱️ +17s
  777 tests ±0    765 ✅ ±0  12 💤 ±0  0 ❌ ±0 
2 047 runs  ±0  1 997 ✅ ±0  50 💤 ±0  0 ❌ ±0 

Results for commit 08d666c. ± Comparison against base commit ddb127d.

♻️ This comment has been updated with latest results.

@CaelmBleidd
CaelmBleidd merged commit 873f8e9 into neo Oct 1, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant