FESI (pr. like fuzzy) EcmaScript interpreter
Author: Jean-MarcLugrin
Description: Describe the FESI EcmaScript interpreter
Keywords: EcmaScript, JavaScript, JScript, Java

| Free EcmaScript Interpreter. A JavaScript interpreter written in Java.

Change history

The version 0.5 adds:

- AWT event handling. It is therefore possible to build and experiment with user interface with FESI.

The version 0.6 adds:

- A general event handling capability.
- Loading Java classes from a dynamically specified directory or jar file and dynamic loading of beans (including applets and gif images).
- Various examples of loading beans and event handling.
- The new command `describe`.

The version 0.7 adds:

- Support for bean properties as EcmaScript properties.
- A load routine (as part of BasicIO).
- Speed enhancement (especially for java access).
- Corrected various bugs.

The version 0.8 adds:

- Support for bean properties as EcmaScript properties even for objects not declared as bean.
- Possibility to give an EcmaScript Array as a parameter for indexed properties or when a native Java array is required.
- Many enhancements in the jslib, including a way to create EcmaScript objects and arrays, to declare objects as beans and to build functions looking as EcmaScript functions, to get original exception hidden behing JSException. See the FesiPop example too.
- Command `@clear` added, and commands can be specified by any unique prefix.

There was some confusion with the numbering of 0.8 and 0.9. From 0.9 the patch levels are between parentheses, as in 0.9(2).

Release 0.9 alpha adds:
(Now works with the "jit", which double the performance (good, but a far cry from the marketing hype!)

- (1): Possibility to catch the original error when a JSException was generated.
- (2): Corrected bug with enumeration of non string returning java objects.
- (3): Corrected bug with indexed access to the arguments special variable, getOriginalException, typeof undefined, added command `@pwd`, the Database access mechanism.
- (4): Completion of the database interface, addition of evalAsFunction, and some explanation of the option `-T` in the interpreter.
- (5): Minor internal enhancements to the database interface, regular expression and the tryEval capability. FesiFTP example added.
- (6): Better support for with(javaObject), enhanced FesiFTP example, new File().readAll convenience function, small internal code enhancements. Beware: getLastError in the database extension has been changed to return null (instead of undefined) if there is no error.
- (7): Bug corrections: Close the loaded file or stream in all cases (even in case of error), indicate that that the ProgrammingError exception is caused by FESI internal errors. Enhancements in @describe and @listall commands. Accept empty statements in more places (especially function(){}).
Added xml parser example using the ibm xml4j package. Added function makeObjectWrapper(object) to JSGlobalObject, allowing to use any object as an JSObject (for example with the eval function, making the object the "this" of the evaluation sequence). Added support for evaluating any string as if it was a function with parameters. Added support for Swing in the interpreter (-s) and as an alternate extension (BasicIOs).
- (8): Corrected a bug in calling some interface class objects. Corrected a buh in the Swing console mode. Added `throwError`.
- (9): Display value for `FIELD` and `PROPS` in `@describe`. `@load` and `load()` now look in FESI.path or (if not present) in the classpath to find the module. This can include jar and zip files. A command `@path` display the load path in use. Updated the installation notes.

Beta 1 - Some errors in java access of interface routines corrected. FesiForm example added.

Beta 2 - Bug in recursive call of the interpreter corrected.
A simple editing environment has been added to the Swing version

Beta 3 - Package was renamed Packages for compatibility with Netscape. The Swing development environment was enhanced.

Beta 4 - Added SetFullYear, corrected bug in new Date() function. Corrected bug in continue used in for and while loops.

1.0 - October 17, 1998 - A small correction in for loop handling. Added ORO libraries to binary distribution.

1.0.1 - not released to the general public
Use FESI_HOME in batch files (from Matt Humphrey).
Corrected bug on Date(date) constructor (from Hannes Wallnoefer).
getWelcomeText made public on evaluator.

1.0.2 - January 16, 1999
tryEval now return the evaluated value (rather than the first
parameter), as is documented and useful (from Kurt Westerfeld).
Added getVersion and getWelcomeText to the JSUtil package.
Corrected bug in @listAll of java arrays (from Kurt Westerfeld.
MathObject initialization moved around to help JBuilder users.
Corrected bug in EcmaScriptException printing (from Kurt Westerfeld).
Routine doWork in Interpreter made public (to ease embedding the
interpreter in user code).
Enhancement in routine lookup in inside class of interfaces (based
on an idea of Rich Kadel)

1.1 - March 7, 1999
WARNING: Use Swing 1.1 (javax.swing) in the swinggui if used with JDK1.1.7 !
A new option -e allows to load extensions from the command line.
The Interpreter structure has well as the gui classes have been changed to
ease subclassing and allow compilation without the Swinf and ORO classes.
Validated under Java 1.2, includes Java 1.2 compatible ORO classes.
Added access to CORBA style properties (rotuines without set/get prefix)
From Kurt Westerfeld:
Fix around Console to support the MS environment
Bug correction in ESObject, avoiding an endless loop if an object which
does not have a valid default string value is converted to string.
Added getMetaData() to connection and rowset in the Database extension.

1.1.1 - March 15, 1999
Cleaned up web documentation
Checked on Linux (the AWT GUI doubles all characters... sorry)
Very minor cleanup of code

Return to the main page

Last update: 15 March 1999