Hello and welcome to our newest newsletter. As the northern hemisphere warms and the southern hemisphere cools, we write to talk about what’s happened in the world of SpiderMonkey in the Firefox 126-127 timeline.
🚀 Performance
Though Speedometer 3 has shipped, we cannot allow ourselves get lax with our performance. It’s important that SpiderMonkey be fast so Firefox can be fast!
- Arai added special bytecode for checking
typeof val == "type"
- Justin analyzed our caches for atoms, which turn out to be a reasonably hot path, and discovered that he could improve them. Our perf-alerts noticed some interesting speedups up to 8% on some tests!
- Jan has been playing with trampolines. Changing how we handle the comparator function to Array.prototype.sort improved performance, particularly at lower tiers, up to 4x!
- Alex added a new string type which holds a pointer to a corresponding atom, allowing cheap atom lookup.
- André has worked on improving calls to native functions with variadic parameters.
🔦 Contributor Spotlight
This newsletter, we’d like to Spotlight Jonatan Klemets. In his own words,
A full-stack web developer by day and a low-level enthusiast by night who likes tinkering with compilers, emulators, and other low-level projects
Jonatan has been helping us for a few years now and has been the main force of late driving forwards our work on the Import Attributes proposal. Pushing this proposal forward has required jumping into many different parts of Firefox, and Jonatan has done really well, and we are very thankful for the effort he has put into working on the project.
⚡ Wasm
- Yury has been working on the JavaScript-Promise Integration Proposal, which when it’s all finished, will allow easier interop between Wasm and JS Promises.
- Ben has done some work on optimizing out superfluous casts
- Julien has shipped the Wasm branch hinting proposal.
🕸️ Web Features Work
- Dan has shipped the new Set methods proposal
👷🏽♀️ Other Work
- We were Pwned by Manfred Paul at Pwn2Own 2024, but fixed builds shipped in 21 hours, first of the vendors at the competition.