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 _______________________________________________ Laszlo-reviews mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews
