And the browser’s garbage collector just hummed along, quietly collecting fallen leaves in the background.
That night, the code was pushed to a public branch. Within days, players were running modded 1.12 worlds on school Chromebooks, fighting the Ender Dragon with zero lag spikes. eaglercraft 1.12 wasm gc
The first test was a superflat world with 64 villagers. On the JS backend, frame rate dropped to 15 FPS with major GC spikes every 5 seconds. On Wasm GC? A steady 45 FPS. No visible hitches. The collector ran concurrently, reclaiming entire chunks of blocks and entity pathfinding data without stopping the world — in both senses. And the browser’s garbage collector just hummed along,
Alex recompiled the 1.12 client using a custom TeaVM fork targeting Wasm GC. Instead of outputting JavaScript heap management, every object allocation, every new BlockPos() , every HashMap of entities — all became Wasm GC structs and arrays, traced and collected by the browser’s optimized garbage collector. The first test was a superflat world with 64 villagers
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.