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