This appears to work well.  Approved, with André's suggestion about 
compiler/Class.lzs applied of course...

P T Withington wrote:
> Thanks for the feedback.
> 
> On 2009-09-02, at 16:13, André Bargull wrote:
> 
>> I haven't tested your change, but I wonder how compiler/Class.lzs can 
>> access Debug.FUNCTION_NAME before 
>> compiler/LzBootstrapDebugService.lzs, which defines these constants, 
>> is loaded? And why did you use the bracket notation also in the Java 
>> classes, e.g. here:
> 
> Oops.  I had these in the pre-bootstrap debugger too (in LzRuntime), but 
> I seem to have backed that out thinking it was unnecessary.  Clearly 
> not.  It seems all those references are protected by an `if ($profile)` 
> clause.  Guess I'll put the copies back in LzRuntime.
> 
>>> -      getname = "arguments.callee._dbg_name";
>>> +      getname = "arguments.callee['" + Function.FUNCTION_NAME + "']";
>> Why don't you use:
>>> getname = "arguments.callee." +  Function.FUNCTION_NAME;
> 
> The reason I did that is in case the actual name that gets picked as a 
> standard ends up not being a valid symbol or something.  I was just 
> being conservative.  (I'm pretty sure all script engines compile `['']` 
> just as efficiently as `.`.
> 
>> On 9/2/2009 9:28 PM, P T Withington wrote:
>>> Change 20090902-ptw-Q by [email protected] on 2009-09-02 13:13:42 EDT
>>>     in /Users/ptw/OpenLaszlo/trunk-2
>>>     for http://svn.openlaszlo.org/openlaszlo/trunk
>>>
>>> Summary: Don't emit named function expressions in Javascript because  
>>> IE is brain-dead
>>>
>>> Bugs Fixed: LPP-8431 IE7 DHTML getting global properties clobbered  
>>> (partial)
>>>
>>> Technical Reviewer: hminsky (pending)
>>> QA Reviewer: max (pending)
>>>
>>> Details:
>>>     Because IE is brain-dead, and we don't want to have to generate
>>>     different code for different browsers, we don't emit named
>>>     function expressions any more.  To partially recoup the loss of
>>>     Javascript debuggability, I made the property that we store debug
>>>     function names on be a configurable constant and set it to the
>>>     name that the Firefox and Webkit debuggers use (displayName).
>>>     This means that at least those two browsers should continue to
>>>     give useful backtraces and profile output.
>>>
>>>     This change means we no longer need the 'simple' versions of the
>>>     debug LFC, so I have removed them and the supporting machinery and
>>>     builds.
>>>
>>> Tests:
>>>     Inspection of compiler javascript output.  Can right-click on the
>>>     canvas in DHTML without an error.  Debugger still can print
>>>     method names.  Webkit profiler knows method names (in debug mode).
>>>
>>> Files:
>>> M      WEB-INF/lps/lfc/services/LzCSSStyle.lzs
>>> M      WEB-INF/lps/lfc/debugger/LzInit.lzs
>>> M      WEB-INF/lps/lfc/debugger/LzMessage.lzs
>>> M      WEB-INF/lps/lfc/debugger/LzDebug.lzs
>>> M      WEB-INF/lps/lfc/debugger/platform/swf/LzDebug.as
>>> M      WEB-INF/lps/lfc/debugger/platform/dhtml/LzDebug.js
>>> M      WEB-INF/lps/lfc/debugger/LzBacktrace.lzs
>>> M      WEB-INF/lps/lfc/core/LzEventable.lzs
>>> M      WEB-INF/lps/lfc/build.xml
>>> M      WEB-INF/lps/lfc/compiler/LzRuntime.lzs
>>> M      WEB-INF/lps/lfc/compiler/LzBootstrapDebugService.lzs
>>> M      WEB-INF/lps/lfc/compiler/Class.lzs
>>> 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/src/org/openlaszlo/sc/CodeGenerator.java
>>> M      WEB-INF/lps/server/src/org/openlaszlo/sc/Function.java
>>> M      WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java
>>> M      build.properties
>>> M      lps/includes/source/embednew.js
>>>
>>> Changeset: 
>>> http://svn.openlaszlo.org/openlaszlo/patches/20090902-ptw-Q.tar
> 

-- 
Regards,
Max Carlson
OpenLaszlo.org

_______________________________________________
Laszlo-reviews mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews

Reply via email to