Apache Flex 'FalconJX' Cross-Compiler 0.8.0
=================

Apache Flex 'FalconJX' Compiler 0.8.0 is the next-generation
compiler that, instead of creating a SWF or SWC, cross compiles MXML and ActionScript
to JavaScript.  It is intended for use as the cross-compiler for Apache FlexJS SDKs.  

This release includes Maven artifacts.

In addition, lots of bug fixes and small improvements are included in this release. 

Bug Fixes
---------
-FLEX-35239 Runtime error when setting a property to a constant value
-FLEX-35236 Binding is not working when [Bindable] is set for the class
-FLEX-35231 [FalconJX] Context Lost on Event Listeners
-FLEX-35230 [FlexJS] Add SonarQube support and setup build jobs to run sonar scans of all modules
-FLEX-35229 [FlexJS] extend the flexjs-maven-plugin to be able to generate static asdoc html
-FLEX-35228 [FlexJS] Usage of statics in JSSharedData causes problems
-FLEX-35227 [FlexJS] Data Binding Fails When Following Multiple References
-FLEX-35226 [Falcon] Compiler crashes with stack trace if MXML file is empty
-FLEX-35221 EXTERNC stops reading input files if one is missing, but continues without creating a problem
-FLEX-35218 FlexJS Errors unable to debug
-FLEX-35209 [FalconJX] asjsc prints Java exeception when using -skip-transpile=true
-FLEX-35206 Javascript isn't produced correctly when beads are not the first element of View
-FLEX-35199 Array.removeAt() is broken in javascript mode in 0.8 dev
-FLEX-35196 [FlexJS] [FalconJX] Default method parameter that is static constant does not emit fully-qualified class name
-FLEX-35195 [FalconJX] "Generated byte code contains an operand stack underflow." when creating <js:Tree> with <js:HierarchicalCollection> in MXML
-FLEX-35190 [FlexJS] DataItemRenderer breaks if extends as MXML file
-FLEX-35184 Unclosed CDATA in MXML Script tag or AS E4x leads to infinite loop in compiler
-FLEX-35183 Unclosed XML comment in MXML or E4X leads to infinite loop in compiler
-FLEX-35173 In MXML CDATA Can't have EOF characters
-FLEX-35171 CSS color RGB not set in component
-FLEX-35143 Backslash escape problem
-FLEX-35141 [FlexJS] XML literals don't add quotes when interpolated to values
-FLEX-35140 uncaught exception on missing parens
-FLEX-35133 Make FalconJX console error output match MXMLC output
-FLEX-35131 XML literal not outputting correctly
-FLEX-35116 private setter not accessible from class using this
-FLEX-35114 static constants in constructor don't compile correctly
-FLEX-35113 Error evaluating XML variable
-FLEX-35112 Escape Backslashes not Retained in String Literals, Result in Syntax Error
-FLEX-35070 "for each" not working in XMLList
-FLEX-35060 Local function doesn't use self to reference class members
-FLEX-35050 NullPointerException in compiler.jx
-FLEX-35014 new vector
-FLEX-34873 implement --keep-as3-metadata in FLEXJS_INFO

Apache Flex 'FalconJX' Cross-Compiler 0.7.0
=================

Apache Flex 'FalconJX' Compiler 0.7.0 is the fifth release of a next-generation
compiler that, instead of creating a SWF or SWC, cross compiles MXML and ActionScript
to JavaScript.  It is intended for use as the cross-compiler for Apache FlexJS SDKs.  

This release includes Maven artifacts.

The ability to use source maps to see your ActionScript source in the browser debugger is introduced in this release.  The implementation is likely to have bugs.

In addition, lots of bug fixes and small improvements are included in this release. 

Bug Fixes
---------
-FLEX-35109 falcon compiler's build.xml error
-FLEX-35107 Error setting property of class when the type is XML
-FLEX-35104 [FlexJS] Binding Problem in Flash
-FLEX-35091 Style 'box-shadow': Compiler wrongly adds commas as separators between values
-FLEX-35081 Null Pointer Exception in attempt of overriding data property in item renderer
-FLEX-35077 Missed case of XML assingment
-FLEX-35074 Wrong method used for setting XML attributes
-FLEX-35073 Multiline XML literal not compiled correctly
-FLEX-35072 "+" operator failure on XMLList
-FLEX-35071 Extra "this" causing error
-FLEX-35067 XML literals are not compiled into constructors when the variable was already initialized
-FLEX-35066 XML literals passed into functions are not compiled correctly
-FLEX-35065 Object literals don't always work

Apache Flex 'FalconJX' Cross-Compiler 0.6.0
=================

Apache Flex 'FalconJX' Compiler 0.6.0 is the fourth release of a next-generation
compiler that, instead of creating a SWF or SWC, cross compiles MXML and ActionScript
to JavaScript.  It is intended for use as the cross-compiler for Apache FlexJS SDKs.  

Highlights in this release include:
- Output data structures required for reflection.
- Initial implementation of Proxy.
- Support for functions and variables in packages.

