Contrary to comments in the code to the contrary, storing the "next" field as a byte offset rather than a cell offset seems to be hurting performance. Both shark and timing tests with SunSpider show a small performance gain by switching to cell offsets. As an added bonus, using cell offsets eliminates a lot of somewhat ugly casting.
Created attachment 18284 [details] Cell offset usage
Comment on attachment 18284 [details] Cell offset usage r=me
Henry requests that anyone landing this patch should verify that it is a speedup since it is a little mysterious why.
Landed in r29195. My testing showed this was a 0.4% speedup.