Revision history for the JSX software development kit

0.9.84 2014-03-25 11:18:00+0900
    [FEATURES]
    - allow use of ```void``` as a template argument
    - improvements in the const-folding optimizer

0.9.83 2014-03-07 19:02:00+0900
    [FEATURES]
    - compile-time constants; passed in via --define name=var / accepted as JSX.ENV["string-literal"] (#304)
    - const-fold comparisons with null
    [BUG FIXES]
    - reassignment against const variable of template class was not detected by compiler (#286)

0.9.82 2014-03-06 12:07:00+0900
    [FEATURES]
    - inline optimizer tries to expand static functions passed as callbacks

0.9.81 2014-03-05 11:11:00+0900
    [FEATURES]
    - Array#each has been renamed to Array#_forEach (#302)
    [BUG FIXES]
    - fix bug in optimizer that prevented callbacks with local variables from being inline-expanded

0.9.80 2014-03-04 13:27:00+0900
    [FEATURES]
    - introduce Array#each (#302)

0.9.79 2014-02-24 12:52:00+0900
    [BUG FIXES]
    - fix name conflict between --minify and property / method names with __export__ (#301)

0.9.78 2014-02-20 16:28:00+0900
    [FEATURES]
    - introduce macros: __FILE__, __LINE__, __CLASS__
    - introduce es6-style arrow function (i.e. "=>") (#288)
    [BUG FIXES]
    - fix bugs in the const-folding optimizer (casting empty multi-line string literal to boolean / casting hexadecimal number literal to string)

0.9.77 2014-02-07 13:20:00+0900
    [FEATURES]
    - ```int``` type has been changed to strict int32_t
    - introduce Promise class, defined in ES6

0.9.76 2014-02-03 15:27:00+0900
    [FEATURES]
    - [experimental support for npm] paths added by --add-search-path are preferred over node_modules/ (#275)
    [BUG FIXES]
    - fix compile error when extending a class with an exported constructor

0.9.75 2014-01-27 16:09:00+0900
    [BUG FIXES]
    - experimental npm support should respect "$CWD/node_modules" as well

0.9.74 2014-01-27 15:14:00+0900
    [FEATURES]
    - emit compile warning if identical files are imported from different directories
    - experimental support for npm (#275)

0.9.73 2014-01-24 15:11:00+0900
    [FEATURES]
    - an untyped map literal with certain types of elements is type-deducted to Array.<variant> if it is passed to a function taking such type as an argument (#291)
    - add js.newFunction

0.9.72 2013-12-22 14:00:58+0900
    [FEATURES]
    - Introduce TestCase#setUp(:AsyncContext):void and #tearDown(:AsyncContext):void to set up / tear down asynchronous tests (suggested by @yosuke_furukawa)
    - Now TestCase#toEqual() are able to test Map.<T> (suggested by @yosuke_furukawa)

0.9.71 2013-11-27 14:26:00+0900
    [FEATURES]
    - introduce local "const"

0.9.70 2013-11-20 08:30:53+0900
    [FEATURES]
    - Update web.jsx (797 insertions, 488 deletions)

0.9.69 2013-11-06 16:40:00+0900
    [BUG FIXES]
    - fix a bug that misinitialize the properties with default values, to
      which the properties are assigned to themselves within the constructor

0.9.68 2013-10-24 16:03:00+0900
    [BUG FIXES]
    - fix a bug in minifier that generated corrupt code when closures are
      nested within the initialization expression of a member variable
      definition

0.9.67 2013-10-23 12:01:00+0900
    [FEATURES]
    - type of array / map literals use as function arguments are deducted
      from the signature of the callee (#264)
    [BUG FIXES]
    - fix misoptimization of "super.meth()" in the "staticize" optimizer

0.9.66 2013-10-13 12:34:32+0900
    [BUG FIXES]
    - Fix #279: member functions could not be defined if
      a parent class had the same-named static functions

0.9.65 2013-09-10 22:04:10+0900
    [BUG FIXES]
    - Fix an issue in the inline optimizer

0.9.64 2013-09-05 21:39:27+0900
    [FEATURES]
    - Support type inference to member variables with empty array/map
      (`var a : T[] = []` in class definitions)
    - Allow to return void functions
      (`return voidFunction()`)
    - Allow `delete function constructor()` without function body
      in non-native classes

    [BUG FIXES]
    - Fix several compiler crashes

0.9.63 2013-08-25 13:37:53+0900
    [BUG FIXES]
    - Fix a compiler crash introduced in 0.9.62

0.9.62 2013-08-25 08:33:40+0900
    [FEATURES]
    - Support Python-like multi-line string literals ("""...""")
    - Support "tail-rec" optimization
    - Support "unused" warnings to detect unused variables
    - Improve type inference: now `[1, 2, 3].map((item) -> item + 1)` works

    [BUG FIXES]
    - Fix the signatures of Array#reduce()

0.9.61 2013-08-19 07:45:23+0900
    [BUG FIXES]
    - Fix an issue on LCSE optimizer

0.9.60 2013-08-08 22:12:39+0900
    [BUG FIXES]
    - Make label name conflict compile errors, rather than runtime errors
      (#127)
    - Fix issues that error messages sometimes displayed wrong places

    [CHANGES]
    - Update web.jsx up to the latest HTML5 specs

    [FEATURES]
    - Add window.orientation (#233)

0.9.59 2013-08-07 07:24:50+0900
    [BUG FIXES]
    - Fix the name conflicts on native inner classes
    - Fix the type of for-in iterator for arrays (#115)
    - Fix the type of array literals of int (#227)
    - Fix other issues

0.9.58 2013-07-26 16:41:43-0700
    [FEATURES]
    - Support type parameter inference in more cases (#203)
    - Support trailing commas in map and array literals (#215)
    - Support function templates for pure JSX classes (#217)
    - Support string + number (#213)
    - Improve "inline" optimizer to expand more complex functions

    [BUG FIXES]
    - Fix an issue that default parameters with template classes
      could not be compiled
    - Fix a bunch of issues

0.9.57 2013-07-20 17:03:11-0700
    [BUG FIXES]
    - Fix another evaluation order issue introduced in 0.9.54
    - Fix issues on template classes and inner classes

0.9.56 2013-07-14 20:54:30-0700
    [BUG FIXES]
    - Fix an evaluation order issue introduced in 0.9.54

0.9.55 2013-07-13 22:59:43-0700
    [BUG FIXES]
    - "\xHH" style escape in string literals didn't work
    - Duplicated case values are no longer allowed if they are
      literals

0.9.54 2013-07-13 21:06:35-0700
    [FEATURES]
    - Improve optimizer "fold-const"
      * folds some native pure functions: Math.sqrt(), Math.log(), Math.pow(), Math.sin(), Math.cos(), String.fromCharCode(), String#charCodeAt()
      * folds more operators: <, <=, >, >=, ~ (bitwise not)
    - Improve optimizer "inline"

0.9.53 2013-07-10 16:33:16-0700
    [FEATURES]
    - The compiler colorizes messages for tty
    - `jsx --test file.jsx` is allowed even if the file has no _Test class
      to validate the file easily

0.9.52 2013-07-08 19:44:00+0900
    [BUG FIXES]
    - Fix compile error when default parameters were used for function definitions with doc comments

0.9.51 2013-07-06 22:03:21-0700
    [BUG FIXES]
    - Fix native inner class issues again
    - Fix a jsxdoc issue that inner classes were not listed

0.9.50 2013-07-06 17:24:47-0700
    [BUG FIXES]
    - Fix #208, #209: issues on in-line native definition
    - Fix #210: fix the precedence of lightweight lambda expressions

0.9.49 2013-06-30 15:14:54-0700
    [FEATURES]
    - Introduce new in-line native definition syntax:
      native class N { ... } = "native code";
      deprecating the old one:
      native("native code") class N { ... }
    - New type inference: type of empty container literals from the lhs expr
      (#205)

    [BUG FIXES]
    - Fix #204, a compiler crash

0.9.48 2013-06-29 14:25:25-0700
    [BUG FIXES]
    - Fix a crash when function expressions were used as default parameters
    - Default parameters were accidentally allowed for non-member functions,
      which now causes compile errors

0.9.47 2013-06-26 23:49:41-0700
    [FEATURES]
    - Support self-contained source-map; now `jsx --enable-source-map --run`
      dumps stacktrace with JSX source code positions

0.9.46 2013-06-26 13:19:14-0700
    [FEATURES]
    - Show JSX source code position in stacktrace with --enable-source-map
      (#201, EXPERIMENTAL)
    [BUG FIXES]
    - Fix a crash with double definitions of variables without type (#202)

0.9.45 2013-06-26 12:32:00+0900
    [CHANGES]
    - add "util" to nodejs.jsx
    - support use of default arguments in constructors

    [BUG FIXES]
    - fix assertion failures in unbox/unclassify optimizers

0.9.44 2013-06-25 09:35:00+0900
    [CHANGES]
    - assertions with customized messages (#198)

0.9.43 2013-06-25 08:35:00+0900
    [CHANGES]
    - introduce default parameters (#199)

    [BUG FIXES]
    - fix error when parsing: "if (...) throw ...;" (not using block) (#192)

0.9.42 2013-06-16 23:18:31-0700
    [BUG FIX]
    - Fix #194: "dce" broke assign statements in logical/conditional exprs

0.9.41 2013-06-16 14:49:35-0700
    [BUG FIXES]
    - Fix a bug that int type parameters did not work correctly (#196)

    [CHANGES]
    - Changed sourceMappingURL syntax
      (see http://updates.html5rocks.com/2013/06/sourceMappingURL-and-sourceURL-syntax-changed for details)
    - Support sourcesContent in source-map to handle multiple source files
      easier
    - Improve "fold-const" to expand type casts in compile time as much as
      possible (resolve #182 again)

0.9.40 2013-06-11 03:42:00+0900
    [CHANGES]
    - accept Uint8Array as the argument to the ctor of Buffer of node.js

0.9.39 2013-06-10 18:00:00+0900
    [BUG FIXES]
    - use of "super.meth()" was causing compile errors if meth() is native
    - fix runtime error when extending a native class using the experimental "native(...)" annotation

0.9.38 2013-06-09 00:19:03-0700
    [BUG FIXES]
    - Fix a problem in QtScript that `object["word"]` caused compilation errors
      if the "word" was reserved (#187)
    - Fix a problem that static const member variables in native class
      was replaced to `null` by `--optimize fold-const` (#191)

0.9.37 2013-06-07 14:40:00
    [CHANGES]
    - typed-arrays are defined in built-in.jsx (#189)

0.9.36 2013-06-04 16:31:00
    [CHANGES]
    - accept numbers as 3rd argument of JSON.stringify (#188)

0.9.35 2013-06-02 21:13:23
    [BUG FIXES]
    - Fix #182 again
    - Fix types of Array#reduce() and Array#reduceRight() to take the type of
      a return value

0.9.34 2013-05-29 23:20:27
    [BUG FIXES]
    - Fix legacy AudioContext methods in web.jsx

0.9.33 2013-05-29 18:58:00
    [CHANGES]
    - improve dce optimizer (#182)

    [BUG FIXES]
    - Partial fix for #173

0.9.32 2013-05-28 09:22:05
    [BUG FIXES]
    - Fix bugs (#171, #174)

0.9.31 2013-05-20 10:04:05
    [CHANGES]
    - Installed jsx compiler is now built with --release flag to
      improve compilation speed

    [BUG FIXES]
    - Fix a typo in a function at js/nodejs.jsx (#168)

0.9.30 2013-05-17 23:51:39
    [BUG FIXES]
    * Fix bugs (#150, #151, #166)
    * Optimize command "staticize" is enabled again

0.9.29 2013-05-07 14:45:00
    [FEATURES]
    - Introduce "native('<<javascript expression>>')" attribute to load native classes (EXPERIMENTAL)
    - The minifier strips unused functions / classes.

0.9.28 2013-05-02 00:13:33
    [BUG FIXES]
    - Fix a regression that --disable-type-check was ignored,
      introduced at 0.9.27

0.9.27 2013-04-30 17:06:00
    [FEATURES]
    - Support for minification (#143)

    [BUG FIXES]
    - Fix #139

0.9.26 2013-04-19 10:21:08
    [BUG FIXES]
    - Fix #85, #123, #128, #132, #137, #141, and #142

0.9.25 2013-04-09 19:12:55
    [ANNOUNCE]
    - The JSX web site is now http://jsx.github.io/

    [FEATURES]
    - Add Window#closed in js/web.jsx

0.9.24 2013-04-05 13:43:49
    [CHANGES]
    - Disable "staticize" optimization for now, which changed the ABI

0.9.23 2013-04-05 11:49:56
    [CHANGES]
    - Disable JSX compilation server mode, which was introduced at 0.9.6,
      because it looks unstable.

    [BUG FIXES]
    - Fix bugs introduced by compilation server mode
    - Fix a bug that function statements inside a function named "constructor"
      caused runtime errors

0.9.22 2013-04-03 11:27:37
    [FEATURES]
    - Add the return-value type deduction for function expression;
      `(a : number, b : number) -> a + b` will be deduced to return a number,
      for example

0.9.21 2013-03-29 00:38:50
    [BUG FIXES]
    - Fix a bug that using `instanceof` operator to type parameters
      caused compiler crashes
    - Fix a bug that output of stdout and stderr in the compiler might be
      mixed by stream buffering

0.9.20 2013-03-23 16:01:49
    [BUG FIXES]
    - Fix generating source-map

0.9.19 2013-03-21 22:04:28
    [BUG FIXES]
    - Fix installation issues for Windows

0.9.18 2013-03-19 17:36:00
    [BUG FIXES]
    - Re-fix for #125

0.9.17 2013-03-19 00:47:00
    [BUG FIXES]
    - Fix a bug that nullable vararg (e.g. Array#push()) did now accept
      null value of a result of expressions (#125)

0.9.16 2013-03-13 10:08:50
    [BUG FIXES]
    - Fix "wide character in print" warnings

    [FEATURES]
    - Add "staticize" optimization command
    - Add `JSX.postProfilerResults(url, cb)` to know the request is finished

0.9.15 2013-03-12 11:08:35
    - Fixed only a packaging issue

0.9.14 2013-03-12 10:51:24
    [BUG FIXES]
    - Fix a compiler crash if non-existing static methods were called,
      which was introduced at 0.9.11

0.9.13 2013-03-12 10:04:24
    [BUG FIXES]
    - Suppress deprecation warnings about `path.existsSync()`

0.9.12 2013-03-09 18:34:56
    [BUG FIXES]
    - Fix an optimization issues found in shibukawa:Oktavia

0.9.11 2013-03-08 14:25:22
    [CHANGES]
    - Forbade calling instance methods after operator new without parens,
      i.e. `new Class.instanceMethod()`, because it was conflict with inner
      classes

    [FEATURES]
    - Added inner classes (nested classes)

0.9.10 2013-02-22 10:18:13
    [BUG FIXES]
    - Fixed a bug that jsx(1) crashes when spaces were passed to JSX programs on --run

0.9.9 2013-02-20 10:34:21
    [BUG FIXES]
    - Fixed a bug that jsx(1) did not work when it was installed by npm

0.9.8 2013-02-18 18:38:16
    [BUG FIXES]
    - Fixed a packaging issue

0.9.7 2013-02-15 16:45:13
    [BUG FIXES]
    - Fixed a path issue on Windows

0.9.6 2013-02-14 08:56:57
    [CHANGES]
    - TestCase will stop executing the current test on failure
    - Test failure will show stack trace if possible
    - Messages of assertion failure will include the related source code line

    [FEATURES]
    - Replaced jsx(1) with a wrapper to JSX compilation server
      The previous jsx(1) will be installed as jsx-compiler.js(1).
      This change will boost the compilation speed.

0.9.5 2013-02-07 01:53:14
    [CHANGES]
    - Removed web-intents from web.jsx; it has been removed even from Chrome.
    - The scope of named function expression are now ECMA-262 compatible (#108)

    [FEATURES]
    - Uses high resolution time in profiler if available
    - Added webrtc to web.jsx (see web/example/webrtc/ for example)
    - Added type deduction on common element type for array and map literal (#107)
    - Added type deduction on empty array / map literals (#50, #106)
    - Added Map.<T>#keys() (#102, #105)

    [BUG FIXES]
    - Fixed confusing messages on argument mismatch errors (#104)
    - Fixed an issue that associativity of equality expressions might be ignored (#88)
    - Fixed several compiler crashes

0.9.4 2013-01-31 19:31:16
    [BUG FIXES]
    - Fixed a packaging issue

0.9.3 2013-01-31 12:24:27
    [CHANGES]
    - Installed jsx(1) is now compiled with --release

    [FEATURES]
    - The "dce" optimization command can remove "if" statements
      when they has static conditions (#95)
    - Compile errors shows notes when no function with matching arguments
      are found (#96).
    - Added JSX.DEBUG and "no-debug" optimization command to control
      debugging statements.

    [BUG FIXES]
    - "unclassify" optimization might have broken generated code
      (671312aaaed22b38e59d20f6eb5b977d32d79d4b)
    - named function exprs outside of function caused compiler crash
      (823d4e5142feee92e95e2d0913c5b6c22be27665)
    - /*/ was parsed as a comment start + comment end (#91)


0.9.0 2013-01-26 00:13:42
    [CHANGES]
    - Ported JSX compiler from JavaScript to JSX (i.e. self-hosting)
    - Invalid cast throws error, instead of returning null
    - Invalid @param in jsxdoc produces compile errors
    - Added _Matcher#toEqual() in test-case.jsx to compare objects deeply
    - Added `--executable commonjs` for CommonJS-compliant engine
      like PhantomJS
    - Array#push() and Array#unshift() takes Nullable.<T>, not T (issue #82)
    - Enhanced type inference of conditional expression (issue #86)
    - Map literals can be declared as variant (like `{} : variant`)
    - Fixed a lot of bug

0.0.2 2012-09-23
    [ANNOUNCE]
    - Added Changes file

0.0.1 2012-05-30
    [ANNOUNCE]
    - The initial version of the JSX SDK

# vim: set expandtab spell:
