TL;DR

Mozilla has disabled asm.js optimizations by default in Firefox 148 and plans to remove the code entirely. WebAssembly has largely replaced asm.js, offering better performance and smaller binaries. The change reflects the web’s shift towards WebAssembly for high-performance needs.

Mozilla has officially disabled asm.js optimizations by default in Firefox 148 and announced plans to remove the code entirely in a future release, marking the end of a technology that once enabled near-native performance for web applications.

As of Firefox 148, the SpiderMonkey JavaScript engine no longer enables asm.js optimizations by default, and Mozilla plans to remove the asm.js codebase completely in upcoming versions. Users who maintain sites using asm.js will not experience breakage, as asm.js code continues to run via the standard JavaScript JIT engine, but performance benefits are now primarily achieved through WebAssembly.

Asm.js, a subset of JavaScript designed for high performance, was introduced by Mozilla in 2013 to enable near-native execution speeds for web applications. It was instrumental in porting complex C/C++ projects like Unity and Unreal to the web, with notable milestones such as the Epic Citadel demo. The technology served as a stepping stone towards WebAssembly, which was introduced in Firefox 52 and has since become the standard for high-performance web code.

Mozilla attributes the decision to the success of WebAssembly, which has largely replaced asm.js, and the maintenance burden and security surface that supporting both technologies entails. The company encourages developers to transition their asm.js content to WebAssembly, citing faster execution and smaller binaries as benefits.

Why It Matters

This development signifies a major shift in web technology, as Mozilla phases out a legacy optimization method in favor of WebAssembly, which offers superior performance and efficiency. For web developers, this means adopting WebAssembly for high-performance needs and moving away from asm.js, streamlining the web platform. For users, it promises faster, more secure web applications with smaller file sizes.

Hands-On Game Development with WebAssembly: Learn WebAssembly C++ programming by building a retro space game

Hands-On Game Development with WebAssembly: Learn WebAssembly C++ programming by building a retro space game

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Background

Asm.js was Mozilla’s response to Google’s NaCl and PNaCl, aiming to bring native-like performance to web content using a strict subset of JavaScript. It shipped in Firefox 22 in 2013 and played a crucial role in enabling complex gaming and multimedia applications on the web. Its success helped pave the way for WebAssembly, which was designed to address some limitations of asm.js and provide a more efficient compilation target. Over the years, WebAssembly adoption has grown rapidly, leading Mozilla and other browser vendors to phase out asm.js support.

“As of Firefox 148, SpiderMonkey’s asm.js optimizations are disabled by default, and we plan to remove the code entirely in a future release.”

— Mozilla Developer Blog

“Recompiling to WebAssembly will provide faster execution and smaller binaries, making it the recommended approach for high-performance web applications.”

— Mozilla Developer Network

JAVASCRIPT PERFORMANCE OPTIMIZATION FOR MODERN WEB APPS: Memory Management Event Loop Async Patterns Rendering Optimization and Frontend Scalability

JAVASCRIPT PERFORMANCE OPTIMIZATION FOR MODERN WEB APPS: Memory Management Event Loop Async Patterns Rendering Optimization and Frontend Scalability

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What Remains Unclear

It is not yet clear exactly when Mozilla will remove the asm.js codebase completely, or how widespread asm.js content still is across the web. Some legacy applications may continue to use asm.js temporarily, but Mozilla strongly encourages migration to WebAssembly.

Competitive Programming 4 - Book 1: The Lower Bound of Programming Contests in the 2020s

Competitive Programming 4 – Book 1: The Lower Bound of Programming Contests in the 2020s

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What’s Next

Mozilla will likely release a timeline for the complete removal of asm.js in upcoming Firefox versions. Developers are advised to test their applications with WebAssembly and prepare for the transition. Browser vendors and the web community will monitor the impact of this change on web performance and compatibility.

Learn WebAssembly: Build web applications with native performance using Wasm and C/C++

Learn WebAssembly: Build web applications with native performance using Wasm and C/C++

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Key Questions

Why is Mozilla removing asm.js support?

Because WebAssembly has become the preferred technology for high-performance web applications, offering better speed and smaller binaries, making asm.js redundant and easier to deprecate.

Will existing asm.js websites stop working?

No, asm.js code continues to run via the standard JavaScript engine, so existing sites will remain functional, but they will not benefit from asm.js-specific optimizations.

Should I migrate my asm.js code to WebAssembly now?

Yes, Mozilla recommends transitioning to WebAssembly to take advantage of improved performance and smaller file sizes, as asm.js support will be phased out.

When will asm.js be completely removed from Firefox?

The exact timeline has not been announced, but it is expected to occur in a future Firefox release after the deprecation period.

Source: Hacker News

You May Also Like

Osaurus brings both local and cloud AI models to your Mac

Osaurus introduces an app enabling Mac users to run both local and cloud AI models securely, offering flexible AI management on personal hardware.

Mercurial, 20 years and counting: how are we still alive and kicking? [video]

Celebrating 20 years of Mercurial, the distributed version control system, as it continues to thrive amid challenges from Git and evolving open-source dynamics.

Building Blocks for Foundation Model Training and Inference on AWS

AWS introduces new infrastructure components designed to support large-scale foundation model training and inference, integrating high-performance compute, networking, and storage.

Who trusts Sam Altman?

OpenAI CEO Sam Altman faces legal and congressional scrutiny over his credibility, influence, and control over AI company structures amid ongoing court cases and investigations.