There's a bit of confusion about what's happening with the Mozilla JavaScript engine so I'm thrilled to be able to point you to David Mandelin's blog post, JägerMonkey & Nitro Components, (and re-point you to Chris Blizzards post) to hopefully clear things up a bit.
I'm not particularly technical, but here's what this all looks like to me.
A couple of years ago, all JavaScript engines were pretty slow. Then Apple introduced SquirrelFish Extreme, which optimized large swaths of JavaScript quite well using something called a Method JIT, and Mozilla introduced TraceMonkey which optimized fewer cases but to a very high degree using something called Tracing. Then V8 from Google came along with something similar to what SquirrelFish Extreme (now called Nitro) was doing.
The end result of this first round was that Firefox was really-really hyper-fast at a few things and behind somewhat on many other things. Now, with JagerMonkey, Mozilla is adding a Method JIT like Nitro and V8 have so we'll be well optimized for a majority of cases while preserving the Tracing approach where we can be super-duper fast when it's applicable.
To build this method JIT, we're re-using a relatively small part of the Apple Nitro JavaScript engine while building a bunch of new functionality ourselves.
But there's even more cool news. Once we get the method JIT in and we're on solid footing with all of the other JS engines for those common cases, there's still a lot of opportunity to improve our Tracing feature to cover more and more cases. So hopefully we'll see increases in the places where we can be out of this world fast, while making sure there are no places that are slow. That's enough to make you wonder if Apple or Google (or Opera) will decide they need Tracing in their JS engines. If they do, I hope they take a look at Mozilla's code so they can benefit from our work.