In addition, lots of bug fixes and small improvements are included in this release. 

Bug Fixes
---------
-FLEX-35053 Compiler does not respect the implements="..." attribute in MXML
-FLEX-35033 State Transition issue in FlexJS
-FLEX-35006 bug in mxmlc/compc/etc scripts when flexjs path contains spaces
-FLEX-35005 internal class members do not get prefixed with "this." when cross-compiling
-FLEX-35004 package-level functions do not get cross-compiled
-FLEX-34995 call to Language.closure() generated incorrectly when function is static
-FLEX-34994 single-line asdoc comment /**...*/ generates invalid JS output
-FLEX-34993 implicit super() constructor call receives subclass constructor params
-FLEX-34992 Missing FLEXJS_CLASS_INFO in class internal to a file
-FLEX-34991 Problem with setter/getter in .as file with multiple classes
-FLEX-34990 "new" operator combined with function invocation cross-compiles incorrectly
-FLEX-34989 String literals cross-compile incorrectly
-FLEX-34987 Parentheses are lost around ternary operator
-FLEX-34986 const class member variables get initialized incorrectly
-FLEX-34985 "is" and "as" operators cross-compile incorrectly when using class member variables
-FLEX-34984 for-each loops cross-compile incorrectly
-FLEX-34983 Variables get annotated incorrectly when the class name contains "String"
-FLEX-34771 Cross-Compile from AS to JS fails to generate "super" call.
-FLEX-33918 Unknown type error generated for known type
-FLEX-33917 Fully qualified class missing

Apache Flex 'FalconJX' Cross-Compiler 0.5.0
=================

Apache Flex 'FalconJX' Compiler 0.5.0 is the third release of a next-generation
compiler that, instead of creating a SWF or SWC, cross compiles MXML and ActionScript
to JavaScript.  It is intended for use as the cross-compiler for Apache FlexJS SDKs.  

Highlights in this release include:
- ExternC compiler that generates ActionScript SWCs from Google Closure Library
Externs for Common Libraries.  This enables the use of ActionScript to write
JavaScript for native JavaScript applications.
- Integration with IntelliJ.  You can now use Falcon and FalconJX in IntelliJ.  See
the wiki for instructions: https://cwiki.apache.org/confluence/display/FLEX/Using+FlexJS+with+IntelliJ+IDEA

In addition, lots of bug fixes and small improvements are included in this release. 

Bug Fixes
---------
-FLEX-34915 Shorthand for Vector (new <String>[]) doesn't transpile to []
-FLEX-34913 Types passed by reference should not be stored on the prototype because they are shared by all instances
-FLEX-34912 Object class in JS.swc is not dynamic, resulting in error when setting properties
-FLEX-34897 Scope is wrong when calling member function from a variable reference
-FLEX-34875 spec for the d.as (ActionScript definition) file (a library SWC)
-FLEX-34874 d.ts parser/tokenizer for simple API generation
-FLEX-34872 A HTML.swc needs to be created for the DOM API
-FLEX-34871 A builtin.swc, non playerglobal needs to be created for non FlexJS compiler runs
-FLEX-34552 FalconJX should be aware of Date properties
-FLEX-34544 Preserve ASDoc style comments


Apache Flex 'FalconJX' Cross-Compiler 0.0.2
=================

Apache Flex 'FalconJX' Compiler 0.0.2 is the second release of a next-generation
compiler that, instead of creating a SWF or SWC, cross compiles MXML and ActionScript
to JavaScript.  It is intended for use as the cross-compiler for Apache FlexJS SDKs.  

The only major change in this release is to speed up cross-compilation by only copying a subset of the Google Closure Library files to the output folder.

Bug Fixes
---------
-FLEX-34258 Error cross-compiling on Windows
-FLEX-34225 Configurations dependent on loading order of methods

Apache Flex 'FalconJX' Cross-Compiler 0.0.1
=================

Apache Flex 'FalconJX' Compiler 0.0.1 is the initial release of a next-generation
compiler that, instead of creating a SWF or SWC, cross compiles MXML and ActionScript
to JavaScript.  It is intended for use as the cross-compiler for Apache FlexJS SDKs.  
It is an extension of the Apache Flex 'Falcon' Compiler. 

Bug Fixes
---------
-FLEX-34224 An option to specifiy the output folder is missing
-FLEX-33925 goog.require not being generated

Known Issues
_____________

Unimplemented Compiler Features

The FlexJS SDK does not support embedding of assets or fonts and the compiler may
not handle embedding correctly and may even throw errors.

Flex SDK is not supported.

The FalconJX cross-compiler only supports compilation against a FlexJS SDK, not the Apache Flex SDK.

Command-line Usage

The FalconJX cross-compiler supports multiple output types.  They are specified to mxmlc and compc scripts and batch files via the options -js-output-type.  Only -js-output-type=FLEXJS is supported.

Please report new issues to our bugbase at:

    https://issues.apache.org/jira/browse/FLEX

                                          The Apache Flex Project
                                          <http://flex.apache.org/>
