Clamato is a SmallTalk dialect implemented in JavaScript by AviBryant.
From http://clamato.net/ :
Clamato is a Smalltalk dialect that is designed to operate within the JavaScript runtime. (For non-Canadians: “clamato” is what you get when you add clams to tomato juice. Some consider this an unholy mixture; others, a tasty treat.)
Clamato is still experimental and changing rapidly. The following things are true for now, but might not be tomorrow:
- Clamato is self-hosting, in that it can compile itself to efficient JavaScript, entirely within the web browser. It uses a parser library based on Lukas Renggli’s PetitParser?. Smalltalk constructs (eg: temps, instance variables, message sends, blocks) generally map one-to-one to their JavaScript equivalents (respectively: local variables, object properties, method calls, functions).
- There are several departures from Smalltalk’s syntax and semantics. The most notable of these are: no explicit returns, 0-based indexing, no metaclass hierarchy, special syntax for instance variables.
- Clamato includes an (incomplete) interface to the JQuery JavaScript library, along with a Seaside-like HTML builder.
- Cæsar is a system browser built on all of the above. Like Clamato, it departs in a few notable ways from traditional Smalltalk browsers, but retains their spirit.
There’s a mini-tutorial here to get you started.