Merry christmas everybody - now you can use chipmunk to port your games to the browser!
http://dl.dropbox.com/u/2494815/code.html
Joints and the spatial hash haven't been implemented yet, and even in chrome its running about 3.5 times slower than the C implementation of chipmunk. But I think there's a lot of room for improvement with some clever tweaking[1].
The API is slightly more OO now, but 99% of API calls still have a direct translation. Eg, instead of calling cpSpaceAddBody(space, body), you call space.addBody(body). Stuff like that.
Have fun with it! Repay me by sending me a link when you make cool things

If anyone is keen to help port Chipmunk's demos over, or get all the joints working, I'd greatly appreciate it. Fork the project on github and send me some pull requests.
https://github.com/josephg/Chipmunk-js/
[1]: Currently vectors and bounding boxes are stored on the heap. In 5 seconds of benchmark run, chipmunk is allocating 6 million objects. Unsurprisingly, I'm spending 25% of the time garbage collecting, to say nothing of object allocation costs. I might have also broken the persistant collision code. Between those two, and re-enabling object pools for bbtree nodes, I think there's a *lot* of room for performance improvements.
Oh yeah, and incase you're curious - ChipmunkJS minifies to 44k of JS, or 13k gzipped. Sexy.
[Edit: Adjusted timing numbers to reflect the 45% improved performance from an afternoon of tweaking. Booyah.]