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

André Bargull a.bargull at intensis.de
Tue Oct 23 09:56:29 PDT 2007


Yes, otherwise approved!

P T Withington wrote:
> 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