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 <[EMAIL PROTECTED]>
Date: 18 October 2007 19:28:41 EDT
To: André Bargull <[EMAIL PROTECTED]>, Steve O'Sullivan
<[EMAIL PROTECTED]>
Cc: [email protected]
Subject: For Review: Change 20071018-ptw-X Summary: Be more careful
detecting DOM nodes
Change 20071018-ptw-X by [EMAIL PROTECTED] 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: [EMAIL PROTECTED] (pending)
QA Reviewer: [EMAIL PROTECTED] (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