minute read

Column numbers in Firefox!

Conrad Irwin

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 oft hat 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.

Bugsnag helps you proactively monitor and improve your software quality.