ci: pin legacy EH job to nightly-2026-05-12#5155
Merged
Merged
Conversation
The legacy EH CI job has started failing because recent nightlies emit wasm-gc value types (e.g. `noexternref`) in the standard library that Node.js 20's V8 11.3 cannot validate, even when explicitly opted into legacy EH via `-Cllvm-args=-wasm-use-legacy-eh`. Pin the legacy EH job to `nightly-2026-05-12` (the last nightly without this issue) so we keep Node 20 compatibility coverage. Dated nightlies remain available on the rust-lang dist server indefinitely. Also note this requirement in the catch-unwind guide and changelog so downstream users targeting Node 20 know to pin their nightly too.
2026-05-12 still has the noexternref issue. Try the previous day.
Two adjustments to the legacy EH job: * Pin nightly to 2026-05-06 (last nightly before rust-lang/rust#156061 flipped the wasm target spec to force modern EH). Plain `-Cpanic=unwind` again produces legacy EH wasm. `-Cllvm-args=-wasm-use-legacy-eh` cannot override the new target spec's `-wasm-use-legacy-eh=false` because LLVM is last-wins and rustc puts target args after user args, so a pinned nightly is currently the only reliable way to keep legacy EH coverage. * Bump Node to 22.22.3 \u2014 wasm-bindgen's legacy EH catch handlers import `WebAssembly.JSTag`, which is only available in Node 22.4+. Node 20 has legacy EH instructions but not the JSTag global. Document the Node 22.22.3+ floor in the catch-unwind guide and changelog, with a pointer to #5151 for tracking Node 20 support.
hoodmane
approved these changes
May 13, 2026
hoodmane
approved these changes
May 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The legacy EH CI job has started failing because recent nightlies emit wasm-gc value types (e.g.
noexternref) in the standard library that Node.js 20's V8 11.3 cannot validate, even when explicitly opted into legacy EH via-Cllvm-args=-wasm-use-legacy-eh.The failure surfaces during wasm validation, not the EH wrappers themselves:
Pin the legacy EH job to
nightly-2026-05-12(the last nightly without this issue) so we keep Node 20 compatibility coverage. Dated nightlies remain available on the rust-lang dist server indefinitely, so this pin is durable.The catch-unwind guide and CHANGELOG
Noticessection are updated to call out the same requirement so downstream users targeting Node 20 know to pin their nightly too.