Forget to mention:
There is now a funny effect in swf9/swf10 because of the with-block. You 
can evaluate the expression 'lzx> foo = 42' even if 'foo' is not a 
defined variable, but if you later want to retrieve the value of 'foo' 
by evaluating 'lzx> foo', the runtime reports a ReferenceError. Without 
the with-block, you'd get a static compiler error because 'foo' is not 
defined. But as the with-block forces dynamic look-up, the runtime needs 
perform this check, but apparently fails for assignment expressions, 
only dereferencing gives the ReferenceError. I'd consider this as a bug...


On 9/28/2009 3:28 PM, André Bargull wrote:
> Change 20090928-bargull-YnE by barg...@dell--p4--2-53 on 2009-09-28 
> 12:39:38
> in /home/Admin/src/svn/openlaszlo/trunk
> for http://svn.openlaszlo.org/openlaszlo/trunk
>
> Summary: update eval-script compiler to use Debug.environment
>
> New Features: LPP-8519 (wrap evalscript in 
> "with(Debug.environment){...}")
>
> Bugs Fixed:
>
> Technical Reviewer: ptw
> QA Reviewer: hqm
> Doc Reviewer: (pending)
>
> Documentation:
>
> Release Notes:
>
> Details:
> Compiler.java:
> Added "compileEvalScript()" to avoid duplicate code for swf8 and AS3 
> runtimes. Every eval-script is now surrounded with 
> "with(Debug.environment) {...}" in order to allow eval-expressions to 
> access properties from the Debugger environment.
> For swf8 compilation, the catch block only caught 
> "sc.parser.ParseException", this is now just "Exception" (it was 
> already just "Exception" for swf9), so every possible exception is 
> caught (e.g. otherwise an unterminated multi-line comment throws the 
> compiler out of whack).
> Apparently it's no longer necessary to prepend "_level0" before 
> references to "Debug" in swf8, so I removed it. I've also added 
> try-catch for swf8 like it's already done in swf9, because otherwise 
> throwing an Error leads a timeout of the eval-request (see 1st comment 
> on LPP-8519). And I wonder how remote debug requests did work in the 
> past, because there was a stray semicolon in the code (l.493). And 
> made sure that Debug.sockWriteAsXML() is always called for remote 
> debug request, so the Debug.inEvalRequest flag gets updated.
> Also removed the excessive import list for swf9, because it has no use 
> since the script isn't executed in "DebugExec" but in "DebugEvaluate".
> LzDebug.as (swf8):
> - removed override of "displayResult()", no longer necessary
> LzDebug.as (swf9):
> - removed override of "displayResult()", no longer necessary
> - cleaned up imports
> - removed '_', '__' and '___', no longer global
> - removed "TODO" from comment in "IDForObject()"
> LzMemory.lzs:
> - updated to use "Debug.environment" instead of "global" for '_', '__' 
> and '___'
> LzCanvas.lzs:
> - added "swf10" to the supported runtimes comment
>
>
>
> Tests:
> try eval'ing expression, statements and erroneous inputs in swf8, 
> swf9, swf10
>
> Files:
> M WEB-INF/lps/lfc/debugger/platform/swf/LzDebug.as
> M WEB-INF/lps/lfc/debugger/platform/swf9/LzDebug.as
> M WEB-INF/lps/lfc/debugger/LzMemory.lzs
> M WEB-INF/lps/lfc/views/LaszloCanvas.lzs
> M WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java
>
> Changeset: 
> http://svn.openlaszlo.org/openlaszlo/patches/20090928-bargull-YnE.tar
>
>
_______________________________________________
Laszlo-reviews mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews

Reply via email to