fix(ci): force rust to use legacy symbol mangling#253
Merged
Akinator31 merged 1 commit intomainfrom Nov 25, 2025
Merged
Conversation
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.
Problem
The CI was failing during the frontend WASM build with the following error:
Uncaught SyntaxError: Identifier
'wasm_bindgen_4f453e33dd9327c9___convert__closures________invoke___web_sys_a88f6bde22b957e9___features__gen_Event__Event_____'
has already been declared
This error indicates that a JavaScript identifier is declared twice in the code generated by wasm-bindgen.
Root Cause
The project uses Rust nightly (see
rust-toolchain.toml), which enables the new v0 symbol mangling scheme by default.The problem occurs during the following transformation chain:
rustc-demangleto convert symbols into JavaScript namesFnvsFnMut) aredemangled to the same JavaScript name
SyntaxErrorThis issue is documented in wasm-bindgen issue #4820: wasm-bindgen/wasm-bindgen#4820
Solution
Force Rust to use legacy symbol mangling (instead of v0) by adding the following RUSTFLAGS during frontend builds:
Legacy mangling is properly supported by rustc-demangle, thus avoiding name collisions.
Changes
Notes
This solution is a temporary workaround until rustc-demangle and wasm-bindgen properly support v0 mangling. We can remove these flags once issue #4820 is resolved.
References