Column numbers in Firefox!

Conrad Irwin in Engineering on June 16th, 2014

Firefox 30 is out! And excitingly, it now provides column numbers in exception stack traces.

This is doubly exciting for us, because we actually wrote the code to make this work. Bringing Firefox up to feature-parity with other modern browsers is one of the best things we could do to improve JavaScript error monitoring for everyone.

Why are column numbers useful?

Column numbers are becoming increasingly valuable as most people now minify their JavaScript. Some websites have only one line of JavaScript, total. This means it’s essential to have the column number to work out which code was executing at the time it crashed.

With the column number, we can use source maps to figure out the line of actual code which crashed. This makes debugging much easier in many cases, as you can quickly see what your code was trying to do when it crashed.

How does Firefox compare?

The holy grail of JavaScript error monitoring is access to the error object in window.onerror, but this is still a while away in most browsers. In lieu of that the Bugsnag notifier uses a handful of magic tricks to catch all exceptions and read a stack trace from them.

IE Firefox Chrome Safari
stack property on exceptions 10+
column number in stack trace 10+ 30+ 7+
error object in window.onerror 31β+
column number in window.onerror 8+ 17+ 7+

As can be seen Firefox comes a pretty close second to Chrome for exception features. Once Firefox 31 is out (estimated July) with access to the error object from window.onerror (we were involved with fixing that too) there will be nothing to choose between the two.

If you’re looking for a tool that uses all of this information to report errors reliably, install Bugsnag’s JavaScript notifier, and get started with Bugsnag for free.