Revision history for JE

0.006   March 29, 2007
        Alpha release.
        - Added TypeError and RangeError classes
        - Finished the Function and Array classes (except for
          Function.prototype.toString)
        - JE::String now has an exportable 'surrogify' function
        - Added some methods (toString, valueOf, charAt, charCodeAt,
          concat, indexOf, lastIndexOf,  localeCompare)  to  String
          objects, and added the String constructor to the
          global object
        - Found and fixed quite a few bugs in the parser:
          o || && were parsing as | |  and & &
          o Hexadecimal literals would cause syntax errors
          o The parser would create a garbage tree when certain infix
            ops were followed by compound expressions that could  con-
            tain the same op (i.e., [], {}, () and function literals).
            (I fell into the 'sub foo { /regex(.*)/; foo(); print $1}'
            trap.)
          o Bracketed subscripts did not allow whitespace before the
            closing bracket
          o "a++\nb++"  without a semicolon between the two statements
            was causing a syntax error because -- and ++ were gobbling
            up trailing whitespace.
          o <<= and >>= and >>>= were causing syntax errors
          o for loops with variable declarations in the header
            weren't parsing
          o continue/throw/break/return were not parsing correctly
            when followed by a line break
          o 'with' was parsing as 'while' (!)
          o switch and try blocks weren't parsing correctly

0.005   5 March, 2007
        Alpha release. Changes and additions:
        - The parser has been rewritten completely with recursive sub-
          routines.  It is now faster than before,  and doesn't cause
          bus errors.
        - The Error and SyntaxError classes now actually work. Before
          I just threw them together without even testing them.
        - The Object constructor is now according to spec.
	- URI-handling functions and the URIError class
        - Added the rest of Object.prototype's properties

0.004   19 February, 2007
        Alpha release. New features and bug fixes in this
        release include:
        - Support for all JavaScript statements, not just expression
          statements
        - JE::String now provides a desurrogify function.
        - JE::upgrade now supports coderefs and makes '0' into a num-
          ber, as the docs say it does.
        - The JE::new_function method has been added.
        - Overloading for JE::LValue objects
        - JE::Object::props now returns the names of the object's pro-
          totype's properties as well as the object's own
        - Error and SyntaxError classes
        - Function literals and declarations
        - '==' in JS now does string comparison if at least one oper-
          and is a string  (it used to determine that it  should  do
          string  comparison  and  then  do  numeric  equals  anyway,
          because I typed '==' by mistake instead of 'eq'!)

0.003   14 February, 2007
        Alpha release. All JavaScript operators are now supported. JS
        numbers now use Perl's nan and inf.  A few bugs in the object
        classes have been fixed.  A bug preventing the  expansion  of
        backslash escapes in string literals has been fixed.

0.002   7 February, 2007
        Still a pre-alpha version with almost no features and lots of
        bugs. A lot of work has been done on the object classes.  The
        parser is half-written,  but the code that actually  executes
        the parse tree is far from complete.  The only really noticea-
        ble new features are that array and object literals and  iden-
        tifiers are now parsed and interpreted.

0.001   24 January, 2007
        Pre-alpha version,  with almost no features and lots of  bugs.
        The man pages describe many features that have not been imple-
        mented, so it's all just talk.

