JSMIPS
JSMIPS is a general-purpose simulator for MIPS that (at least hypothetically) runs in any browser that supports JavaScript (ECMAScript, JScript, etc). JSMIPS consists of a MIPS simulator with JIT compilation and a modular kernel written in JavaScript. A very small amount of the internals is documented here.
The author of JSMIPS, Gregor Richards, is looking for assistance with JSMIPS, particularly in the areas of cross-browser compatibility and speed improvements. If you think you can help, feel free to check out the mercurial repository (below) and play around with it, and contact Gregor Richards at Richards AT codu.org .
JSMIPS is available via Mercurial at https://codu.org/projects/jsmips/hg/
A test environment for JSMIPS is available online at http://codu.org/jsmips/system.html . This is a mostly-operational JSMIPS test environment with many UNIX binaries, including a working version of vi and a (slowly) working version of vim (with a few caveats).
JSMIPS includes a modified version of vt100.js , originally written by Frank Bi and available from http://fzort.org/bi/o.php .
A note for those wishing to redistribute/reuse JSMIPS: JSMIPS is under the MIT license, with the exception of the vt100.js module which is distributed under the LGPL (being derived from earlier LGPL work by a different author). As a result, if you use JSMIPS on your site, you must (at least) provide the full, unobfuscated code for vt100.js including any changes you make. I would certainly appreciate it if you provided the full, unobfuscated code for everything else you may have changed, though :)