SEE: Simple ECMAScript Engine

A full JavaScript interpreter and runtime library in C.

see-shell-3.1.exe 27 Apr 2009 1865.1k
see-3.1.1424.tar.gz 27 Apr 2009 991.5k
see-shell-3.0.exe 10 Feb 2008 2207.5k
see-3.0.1376.tar.gz 10 Feb 2008 1041.8k
see-shell-2.0.exe 6 Aug 2006 1708.3k
see-2.0.1131.tar.gz 6 Aug 2006 926.4k
see-1.3.1.tar.gz 18 Jan 2006 511.0k
see-1.3.tar.gz 24 Dec 2005 510.2k
see-1.2.tar.gz 31 Oct 2004 525.2k
see-shell-1.2.exe 31 Oct 2004 1068.9k
see-1.1.tar.gz 15 Aug 2004 323.1k
see-1.0.tar.gz 3 Dec 2003 297.5k
see-0.0.tar.gz 5 Nov 2003 161.1k


ECMAScript is a standardized language also known variously as JavaScript, JScript, and LiveScript. SEE is a library that provides a parser and runtime environment for this language. It conforms to ECMAScript Edition 3, and to JavaScript 1.5, with some compatibility switches for earlier versions of JavaScript and Microsoft's JScript.

Quick links into the documentation:

SEE can let you:

SEE comes with a shell (see-shell) that allows javascript programs to be run interactively, from plain or from HTML files.

Please see the current SEE library documentation for examples of using of SEE, and the data types it exposes. (You may wish to compare SEE with the Spidermonkey API - my notes.)

SEE does not provide a document object model. However, the API was designed with the goal of binding SEE objects to a DOM.

SEE was written with an emphasis on correctness and portability. When compared against a benchmark test it is not too bad. Use this Win32 SEE-3.0 JavaScript shell executable to test SEE against JScript and Nombas. It was built with MSYS/MINGW (gcc) on Windows XP x86. See also: Documentation on the see-shell

Integrating with applications

If you want to make your application use SEE, you should look at writing a bridging module that your application attaches to SEE. The module abstraction also serves as a primitive way to extend the see-shell example application, as modules can be loaded from shared libraries. See the comprehensive example for more information.

3.0 development status

See the current NEWS for what development progress has been made, including bugs found and fixed.

Developers, if you're thinking of using SEE at all, please try the current sources. They're usually pretty stable, and I would really appreciate feedback. There's a bugzilla link at the bottom of this page.

3.0 stable status

The new, big things in 3.0 are

Interface changes from 2.0

Please note that SEE's 2.x API is not going to be being maintained. (Well, not by me or anyone I know anyway.)

I have written up a brief summary of the function signatures and types that have been added or changed.

Future directions

For the future, some of the things I've been looking at are:

See Also

Other open JavaScript implementations that offer similar functionality to SEE:

  1. Spidermonkey (Mozilla)
  2. KJS (KDE) and WebKit JavaScriptCore (Safari)
  3. NJS
  4. EJS (Samba)
  5. others (Google Directory)

Mailing list

If you are interested in joining the SEE developer's mailing list, please send mail to Majordomo at with the body "subscribe see-dev" .

Source repository

The subversion repository for this software can be accessed through or browsed with ViewVC.


This software has been released under a BSD-style licence. This essentially means free for any use, with the one condition that the author of this software be credited in appropriate documentation.

Reporting bugs

If you find a bug in this software, please report it.