
	     What's new in the NGS JavaScript Interpreter
	     ============================================

Noteworthy changes in js-0.2.5:

  - Implemented nested function declarations, e.g. function
    declarations as statements.
  - Ported to 64 bit Alpha chip.


Noteworthy changes in js-0.2.4:

  - Security options for the virtual machine to disable insecure
    methods from the File and System built-in objects.
  - New global method `print()' that prints its arguments to the
    system's standard output stream.
  - User-definable event hooks.
  - New built-in object `Directory' to access directories.
  - ECMAScript compatibility fixes in: built-in objects, byte-code
    operands, compiler
  - Optimizations in the memory usage.
  - Simple constant folding optimization for additive expressions.
  - JavaScript assembler `jsas'.
  - Many bug fixes.


Noteworthy changes in js-0.2.3:

* Misc

  - ECMAScript compatibility fixes in: built-in objects, byte-code
    operands, compiler
  - fixed the configure option `--with-pthreads' to resolve the system
    features


Noteworthy changes in js-0.2.2:

* Misc

  - js.h API changes
  - better ECMAScript support

* JSC

  - do Statement while (Expression);
  - switch (Expression) CaseBlock
  - try statement (ECMAScript compatible)
  - labeled statements
  - the continue and break statements now support the labeled
    statements
  - local variable declarations in for statements
  - \xHH and \uHHHH escape sequences in string and regular expression
    literals
  - strict equals and does-not-equal operators
  - the `arguments' property of function instance
  - optimizations and code cleanups


Noteworthy changes in js-0.2.1:

* New methods:

** global methods

  - callMethod() to call methods from objects with given array of
    arguments.
  - loadClass() extend the interpreter by calling extension entry
    functions from shared libraries.

** File

  - chmod() change permissions of a file

** Number

  - constructor `new Number()'
  - global method `Number()' invocation

* The `js' program

  - new option -x, --executable to add execute permissions to the
    generated byte-code files
  - new warning options: -Wmissing-semicolon, -Wstrict-ecma, -Wpedantic

* js.h API changes

* Misc

  - Uses libtool for libraries.  Now the libjs can be built to a
    shared library.
  - New utility program `jswrap' to create C functions that are
    implemented in JavaScript.
  - Automatic semicolon insertion.
  - Support for regular expression literals.
  - Support for array initializers.
  - updates in the byte-code operands
  - new configure option `--disable-jumps' to uncoditionally disable
    the `jumps' byte-code instruction dispatch method
  - ported to Windows 9x/NT


Noteworthy changes in js-0.2.0:

* The license was changed to GNU Library General Public License LGPL.

* JSC

  - Implemented 'foo'-strings.  The character constants are now
    written as #'a'.
  - Implemented the mod operand.

* Implemented the prototype properties for objects.

* Implemented the prototype properties for built-in objects.  Now you
  can define your own properties for built-in objects.

* Major cleanups in the memory management:

    - The interpreter will not exit if memory allocations fail.
    - Fixed all known memory leaks.
    - Optimized the heap freelist handling.  This reduces the memory
      consumption noticeably.

* Namespace cleanups.

* Documentation updates.

* Bug fixes and feature updates.  Please, see the ChangeLogs for the
  details.
