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]
>> 
>> 

Reply via email to