Most of the backend is written in C++. This is the mail protocol suite, the message database store logic, most of the internal account glue stuff, and even the bits that drive the main message listing (although that's moving to JS because Mozilla is killing off nsITreeView, a move which I fear for the performance implications of). The parts that are in JS are most of the code that drives the actual display. Of the MVC for the display, essentially the main model and view are both implemented in C++ whereas the controller is JS.
The largest pieces of the backend that are in JS are the RSS functionality and gloda (one of the search backends), as well as half of the MIME parser.