Tucker,

It turns out this replacement happens in the JavascriptGenerator (line 420). Running the same testcase with dhtml gives the spinning laszlo logo. I know SWF9Generator does the same trick for a different case to handle globals, but replacing a node with ASTEmptyExpression seems to be a common technique. Probably because it's somewhat awkward to elide a node as it affects the next higher level node. I'm inclined to add a stronger comment in ParseTreeGenerator. Okay?

- Don

On Feb 16, 2009, at 2:12 PM, P T Withington wrote:

I'm not real happy with this solution. It seems that the swf9 back- end is creating an illegal parse tree (replacing a variable declaration with an empty expression) and that you are then papering over that in the parse tree printer. I would rather see you fix the swf9 back-end to remove the variable declaration altogether from the parse tree.

If that is not possible, can we at least have a comment in the code saying _why_ the parse tree printer has to deal with empty declarations?

On 2009-02-16, at 13:17EST, Donald Anderson wrote:

Change 20090216-dda-V by [email protected] on 2009-02-16 12:11:27 EST
  in /Users/dda/laszlo/src/svn/openlaszlo/trunk-b
  for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: SWF9: Fix comma separated global declaration

New Features:

Bugs Fixed: [LPP-7746] SWF9: comma separated global var declarations don't compile

Technical Reviewer: ptw (pending)
QA Reviewer: (pending)
Doc Reviewer: (pending)

Documentation:

Release Notes:

Details:
In SWF9, a variable statement that appears outside a method (that is, a global var declaration), is dismantled as the variable declaration appears in a separate file named for the global variable,
  e.g. var foo, bar ==> foo.as, bar.as
The original variable expressions are left behind as empty expressions. This changeset fixes the unparser so it knows to drop empty expressions in a variable declaration list. This was not noticed testing with single variables 'var foo', as the unparser generated a comma separated list of expressions - one blank expression, comma separated, still yielded a blank result.

Tests:
The test case from the JIRA now compiles. Same test case with mix of initialized and uninitialized vars compiles. The usual regression tests: smokecheck, lzpix, weather on swf9,swf8,dhtml

Files:
M      WEB-INF/lps/server/src/org/openlaszlo/sc/ParseTreePrinter.java

Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20090216-dda-V.tar



--

Don Anderson
Java/C/C++, Berkeley DB, systems consultant

voice: 617-306-2057
email: [email protected]
www: http://www.ddanderson.com








--

Don Anderson
Java/C/C++, Berkeley DB, systems consultant

voice: 617-306-2057
email: [email protected]
www: http://www.ddanderson.com





Reply via email to