Hi all, Just a quick summary of things merged in via recent commit. See below for "How do I get things 'how they were' ?" if you want to switch off any of the new stuff.
More reliable actionscript support. The new settings provide greater compatibility. But they can also be tuned out (Hello world is a good example, and it is smaller now in gzipped format for release build, than it was before) -More things will 'just work' when porting from older actionscript libs. Vector behaviour is virtually identical to swf, other types of implicit type coercions are generated by default (but avoidable by config), and certain uses of int, uint and Class are more reliable and avoid compiler or runtime errors compared to before. Reflection now has PAYG/opt-in support for including top level as3 types (Array, Number, int, Vector etc). These roughly match the results you see with reflection in swf (actually reflection info for these swf items quite light). This is via a plugin style setup that is only included in release build if you use it. See here: https://github.com/apache/royale-asjs/blob/c6379b85d8aa9d164d49b09402a23f30cb4aee3a/frameworks/projects/Reflection/src/main/royale/org/apache/royale/reflection/ExtraData.as#L127 This same approach could be used with externs reflection data if it could be generated in a similar format, e.g. to provide possible reflection pack support for sets of javascript native classes. I plan to use the same ExtraData class to add support for Vector to AMFBinaryData, Vector is a low level type that has its own serialization rules. In this way there will also be no hard dependency on vector support in AMFBinaryData and it is therefore opt-in/PAYG via the ExtraData class. How do I get things 'how they were' ? maven (via additionalCompilerOptions): -js-complex-implicit-coercions=false; -js-vector-index-checks=false; -js-resolve-uncertain=false; -js-vector-emulation-class=Array; (note that you should also now be able to have these on separate lines in the pom - I find this much easier to read) ant: in compile-js-config.xml example [js-complex-implicit-coercions]false[/js-complex-implicit-coercions] [js-resolve-uncertain]false[/js-resolve-uncertain] [js-vector-index-checks]false[/js-vector-index-checks] [js-vector-emulation-class]Array[/js-vector-emulation-class] (angle brackets are substituted here with square brackets above in case they mess with some email clients) The first 3 options above have doc comment directives (@royalesuppress... ) so they can be tuned off or on inside method definitions also. Fixes Vector-as-Array emulation now supports insertAt/removeAt (same as Array) vectorEmulationClass receives the fully qualified name as the string parameter for the elementType Other -Added a lot of compiler tests for the vector emulation options and default vector implementation -RoyaleUnit: I ported a start of the manualtest unit tests to RoyaleUnit. @josh... these are actually language tests, but I thought they could not run in the Language project because it does not have all dependencies to run the tests themselves, perhaps I am wrong about that? I put them in Core for now, and they do run correctly in both swf and JS. But please tell me what you prefer for these (maybe they do need to go in Language...). Also I made some small changes in the js ant scripts for tests to correctly clean the test folder. -Added more reflection unit tests (manualtests) -Started to collate unit tests for XML and updated code to fix some observed issues (compiler and framework). -Hello world is approx 600 bytes smaller after gzip compression than it was before I might have forgotten some things, I will add extra info tomorrow if I recall more. Please ask questions if you have them.
