Saying Goodbye to Asm.js

· coding systems web · Source ↗

TLDR

  • Firefox 148 disables SpiderMonkey’s asm.js optimizations by default; OdinMonkey will be removed entirely in a future release, succeeded by WebAssembly compilers BaldrMonkey and RabaldrMonkey.

Key Takeaways

  • asm.js code still runs via the regular JIT in Firefox 148+, so nothing breaks, but recompiling to WebAssembly yields faster execution and smaller binaries.
  • asm.js shipped in Firefox 22 (2013) and enabled Unity and Unreal to target the web via C/C++ for the first time; Epic Citadel was ported in four days.
  • The asm.js optimizer (OdinMonkey) is being retired because WebAssembly adoption is dominant, and keeping the parallel code path adds maintenance cost and VM attack surface.
  • WebAssembly’s pipeline (BaldrMonkey optimizing, RabaldrMonkey baseline) is described as significantly more advanced than the asm.js path ever was.

Hacker News Comment Review

  • One commenter claims a hand-tuned asm.js SHA-256 hasher still outperforms any WebAssembly equivalent, suggesting edge cases where the asm.js path had real performance headroom.
  • Discussion around that claim is skeptical, with replies questioning whether the result reflects a special workload or actual asm.js superiority over WebAssembly.

Notable Comments

  • @theultdev: Claims an asm.js SHA-256 hasher beats all WebAssembly alternatives, a concrete counterpoint to the “just recompile” guidance.

Original | Discuss on HN