This series is a guided tour of what it is like to work on the SpiderMonkey compiler and improve conformance with ECMA-262, the JavaScript Specification. In this series, we go step by step through open issues, understand spec text, and implement fixes. Viewers will be invited to ask questions, make suggestions, and, if they fix a bug themselves, have their solutions discussed on the stream.


All sessions start at 15:00 UTC (8am PST, 17:00 CEST) for 90 minutes (60 min talk, 30 min dedicated Q&A in chat) and are streamed via the Twitch channel codehag. Sessions are recorded and videos linked from this page.

Upcoming sessions:

  • August 7
    • Back by popular demand: More of the same. We pick up from our 3 week hiatus with a continuation of our first bug - Incorrect errors when incrementing or doing a compound assignment. In previous episodes, we did a correct implementation in all of the JITs, but it was without any optimizations. However, we are touching performance sensitive code, so we need to do more. Enter Left - CacheIR. In this episode we will look at a common optimization found in dynamically typed object oriented languages, inline caching.

Watch the stream


Past episodes

  • July 10 (video)
    • Looking at Inline Caches (ICs), and moving from the Baseline Compiler, to the Ion Compiler. Discussing optimizing compilers and finishing the task we set out on in Episode 1.
  • July 3 (video)
    • The JIT, and Implementation in JIT.
  • June 26 (video)
    • Last week we generalized our fix to element access. However there are two problems: error messages are less informative, and there is a lot of extra bytecode. How can we fix this? With MOAR BYTECODE.
  • June 12 (video)
    • Continuing on from the stream two weeks ago we will look at the finishing work for the pre-increment bug, before moving on to our next (related) issue. This video is about debugging SpiderMonkey, Firefox's JavaScript engine. Engineer Yulia Startsev picks up where Part 1 left off, looking at a failed test, and how to fix it.
  • June 9 (video)
    • Curious about how JavaScript gets standardized? Join us for a chat - and an update - about the most recent TC39 meeting. Questions will be answered and a little bit about the process explained. Yulia shares how the JavaScript specification evolves and is implemented in code in SpiderMonkey, Firefox's JavaScript engine, and other JS engines.
  • May 29 (video)
    • A guided tour with SpiderMonkey engineer Yulia Startsev. Yulia shows what it’s like to work on the SpiderMonkey compiler as a JavaScript engineer, improving conformance with ECMA-262, the #JavaScript Specification, one bug fix at a time.