JsUnit |
This page give a short overview of the JavaScript language, available engines and JavaScript enabled products. Some of them are explained on separate pages demonstrating the usage of JavaScript in general and JsUnit especially in their context.
JavaScript is normally recognized as scripting language for browsers only. While the the most browsers understand JavaScript to some extent, the language itself is not limited for browser usage. A lot of people also accuse the language of the reason for browser incompatibilities or security holes, but this is not true wither. JavaScript itself has no idea of the DOM or of a file system. Any functionality built into the language concerning these topics are add-ons by the vendors. Also a lot of vendors have not implemented the complete JavaScript standard arising a lot of incompatibilities, too. Therefore you have always to separate between the language itself and the version released from a vendor.
ECMAScript is the official name of the language commonly called "JavaScript". ECMA is an international, industry association and dedicated to the standardization of information and communication systems. The language is specified in the ECMA-262 document currently in the 3rd edition from 1999. This edition introduced exceptions into the language. Unfortunately the standard does not define any functionality or properties to retrieve the call stack. A new edition 4 of ECMAScript is upcoming, but not ready yet.
JavaScript is the ECMAScript version of Netscape. To be honest, JavaScript was developed by Netscape and introduced with the Netscape 2.0 browser. Starting with JavaScript 1.4 Netscape also implemented the exceptions. Today Mozilla.org is developing in accordance with ECMA a new version 2.0 of JavaScript, that will implement the features of an upcoming 4th edition of the ECMA standard.
The JsUnit library has to use exceptions. Exceptions were part of the third ECMA language draft and therefore not everywhere available. The JsUnit scripts are only available on systems that support exceptions. Additionally the scripts try to expose the call stack in case of an error. This call stack is also subject of compatibility and have changed in various versions of the language implementations of the different vendors. Unfortunately the ECMA specification does not have any definition.
Writing a JavaScript interpreter according the ECMA specification is quite a lot of work. Therefore most JavaScript engines are used in more than one product. The most popular engines can be embedded freely in your own applications. Mozilla.org has two JavaScript engines to offer as Open Source, Microsoft's engine is also available for applications as system service via COM.
Mozilla.org provides two script engines, one implemented in C (SpiderMonkey) and one in Java (Rhino). SpiderMonkey is used also in the Mozilla browser.
Microsoft's JavaScript implementation named JScript is part of the Windows Script engine. This engine is able to run a lot of languages, JScript is just one among others. Any application may embed the script engine and process scripts in any of the registered languages.
There are a lot of products that are able to process a JavaScript flavor. I have listed all products that I am aware of.
Product | Vendor | Language | Engine | JsUnit Version | Comment |
Bean Scripting Framework | IBM | JavaScript 1.5 | Rhino, JScript | ? | uses other scripting engines |
Communiqué 2.x | Day International | ECMAScript | own | - | no exceptions |
Communiqué Unify (3.x) | Day International | JavaScript 1.5 | Rhino | 1.2 ? | |
deployZone Application Server | deployZone | JavaScript 1.5 | Mochascript | ? | |
Director MX 2004 | Adobe (Macromedia) | Lingo | SpiderMonkey | ? | |
DMDScript | Digital Mars | ECMA-262, v3 | own | ? | ? |
Enterprise Server 3.x | Netscape | JavaScript 1.2 | Netscape | - | no exceptions |
FESI | Jean-Marc Lugrin | ECMA 262, v2 | own | - | no exceptions |
Flash 5.x | Macromedia | ActionScript 5 | own | - | no exceptions |
Flash MX | Macromedia | ActionScript 6 | own | - | no exceptions |
GoLive 5 | Adobe | ECMA 262, v3 | SpiderMonkey | ? | |
IceStorm Browser | IceSoft | ? | ? | ? | |
Internet Explorer 4.x | Microsoft | JScript 3.0 | JScript | - | no exceptions |
Internet Explorer 5.x | Microsoft | JScript 5.0 | JScript | 1.0, 1.1, 1.2 | |
Internet Explorer 6.x | Microsoft | JScript 6.0 | JScript | 1.0, 1.1, 1.2 | |
Internet Information Server 4.x | Microsoft | JScript 3.0 | JScript | - | no exceptions |
Internet Information Server 5.x | Microsoft | JScript 5.0 | JScript | 1.0, 1.1, 1.2 | |
iPlanet Web Server, Enterprise Edition 4.x | iPlanet | JavaScript 1.4 | Netscape | 1.0 | no call stack |
JANET | Steve Newman | JavaScript 1.4 | own | ? | JavaScript for .NET |
KJSCMD 0.3 | KDE.org | ECMA 262, v? | KJS | 1.2 | no call stack |
Konqueror 1.9.8 | KDE.org | ECMA 262, v? | KJS | 1.2 ? | no call stack |
Konqueror 3.1.3 | KDE.org | ECMA 262, v? | KJS | 1.2 | no call stack |
Konqueror 3.5.2 | KDE.org | ECMA 262, v? | KJS | 1.2 | no call stack |
LiveMotion 1 | Adobe | ActionScript 4 | ? | - | no exceptions |
LiveMotion 2 | Adobe | Automation Script 2 | ? | ? | |
Metamerge Integrator | Metamerge | JavaScript 1.5 | Rhino | 1.2 ? | |
Mozilla Firefox 0.8x | Mozilla.org | JavaScript 1.5 | SpiderMonkey | 1.0, 1.1, 1.2 | < |
Mozilla Firefox 1.x | Mozilla.org | JavaScript 1.5 | SpiderMonkey | 1.0, 1.1, 1.2 | |
Navigator 4.x | Netscape | JavaScript 1.3 | - | - | no exceptions |
Navigator 6.x | Netscape | JavaScript 1.5 | SpiderMonkey | 1.0, 1.1, 1.2 | is Mozilla 0.81 |
Navigator 7.x | Netscape | JavaScript 1.5 | SpiderMonkey | 1.0, 1.1, 1.2 | is Mozilla 1.0 RC2 |
NGS JavaScript Interpreter 0.2.5 | Markku Rossi | JavaScript 1.4 | own | - | bugs in exceptions |
NJS JavaScript Interpreter 0.3 | Brian Basset | JavaScript 1.4 | - | - | fork of NGS 0.2.5 |
Notes 5.x | Lotus | LiveScript x | own | ? | |
Obtree C4 | IXOS-Obtree | JavaScript 1.5 | SpiderMonkey | 1.2 | no call stack support |
One-to-One 5.x | BroadVision | JavaScript 1.4 | 1.0 | Netscape | OEM of iPlanet 4.x |
One-to-One 6.x or newer | BroadVision | ? | ? | ? | is now J2EE server |
Opera 4.x | Opera | ECMAScript 2 | own | - | no exceptions |
Opera 5.x | Opera | ECMAScript | own | - | exceptions buggy, no call stack |
Opera 6.x | Opera | ECMAScript | own | ? | follows ECMA-262, 3rd, no call stack |
Opera 7.x | Opera | ECMAScript | own | ? | follows ECMA-262, 3rd, no call stack |
Opera 8.x | Opera | ECMAScript | own | 1.2 | follows ECMA-262, 3rd, no call stack |
Rhino 1.5 | Mozilla.org | JavaScript 1.5 | Rhino | 1.2 | no call stack support |
Safari | Apple | ECMA 262, v? | KJS | 1.2 ? | no call stack support |
SAP Web Application Server | SAP | ? | ? | ? | |
ScriptEase Desktop | Nombas | ECMA 262, v3 | ScriptEase | ? | ? |
SpiderMonkey 1.5 | Mozilla.org | JavaScript 1.5 | SpiderMonkey | 1.0, 1.1, 1.2 | no call stack support |
Sun ONE Web Server 6.0 | Sun | - | - | - | JavaScript dropped |
Visual InterDev 6.0 | Microsoft | JScript 5.0 | JScript | 1.0, 1.1, 1.2 | |
Windows Script 5.x | Microsoft | JScript 5.x | JScript | 1.0, 1.1, 1.2 | |
Windows Script Host 1.x | Microsoft | JScript 3.0 | JScript | - | no exceptions |
Windows Script Host 2.x | Microsoft | JScript 5.0/5.5 | JScript | 1.0, 1.1, 1.2 |
JsUnit © 1999, 2000, 2001, 2002, 2003, 2006, 2007 by Jörg Schaible
|
Generated on Wed Apr 15 2015 02:33:06 for JsUnit by doxygen 1.8.5
|