Mozilla Distinguished Engineer Robert O’Callahan reports that the Spidermonkey JavaScript engine, used by the Firefox web browser, has surpassed the performance of Google’s V8 engine (used by Chrome) and Apple’s JavaScript Core (used by Safari) on three popular benchmarks: Mozilla’s own Kraken, Webkit’s SunSpider and Google’s Octane.

“Beating your competitors on their own benchmarks is much more impressive than beating your competitors on benchmarks which you co-designed along with your engine,” writes O’Callahan. “We can say ‘these benchmarks are not very interesting; let's talk about other benchmarks (e.g. asm.js-related) and language features’ without being accused of being sore losers.”

The asm.js JavaScript subset, to which O’Callahan refers, is used as an intermediate language and is designed to be amenable to optimisation by just-in-time compilers.

Both Mozilla and Google have an interest in making browser-hosted applications deliver performance sufficiently good that it reduces users' need for native applications and can do more of their work (or play) on the web. However, Google also has a project called Native Client (NaCl), which runs portable native code in the browser, avoiding the JavaScript engine. Google has emulated the Android runtime in NaCl, for example, enabling Android apps to run.

Mozilla’s performance claims are based on a project called AreWeFastYet, which automatically compiles each JavaScript engine and runs benchmark suites. It does not run the tests in a browser, but runs the tests as standalone JavaScript. The test does not cover Opera or Internet Explorer (IE).

“Opera doesn't provide a standalone shell, and IE doesn't work on Mac or Linux (which is where we benchmark right now),” says O’Callahan. ®