WebAssembly Garbage Collection is a new proposal that allows compiled languages (Java, C#, Kotlin) to manage memory using the browser’s built-in GC, rather than emulating it in JavaScript or manually managing linear memory. For Eaglercraft, this was revolutionary.
Then came the experiment: .
Here’s an informative story about and its experimental Wasm GC backend. In a dimly lit server room, a developer named Alex stared at a browser tab. Running Minecraft 1.12.2 — complete with Forge mods, redstone contraptions, and shaders — inside a vanilla browser. No plugins. No native code. Just JavaScript and WebAssembly. eaglercraft 1.12 wasm gc
But it wasn't magic. Wasm GC lacked finalizers, so native resources (like WebGL textures) still needed manual cleanup. The class hierarchy of Minecraft — TileEntity subclasses, IRecipe types — all required precise casting support. And the biggest hurdle: reflection. Minecraft 1.12’s ObfuscationReflectionHelper and dynamic proxies broke. Alex had to write a custom transformation pass at compile time to replace reflective calls with direct Wasm GC casts. WebAssembly Garbage Collection is a new proposal that