[Laszlo-dev] For Review: Change 20090415-ptw-w Summary: Improve catch-errors and backtrace efficiency
André Bargull
andre.bargull at udo.edu
Thu Apr 16 02:01:09 PDT 2009
Why do you return the empty string if returnType is "String"? Strings
can be `null`. And you've missed to include "int" and "uint" (both are
coerced to 0 in AS3).
I'd say the return values should be (for best cross-runtime compliance):
void -> no return
int, uint, Number -> 0
Boolean -> false
all other -> null
<canvas debug="true">
<script when="immediate"><![CDATA[
public class Foo {
// void must not have return value in AS3
// public function f_void () :void {return null;}
// coerced to 0 in AS3
public function f_int () :int {return null;}
// coerced to 0 in AS3
public function f_uint () :uint {return null;}
// coerced to 0 in AS3
public function f_Number () :Number {return null;}
// coerced to false in AS3
public function f_Boolean () :Boolean {return null;}
// returns null
public function f_String () :String {return null;}
// returns null
public function f_Object () :Object {return null;}
// returns null
public function f_Date () :Date {return null;}
}
// make a reference to class so it'll be compiled...
Foo;
]]></script>
</canvas>
On 4/16/2009 1:54 AM, P T Withington wrote:
> Change 20090415-ptw-w by ptw at dueling-banjos.home on 2009-04-15
> 19:34:51 EDT
> in /Users/ptw/OpenLaszlo/trunk-3
> for http://svn.openlaszlo.org/openlaszlo/trunk
>
> Summary: Improve catch-errors and backtrace efficiency
>
> Bugs Fixed: LPP-8008 Optimize catcherrors
>
> Technical Reviewer: a.bargull at intensis.de, hminksy (pending)
> QA Reviewer: dda at ddanderson.com (pending)
>
> Details:
> LzMessage: Correct stack skip for $reportSourceWarning (which was
> one too many).
>
> JavascriptGenerator: Eliminate the need for the inner closure to
> catch errors. Merge catching of errors with the backtrace
> maintainer.
>
> - noteCallSite should only emit line numbers for positive line
> numbers (generated nodes sometimes have -1 as a line number).
>
> - predecls no longer needed, but need postfix to insert a default
> return value to keep the flex compiler happy.
>
> - Only enable catching of errors if variable analysis shows that
> there are dereferences (calls, or property references) that
> could err
>
> - If generating for swf9 and catching errors, insert a 'null'
> return at the end of the function that matches the return type
> of the function to mimic as2.
>
> - Eliminate the inner closure for tryAll, we can just wrap the
> body directly in a try/catch and eliminate the extra function
> call overhead.
>
> VariableAnalyzer: Make it possible to call computeReferences more
> than once (so we can analyze the body before and after the try
> wrapper is added). Also, calculate a new property, dereferenced,
> that tells if any calls or property references occured.
>
> Tests:
> Turned on lps.properties:compiler.catcherrors, [all demos,
> smokecheck] x [dhtml, swf9]
>
> Files:
> M WEB-INF/lps/lfc/debugger/LzMessage.lzs
> M WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java
> M WEB-INF/lps/server/src/org/openlaszlo/sc/VariableAnalyzer.java
>
>
> Changeset:
> http://svn.openlaszlo.org/openlaszlo/patches/20090415-ptw-w.tar
>
More information about the Laszlo-dev
mailing list