Approved! I diffed a decompiled swf8 LFC as well as the lzc --script output for a webtop compile. It all looks good!
I wish there was better documentation and naming - it took me a bit of reading to figure out what verious methods and classes were doing. For example, the name CodeGenerator doesn't really say anything about doing swf8 bytecode generation. I think your new method names are an improvement. P T Withington wrote: > Change 20091029-ptw-1 by [email protected] on 2009-10-29 15:18:26 EDT > in /Users/ptw/OpenLaszlo/trunk > for http://svn.openlaszlo.org/openlaszlo/trunk > > Summary: Remodularize the AST walkers > > Bugs Fixed: LPP-7184 Binary libraries don't work in swf9 (substrate) > > Technical Reviewer: max (pending) > QA Reviewer: hminsky (pending) > > Details: > > Overview > > Create a generic abstract syntax tree walker that knows how to > visit every node and (possibly) rewrite it. Subclass that for > each of the possible code generators. Use that to untangle the > compressor from the code generator. In the future, it can be used > to create other compiler phases, like to pre-analyze global > declarations and class models, to do inlining, and to > post-optimize, compress, and obfuscate. > > There is more cleanup that could be done to create a class that is > for JS1 platforms separate from JS2 platforms, but that is not > required for LPP-7184, so I have not attempted that here. > > JavascriptGenerator, CommonGenerator: Remove methods that > duplicate GenericVisitor or are only required in CodeGenerator > (swf8). > > JavascriptGenerator: Customize translateFunctionInternal for > Javascript (new name because it requires a different signature for > now). > > VariableAnalyzer: Only requires ASTVisitor interface. > > CommonGenerator: Extend GenericVisitor. Move include parsing up > to GenericVisitor. > > TranslationContext: Remove methods only needed for swf8. > > ASTVisitor: Move options here from Translator. Complete > signature for all AST's. > > Compiler: Remove ACTIVATION_OBJECT default (not needed since > swf5!). Continue to kludge interface to CodeGenerator. > > CodeGenerator: Create SWFTranslationContext that extends > TranslationContext with the features only needed for swf8. Move > swf8 overrides from CommonGenerator here. > > JavascriptCompressor: Extend GenericVisitor, overriding just > enough visitors to analyze and rename function locals. > > Translator: Move options to ASTVisitor and swf8-specific > interfaces to CodeGenerator. > > GenericVisitor: (new) Knows how to expand includes and walk all > nodes of the parse tree, possibly rewriting. What we should have > done when we started the DHTML project, but did not have time > for... > > ParseTreePrinter: Debug and name tweaks. > > Tests: > Smokecheck on all platforms, diff of LFCdhtml.js before and after. > > Files: > M WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/VariableAnalyzer.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/CommonGenerator.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/TranslationContext.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/ASTVisitor.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/CodeGenerator.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptCompressor.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/Translator.java > A WEB-INF/lps/server/src/org/openlaszlo/sc/GenericVisitor.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/ParseTreePrinter.java > > Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20091029-ptw-1.tar -- Regards, Max Carlson OpenLaszlo.org _______________________________________________ Laszlo-reviews mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews
