<snip>
SpiderMonkey (C implementation of the same, but not really usable as a
scripting environment)>
<snip>
Mozilla SpiderMonkeyhttp://
www.mozilla.org/js/spidermonkey/
The demo js interpreter that comes with SpiderMonkey is actually
really easy to extend. I managed to add file IO capabilities
(fopen,fread,fgets,fputs,fseek,fclose) in around 250 lines of code. I
believe this was the origin of JSDB. JSDB looks really nice especially
the unified Streams API that lets you open files on disk as well as
URI.
I myself have been thinking of implementing a simple binary module/
package system for SipderMonkeys js interpreter (instead of directly
modifying the interpreter) so that you can simply "require" a module
and have it loaded. Lots of languages have gone this path,
implementing a very simple interpreter which is turing complete but
can't do much then load features from modules/packages.