Change 20070828-ptw-t by [EMAIL PROTECTED] on 2007-08-28
16:56:02 EDT
in /Users/ptw/OpenLaszlo/wafflecone-2
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Implement Debug.messageLevel, downgrade deprecated warnings
to info, heuristicate file/line info in Debug messages
Bugs Fixed:
LPP-4597 'turn debugger warnings for non-fatal issues into INFO'
LPP-4549 'runtime warnings should include file references, line
#s' (partial)
LPP-4478 'Richedittext: WARNING: __LZgetNodes: p is null in
LzDatapointer' (partial)
LPP-4450 'improve LFC warnings for xpath query on empty
datapath' (partial)
LPP-4551 'debugger warnings emitted from a private LFC
function' (partial)
LPP-4592 'basedatacombobox-based components with selectfirst="false"
emits Debugger warnings' (partial)
LPP-4464 'setVisible(null) warning, but it is never called' (partial)
Technical Reviewer: max (pending)
QA Reviewer: enw (pending)
Documentation:
In debug mode the compiler annotates every LzNode object with the
file/line where the object was created. If a node object is one
of the arguments to a Debug message, the debugger will use the
node object's file/line information when printing the message to
the console. [This is obviously not as accurate as we would like,
but it at least gives the programmer a hint as to where the
problem may lie.]
Debug.messageLevel is one of (from lowest to highest) 'ALL',
'DEBUG', 'INFO', 'WARNING', 'ERROR'; defaults to 'ALL'. Setting
it to a particular level will suppress all messages of a lower
level.
All deprecation messages have been changed from 'WARNING' to
'INFO'. By setting Debug.messageLevel to 'WARNING', deprecation
messages will be suppressed.
All API warnings that are new in 4.x have been changed from
'WARNING' to 'INFO'. By setting Debug.messageLevel to 'WARNING',
deprecation messages will be suppressed.
Details:
LzSprite, LzNode, LaszloView, LzAnimatorGroup, LzDatapointer,
LzDataset, LzDatapath, Class: Change all deprecated warnings to
use Debug.deprecated, or in custom cases Debug.info.
UserClass: Refine the warning that explains why <class name="xxx">
will not be defined as a global if there is already a global value
of the same name in the underlying runtime. Change the warning to
an info message.
LzMessage: Update frames to skip to match the current
implementation of backtrace. Heuristicate file/lineno from
message arguments. Add Debug.deprecated that handles common
deprecation messages.
LzDebug, kernel.as, kernel.js: Implement Debug.messageLevel.
LzBacktrace: Add a pretty type name.
NodeModel: Annotate nodes with their creation file and line.
Tests:
swf and dhtml smokecheck.
In smokecheck, the last two warnings now say:
WARNING: regression.lzl:730: serialize: p is null in
LzDatapointer name: bad
WARNING: regression.lzl:744: setNodeAttribute: p is null in
LzDatapointer name: dp
Which indeed are the locations of the erroneous datapointers.
Files:
M WEB-INF/lps/lfc/kernel/swf/LzSprite.as
M WEB-INF/lps/lfc/debugger/LzMessage.lzs
M WEB-INF/lps/lfc/debugger/LzDebug.lzs
M WEB-INF/lps/lfc/debugger/platform/swf/kernel.as
M WEB-INF/lps/lfc/debugger/platform/dhtml/kernel.js
M WEB-INF/lps/lfc/debugger/LzBacktrace.lzs
M WEB-INF/lps/lfc/core/LzNode.lzs
M WEB-INF/lps/lfc/core/UserClass.lzs
M WEB-INF/lps/lfc/views/LaszloView.lzs
M WEB-INF/lps/lfc/controllers/LzAnimatorGroup.lzs
M WEB-INF/lps/lfc/data/LzDatapointer.lzs
M WEB-INF/lps/lfc/data/LzDataset.lzs
M WEB-INF/lps/lfc/data/LzDatapath.lzs
M WEB-INF/lps/lfc/compiler/Class.lzs
M WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java
Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20070828-ptw-
t.tar