Oh blast. Is something in the debugger iterating over an Array using for-in when it should only be iterating over indices?
On Nov 30, 2010, at 18:28, André Bargull <[email protected]> wrote: > Does the code alter built-in prototypes like Object.prototype or > Array.prototype? For example try to evaluate the following function in the > debugger, it will also trigger the TypeError "#1010". > > (function(){ Array.prototype.a=void 0; try { Debug.inspect({}); } finally { > delete Array.prototype.a; } })() > > > On 11/30/2010 11:01 PM, P T Withington wrote: >> Hey, I just noticed that the backtrace has a slot named 'undefined' too, and >> it has an undefined value. >> >> I wonder if it is something about the app that has made the debugger decide >> that every object has a slot named 'undefined'? >> >> LzError is not a dynamic class, so it will give an error if you try to >> access a slot that does not exist, whereas LzBacktrace is dynamic, so a >> reference to a non-existent slot will just return `undefined` [which we >> print `(void 0)`]. >> >> On 2010-11-30, at 15:52, Henry Minsky wrote: >> >>> That is an improvement, the backtrace from the error is >>> clickable/inspectable now. >>> >>> But do you have any idea what that "undefined: Error.." means when I inspect >>> the LzError object ? >>> >>> lzx> Debug.inspect(«LzError(128)| @../../foundation/restricted/D…») >>> «LzError(128)#3| @../../foundation/restricted/DefinitionLoader.lzx#137: >>> TypeError: Error #1010: A term is undefined and has no …» { >>> backtrace: «Backtrace(26)| loadRegistryFile<- getDefinitionNode<- >>> getDefinition<- handle oninit<- sendEvent<- __LZcallInit<- __LZc…» >>> file: '../../foundation/restricted/DefinitionLoader.lzx' >>> length: 128 >>> line: 137 >>> message: 'TypeError: Error #1010: A term is undefined and has no >>> properties.' >>> undefined: Error: ReferenceError: Error #… computing description >>> } >>> «LzError(128)#3| @../../foundation/restricted/DefinitionLoader.lzx#137: >>> TypeError: Error #1010: A term is undefined and has no properties.» >>> lzx> Debug.inspect(«Backtrace(26)| loadRegistryFile<- getDefini…») >>> «Backtrace(26)#5| loadRegistryFile<- getDefinitionNode<- getDefinition<- >>> handle oninit<- sendEvent<- __LZcallInit<- __LZc…» { >>> length: 26 >>> undefined: (void 0) >>> 0: sendEvent @lfc/events/LaszloEvents.lzs#627 >>> 1: checkQ @lfc/services/LzInstantiator.lzs#250 >>> 2: makeSomeViews @lfc/services/LzInstantiator.lzs#314 >>> 3: __LZinstantiationDone @lfc/views/LaszloCanvas.lzs#732 >>> 4: __LZcallInit @lfc/views/LaszloCanvas.lzs#801 >>> 5: sendEvent @lfc/events/LaszloEvents.lzs#627 >>> 6: handle oninit @ManagementCenter.lzx#256 >>> 7: startApp @ManagementCenter.lzx#145 >>> 8: $lzc$class_wcfMainWorkbench @#34 >>> 9: $lzc$class_basecomponent @#446 >>> 10: LzView @lfc/views/LaszloView.lzs#51 >>> 11: LzNode @lfc/core/LzNode.lzs#351 >>> 12: createChildren @lfc/core/LzNode.lzs#1440 >>> 13: createImmediate @lfc/services/LzInstantiator.lzs#336 >>> 14: makeSomeViews @lfc/services/LzInstantiator.lzs#314 >>> 15: __LZinstantiationDone @lfc/views/LaszloView.lzs#555 >>> 16: __LZinstantiationDone @lfc/core/LzNode.lzs#1084 >>> 17: __LZcallInit @lfc/core/LzNode.lzs#1135 >>> 18: __LZcallInit @lfc/core/LzNode.lzs#1135 >>> 19: __LZcallInit @lfc/core/LzNode.lzs#1135 >>> 20: __LZcallInit @lfc/core/LzNode.lzs#1160 >>> 21: sendEvent @lfc/events/LaszloEvents.lzs#627 >>> 22: handle oninit @ApplicationMenu.lzx#195 >>> 23: getDefinition @../../foundation/restricted/DefinitionLoader.lzx#266 >>> 24: getDefinitionNode >>> @../../foundation/restricted/DefinitionLoader.lzx#234 >>> 25: loadRegistryFile @../../foundation/restricted/DefinitionLoader.lzx#137 >>> >>> } >>> «Backtrace(26)#5| loadRegistryFile<- getDefinitionNode<- getDefinition<- >>> handle oninit<- sendEvent<- __LZcallInit<- __LZcallInit<- __LZcal…» >>> lzx> >>> >>> On Tue, Nov 30, 2010 at 3:18 PM, P T Withington<[email protected]> wrote: >>> >>>> Change ptw-20101130-MEn by [email protected] on 2010-11-30 14:08:04 EST >>>> in /Users/ptw/OpenLaszlo/trunk-3 >>>> for http://svn.openlaszlo.org/openlaszlo/trunk >>>> >>>> Summary: Be more careful in Debug.inspect >>>> >>>> Bugs Fixed: LPP-9553 Inspecting a Backtrace in SWF10 gets error when >>>> printing to debug console >>>> >>>> Technical Reviewer: [email protected] (pending) >>>> QA Reviewer: [email protected] (pending) >>>> >>>> Overview: >>>> >>>> Move the slot-dereference from inspectInternal to >>>> computeSlotDescription (which is already guarded). >>>> >>>> Tests: >>>> >>>> Henry will test against the gigantic test case he has that is to >>>> large to fit in the margins of this note. >>>> >>>> Files: >>>> M WEB-INF/lps/lfc/debugger/LzDebug.lzs >>>> >>>> Changeset: >>>> http://svn.openlaszlo.org/openlaszlo/patches/ptw-20101130-MEn.tar >>>> >>> >>> >>> -- >>> Henry Minsky >>> Software Architect >>> [email protected] >> >>
