Version 21 of javascript

Updated 2011-02-28 18:08:46 by Cameron

"JavaScript" is primarily, of course, the language which Tcl's javascript module targets. [Say a few words on JavaScript as a language.]

Zarutian 28. janúar 2007: Glad to oblige. Javascript is an derivative of ECMAscript and is a cousin to ActionScript which is used in Adobe (former Macromedia) Flash. Javascript is heavily object oriented prototype based system rather than class based. And is therefore similar to Lua in that regard that objects can obtain new methods and member variables. Ajax is actually Javascript code that relies heavily on XMLPostRequest component and its callbacks. More about javascript I dont know.

"Introduction to JavaScript" [L1 ] is a March 2006 ETech tutorial.


JavaScript and Tcl have a special relation: both at Sun and Netscape (Mosaic, originally), the two were in strategic competition. Roger Binns [[email protected]] originally embedded a Tcl interpreter in the Mosaic browser; "[d]etails are in the proceedings of the 2nd WWW [C]onference". He writes about this that, "The audience were in awe of a demo that printed an entire book based on following the rel links in web page headers, got everything in the right order, loaded the pages and printed".

Netscape chose JavaScript, though.

See also Tcl in Javascript


There is also a module in the tcllib library of Tcl code. Its purpose is to aid developers in generating HTML and JavaScript code. Related modules are ncgi and html.

Documentation can be found at http://tcllib.sourceforge.net/doc/javascript.html .

Examples of use of this code are encouraged.


NEM If you want to evaluate JavaScript code from Tcl, then there are a couple of options. Firstly, hv3, the web-browser built on top of TkHTML comes with a binding to the SEE ECMAScript Interpreter library [L2 ]. Secondly, I also have a very quick/simple binding to the NJS interpreter library available from [L3 ].

jdc Another option is tcljs . It can be used to embed spidermonkey in a Tcl application.

It can be used in combination with package tcljspac to process proxy.pac files.

Yet another option for bindings to SpiderMonkey [L4 ]


A 2009 article by Cameron Laird on javascript [L5 ]


Anyone who has read this far will probably want to know about Zombie [L6 ], created for automatic testing of JavaScript-coded applications (more than that, really; it also knows about CSS, ...). It's of broader interest, though, mostly in directions where Tclers swarm: automation, Web scraping, DOM analysis, ... Zombie is open source, of course, and a nice model for at least a few techniques that are useful in Tcl-oriented testing code.


Name: "tcljs"
Who: Neil Madden
Where: http://www.cs.nott.ac.uk/~nem/tcl/ 
        http://www.njs-javascript.org/  (this domain is for sale as of 21 Sep 2009)
What: JavaScript interpreter
Description: Tcl wrapper for the NJS JavaScript interpreter library