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: > - getname = "arguments.callee._dbg_name"; > + getname = "arguments.callee['" + Function.FUNCTION_NAME + "']"; Why don't you use: > getname = "arguments.callee." + Function.FUNCTION_NAME;
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
