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

| FESI (pronounced like fuzzy) a Free EcmaScript Interpreter.

Release 1.1.5
Some bug fixes

The `FESI` (pronounced like fuzzy) home page

Version 1.1.5 (July 29, 2000)
Download (both binaries and sources are available)
Mail to the author: Jean-Marc Lugrin

`FESI` (pronounced like fuzzy) is a full implementation of the EcmaScript language (defined in the standard `ECMA 262` available at `http://www.ecma.ch` (edition of june 97). EcmaScript is largely equivalent to the JavaScript language version 1.1 or to the core part of JScript, but without the navigator specific extensions. A few extensions can be loaded, to provide basic input/output, file input/output, access to Java objects, database access and regular expression based search from an EcmaScript program, including dynamic loading of classes and beans.

`FESI` consists of a set of java packages, allowing to use EcmaScript as a macro language for Java applications, and of an interactive interpreter (usable from the command line to test EcmaScript programs). The integration with Java is very strong, making `FESI` a useful tool to test Java libraries.

There is a simple editor included with the Swing version of the interpreter. You can execute scripts interactively or from the editor windows.

You will find additional useful libraries in the link page.

#### A few examples of code:

- Simple code to list system properties, an example to access Java from EcmaScript.
- The juggler code creates the juggler bean with start and stop button. An example how a bean can be tested from an EcmaScript program.
- An example of using Swing from EcmaScript, including event handling!
- A simple `XML` parser written entirely in EcmaScript.
- FesiFTP, a simple FTP access program with macros written in EcmaScript.
- A work in progress of interest is FesiForm, a `GUI` generator based on `XML`.

#### Latest changes:

Previous history is available here.

1.1.5 - July 29, 2000
Corrected bug when calling a function with less arguments than the number of real parameters. Now correctly returns 'undefined' for missing parameters (thanks to Rob Noble and Sergey Borisov).
Use 'undefined' when attempting to use no value at all (for example using the returned value of an function which ends with an empty statement). Previously this created a null pointer exception.
Hack (adding a new line) to work around a parsing limitation which generated an error when a single line program was terminated by a // comment.

1.1.4 - January 30, 2000
Added the GnuRegExp (Thanks to Mike Dillon), allowing LGPL support of RegExp.
Better documentation of Windows Installation.

1.1.3 - December 25, 1999
LICENSED UNDER THE LGPL.Thanks to the Debian and FSF people who encouraged me to use a more standard license. NOTE: To avoid any licensing ambiguity, the ORO regular expression library is not included anymore, you must download it from http://www.savarese.org.
Use javaCC 1.1.
Corrected bug in getting path separator (for Linux).
Pass call to functions to the prototype even if prototype is a native object.
Add extensions of initialized objects (from Christophe Marton).
new Date() correctly initialize to current time.
Corrected bug in parseInt of large numbers.
Corrected bug when RegExp matched but one group did not match.
The limitation on calling public methods of non public classe is documented (thanks to Jason Mathews).
The LINK.HTML page has been updated.

1.1.2 - May 8, 1999
Avoid converting BigInteger to builtin numbers (thanks to Denis Bohm).
Add support to sort function in Array.sort (thanks to Hannes Wallnoefer)
Corrected bug in normalize value to support arrays (thanks to Kurt Westerfeld)
Corrected bug in array enumeration when non indexed properties were present.
Transformed parameters of JSFunction to JSObject when possible.
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
1.1 - March 7, 1999 (not announced)
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 (routines 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.

- Online documentation - Describes the interpreter, library interface and extensions.
- Public key - Contains my public PGP key used to sign some redistribution licenses (under the old license agreement, prior to 1.1.3).
- Interesting links - List links useful for EcmaScript developers and `FESI` users.
- Installation instructions - Describes reprequisites and installation steps.
- Change history - List history of changes.
- Download FESI - You will first have to read and accept the conditions.
- Back to home page on Internet - the FESI home page.

Last update: 29 July 2000