[Laszlo-dev] For Review: Change 20080716-dda-V Summary: Fix remapLocals and withThis in SWF9
Donald Anderson
dda at ddanderson.com
Wed Jul 16 20:32:44 PDT 2008
Tucker - There's still something wrong with this.
I saw that Max had lzpix running on SWF9 and I tried it with this
change,
and it's not really functional. I'll try to figure out what's going
on tomorrow.
On Jul 16, 2008, at 11:10 PM, Donald Anderson wrote:
> Change 20080716-dda-V by dda at 97.sub-75-192-214.myvzw.com on
> 2008-07-16 21:26:41 EDT
> in /Users/dda/laszlo/src/svn/openlaszlo/trunk-a
> for http://svn.openlaszlo.org/openlaszlo/trunk
>
> Summary: Fix remapLocals and withThis in SWF9
>
> New Features:
>
> Bugs Fixed: LPP-6637
>
> Technical Reviewer: ptw (pending)
> QA Reviewer: (pending)
> Doc Reviewer: (pending)
>
> Documentation:
>
> Release Notes:
>
> Details:
> The SWF9 code generator has had a long standing bug that prevented
> the withThis pragma from working. This change set fixes the
> fundamental bug and
> other smaller problems in order to allow withThis to function
> properly.
> withThis is necessary for the new approach to handling states.
>
> The code that disables the withThis from being operation has
> been removed.
>
> The bug was an extra visit of the function - the second visit
> sees some
> artifacts left by the first visit, and gets confused. This has
> been fixed.
>
> Mixins in SWF9 are handled by keeping the AST for the mixin and
> visiting
> it whenever it is mixed in. The visited AST was not a complete
> copy,
> only a shallow copy, and this exposed the same sort of extra
> visit bug.
> A deep copy function for SimpleNode (the basis for AST) was added.
> This required minor changes to all existing handcoded AST
> classes to
> support deep copy. Fortunately there are not many of these
> classes,
> but if we add any, we'll need to implement the deepCopy()
> function.
>
> Remapped formal arguments, (e.g. function foo(a, b) => function
> foo($1, $2)),
> must retain any ellipsis from the original declaration (e.g.
> function foo(a, ...b) => function foo($1, ...$2))
> I am also retaining type info, (e.g. function foo(a:*, b) =>
> function foo($1:*, $2))
>
> Tests:
> Passes test case given by ptw in LPP-6637.
> Builds LFC without errors with withThis code enabled.
> Regression tests: smokecheck for swf8/dhtml.
> Unfortunately SWF9 hello seems broken (not due to this change),
> so unable to test that.
>
> Files:
> M WEB-INF/lps/server/src/org/openlaszlo/sc/
> JavascriptGenerator.java
> M WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java
> M WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java
> M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/
> SimpleNode.java
> M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/
> ASTModifiedDefinition.java
> M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/
> ASTOperator.java
> M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/
> ASTLiteral.java
> M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/
> ASTFormalParameterList.java
> M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/
> ASTIdentifier.java
> M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/
> ASTPassthroughDirective.java
>
> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20080716-dda-V.tar
>
>
>
> --
>
> Don Anderson
> Java/C/C++, Berkeley DB, systems consultant
>
> voice: 617-547-7881
> email: dda at ddanderson.com
> www: http://www.ddanderson.com
>
>
>
--
Don Anderson
Java/C/C++, Berkeley DB, systems consultant
voice: 617-547-7881
email: dda at ddanderson.com
www: http://www.ddanderson.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.openlaszlo.org/pipermail/laszlo-dev/attachments/20080716/660c5f24/attachment.html
More information about the Laszlo-dev
mailing list