[Laszlo-dev] Waiting for your review of Change 20071018-ptw-X Summary: Be more careful detecting DOM nodes

P T Withington ptw at pobox.com
Tue Oct 23 06:39:28 PDT 2007


Good catch.  This is because SWF does not implement `in`, and the run- 
time emulation will trip up on undefined properties.

I was trying to avoid .hasOwnProperty because it blows up in some  
browsers on native objects (e.g., the DOM div behind a DHTML  
sprite).  I worked around it by putting the .hasOwnProperty test  
inside ignoring Errors.

I assume you approve the rest of the change?

On 2007-10-22, at 17:33 EDT, André Bargull wrote:

> not approved.
>
> "Debug.objectOwnProperties(..)" [LzDebug.lzs]:
> You should stay with "hasOwnProperty(..)" instead of testing "(key  
> in proto)", otherwise you'll get a different output in swf compared  
> to dhtml for "undefined" values.
>
> testcase:
> [code]
> <script>
>    class test01 extends Instance {
>        var attr01 = void(0);
>    }
>      Debug.write(new test01());
> </script>
> [/code]
>
> P T Withington wrote:
>> Hi André, didn't know if you might have missed this, or if you  
>> don't have time, I can ask someone else to review.  Thanks!
>>
>> Begin forwarded message:
>>
>>> From: P T Withington <ptw at pobox.com>
>>> Date: 18 October 2007 19:28:41 EDT
>>> To: André Bargull <a.bargull at intensis.de>, Steve O'Sullivan  
>>> <sosullivan at laszlosystems.com>
>>> Cc: laszlo-dev at openlaszlo.org
>>> Subject: For Review: Change 20071018-ptw-X Summary: Be more  
>>> careful detecting DOM nodes
>>>
>>> Change 20071018-ptw-X by ptw at dueling-banjos.local on 2007-10-18  
>>> 18:34:57 EDT
>>>     in /Users/ptw/OpenLaszlo/ringding-2
>>>     for http://svn.openlaszlo.org/openlaszlo/trunk
>>>
>>> Summary: Be more careful detecting DOM nodes
>>>
>>> Bugs Fixed:
>>> LPP-4739 'Printing LzDataText in Debugger is erronous for "%w"'
>>>
>>> Technical Reviewer: a.bargull at intensis.de (pending)
>>> QA Reviewer: sosullivan at laszlosystems.com (pending)
>>>
>>> Details:
>>>     LzDebug.lzs: objectOwnProperties: Be more careful detecting
>>>     prototypes, simplify test for 'own' properties to be any  
>>> property
>>>     that is different from that same property in the prototype  
>>> (or all
>>>     properties, if there is no prototype).  Take care poking at the
>>>     prototype, which may be a runtime native object.
>>>
>>>     LzDebug.js:  Tighten up the test for DOM nodes so that we don't
>>>     mistake an LZ node for one.
>>>
>>>     LzRuntime:  Eliminate old debugging output that was there  
>>> just to
>>>     verify source warnings were working.  Add Debug.ignoringErrors
>>>     which can be used on any platform to evaluate a closure without
>>>     recursing into the debugger.
>>>
>>> Tests:
>>>     1. Verified that LzDataText is printed as an LZX object (in SWF,
>>>     Firefox, Safari, Opera):
>>>
>>>     lzx> Debug.write("%#w\n", new LzDataText('test'))
>>>     «LzDataText(0)#71| test»
>>>
>>>     2. Verified that DOM nodes can still be inspected (does not  
>>> apply to SWF):
>>>
>>>     lzx> Debug.inspect(canvas.sprite.__LZdiv)
>>>     «HTMLDivElement#22| #document/html/body/div#lzappContainer/ 
>>> div.lzcanvasdiv[1]» {
>>>     align: ''
>>>     attributes: [object NamedNodeMap]
>>>     ...
>>>     tagName: 'DIV'
>>>     textContent: ''
>>>     title: ''
>>>     }
>>>     #document/html/body/div#lzappContainer/div.lzcanvasdiv[1]
>>>
>>>     3. Verified that movieclips can still be inspected (only  
>>> applies to
>>>     SWF):
>>>
>>>     lzx> Debug.inspect(_level0.spriteroot)
>>>     «MovieClip#160| _level0.spriteroot» {
>>>     _currentframe: 0
>>>     _opacity: «undefined»
>>>     ...
>>>     _visible: true
>>>     _x: 0
>>>     _xscale: 100
>>>     _y: 0
>>>     _yscale: 100
>>>     }«MovieClip#160| _level0.spriteroot»
>>>     lzx>
>>>
>>>     4. Ran smokecheck in swf and dhtml on Firefox
>>>
>>> Files:
>>> M      WEB-INF/lps/lfc/debugger/LzDebug.lzs
>>> M      WEB-INF/lps/lfc/debugger/platform/dhtml/LzDebug.js
>>> M      WEB-INF/lps/lfc/compiler/LzRuntime.lzs
>>>
>>>
>>> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20071018- 
>>> ptw-X.tar
>>
>>




More information about the Laszlo-dev mailing list