--------------------------------------------------- Release Notes for Translate AS1, Version 2.0.2. --------------------------------------------------- This release contains updates to the ActionScript grammar and a large number of bug fixes. The project was also restructured to use TestNG and the full set of test suites and ActionScript code samples used to test the package are included in the release. Bug Fixes Delete operator is now implemented. Delete function is now implemented. Instanceof operator is now implemented. Array elements can now be used with unary operators. Floating-point literals are now supported. Correct event code are generated for On statements. Multiple assignment statements are implemented correctly. Control characters \b,\f,\n,\r,\t can be used in strings. Compiled On statements are now encoded correctly. #include directive now searches for files correctly. Internal Class Changes Code generation matches Macromedia code better. Package Changes Added test suites using TestNG. Simplified package structure. Datasheets are now generated using Javadoc. ------------- Bug Fixes ------------- 1. Delete operator is now implemented. The delete operator: a = new Number(1); delete a; can now be used in scripts. 2. Delete function is now implemented. The delete function: a = new Number(1); delete(a); Now generates code correctly. It was supported in the grammar but the byte codes generated by the compiler were incomplete. 3. Instanceof operator is now implemented. The intanceof operator: a = new Number(1); if (a instanceof Number) { ... } can now be used in scripts. 4. Array elements can now be used with unary operators. Using unary operators such as: a[i]++; now generates the correct byte codes. 5. Floating-point literals are now supported. Floating point literals are now fully supported. Previously releases only supported integers. 6. Correct event code are generated for On statements. When an On statement was compiled the names of events passed to the statement are converted into event flags in a data structure wrapping the compiled code. The codes used to represent DragOver and ReleaseOutside events were swapped. The flags are now presented in the correct order. 7. Multiple assignment statements are implemented correctly. This fix is more of an internal change. When a nultiple assignment statement is compiled the values from the previous assignment in the sequence is now stored in one of the Flash Player's internal registers so it can be reused. It is not clear whether this value can ever be used however the compiled code was updated so it matches the code generated by the Macromedia authoring tool. 8. Control characters \b,\f,\n,\r,\t can be used in strings. Character literals representing "well-known" control characters can now be included in strings. Previously the parser in the compiler would throw an exception when any were detected. 9. Compiled On statements are now encoded correctly. The data structure that wraps an On statement was not encoded correctly so any ActionScript written to provide behaviour for buttons would cause an error in the Flash Player. The problem occured when more than one On statement was used in a script and was caused by an incorrect offset to the next On statement's actions. 10. #include directive now searches for files correctly. A list of directories can be specified to create a search path when files are #include'd. In previous releases the path was not being constructed correctly so the files were never found. -------------------- Internal Changes -------------------- 1. Code generation matches Macromedia code better. The bytes codes generated by the compiler now matches the code generated using Macromedia's Flash authoring tool more closely. This was done to simplify and speed up the process of testing - where text dumps of the compiled Actionscript are currently compared visually. ------------------- Package Changes ------------------- 1. Added test suites using TestNG. TestNG is now being used for performing all testing on the classes. Test suites are included along a reference set of ActionScript code to fully test the code generated by the compiler. The test suites make use of the TextDump tool from the Transform framework which is used to generate string representations of the reference ActionScript and the code generated by the compiler so they can be compared. 2. Simplified package structure. Classes are now compiled and packaged using a single ANT build file, build.xml. The previous version contained references to build files that were used internally to the projectand not normally part of the distribution. The build targets have also been simplified and made more flexible. A single target 'build' is not used to compile optimized versions of the framework and package the classes in a JAR file. For more detailed control, targets for each step in the build process are included. See the ANT file build.xml for more details. Some of files such as README.txt and LICENCE.txt have been moved around to simplify the package structure and generally tidy things up. 3. Datasheets are now generated using Javadoc. Javadoc is now the preferred way of generating the class datasheets. Previously doxygen was used. While doxygen is an excellent tool the goal of simplifying the package structure made Javadoc easier to use and avoided the need to download and maintain another application.