null. For example, many classes call events that have not been
initialized. In addition to initializing them to null, the code now
checks by,
if (this.onload)
this.onload.sendEvent (this);
Hmm, in the DHTML runtime, we had started declaring undefined events on classes
by using a new function, DeclareEvent, which would use a singleton dummy event object. But I am not sure if it's worth going back and fixing these to work that way or not.
In LaszloCanvas.js, for example, we added
DeclareEvent(LzCanvas.prototype, 'onaddsubview' );
DeclareEvent(LzCanvas.prototype, 'onremovesubview' );
The issue is that if we use this, then it costs a function call to find out
the thing is a dummy event. Tucker had talked about hacking the compiler
itself to special case sendEvent to do the null check first also. Anyone
have a clear favorite policy to deal with these undeclared events?
On 5/15/06, Philip Romanik <[EMAIL PROTECTED]> wrote:
Change 42262 by [EMAIL PROTECTED] on 2006/05/15 17:17:10 *pending*
Summary: Cleanup LFC Warnings
Bugs Fixed:
LPP-2034 Cleanup LFC Warnings
Technical Reviewer: ptw (pending)
QA Reviewer: jgrandy (pending)
Doc Reviewer: jsundman (pending)
Documentation:
I followed the instructions listed in LPP-2034 to build a runtime
that reports warnings and errors when simple.lzw is executed. Most
errors are caused by uninitialized variables or improperly testing
if a property or method is defined.
In some cases I added initial values to the object and set them to
null. For example, many classes call events that have not been
initialized. In addition to initializing them to null, the code now
checks by,
if (this.onload)
this.onload.sendEvent (this);
In other places, the 'in' operator is used to test a variable
before it is used. I only changed code that reported a warning
or error, or was similar to the code that produced a warning
or error.
Tests:
test/smoke/simple.lzx
test/smoke/delay.lzx
Affected files ...
//depot/lps-legals/WEB-INF/lps/lfc/core/Library.lzs#3 edit
//depot/lps-legals/WEB-INF/lps/lfc/core/LzClass.as#6 edit
//depot/lps-legals/WEB-INF/lps/lfc/core/LzNode.as#7 edit
//depot/lps-legals/WEB-INF/lps/lfc/core/UserClass.as#5 edit
//depot/lps-legals/WEB-INF/lps/lfc/data/LzDataElement.lzs#2 edit
//depot/lps-legals/WEB-INF/lps/lfc/data/LzDataText.lzs#2 edit
//depot/lps-legals/WEB-INF/lps/lfc/data/LzDatapath.as#2 edit
//depot/lps-legals/WEB-INF/lps/lfc/data/LzDataset.as#3 edit
//depot/lps-legals/WEB-INF/lps/lfc/data/LzDatasource.as#4 edit
//depot/lps-legals/WEB-INF/lps/lfc/data/LzHTTPDatasource.as#3 edit
//depot/lps-legals/WEB-INF/lps/lfc/data/LzLoader.as#4 edit
//depot/lps-legals/WEB-INF/lps/lfc/events/LaszloEvents.lzs#3 edit
//depot/lps-legals/WEB-INF/lps/lfc/glue/LaszloInitiator.as#3 edit
//depot/lps-legals/WEB-INF/lps/lfc/services/LzBrowser.as#2 edit
//depot/lps-legals/WEB-INF/lps/lfc/services/LzFocus.as#3 edit
//depot/lps-legals/WEB-INF/lps/lfc/services/LzFontManager.as#2 edit
//depot/lps-legals/WEB-INF/lps/lfc/services/LzHistory.as#3 edit
//depot/lps-legals/WEB-INF/lps/lfc/services/LzIdle.as#1 edit
//depot/lps-legals/WEB-INF/lps/lfc/services/LzInstantiator.as#3 edit
//depot/lps-legals/WEB-INF/lps/lfc/services/LzKeys.as#5 edit
//depot/lps-legals/WEB-INF/lps/lfc/services/LzLoadQueue.as#6 edit
//depot/lps-legals/WEB-INF/lps/lfc/services/LzModeManager.as#2 edit
//depot/lps-legals/WEB-INF/lps/lfc/services/LzTimer.as#2 edit
//depot/lps-legals/WEB-INF/lps/lfc/views/LaszloCanvas.as#5 edit
//depot/lps-legals/WEB-INF/lps/lfc/views/LaszloView.as#11 edit
_______________________________________________
Laszlo-dev mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-dev
--
Henry Minsky
Software Architect
[EMAIL PROTECTED]
_______________________________________________ Laszlo-dev mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-dev
