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
