I haven't checked, but would the compiler really catch this technique?

LzView.prototype.__LZcheckwidth = function () { ... }

then later, in a separate method:

        this.__LZcheckwidth = null;

And then later:

        __LZcheckwidth();

We're masking out a method declared in the prototype by putting a  
null attribute value in front of it. But the method has been properly  
declared.

jim

On Apr 12, 2006, at 9:10 AM, P T Withington wrote:

> I'm working on making the translator work in debug mode.  My hope  
> is to make these kinds of errors easier to find and fix in dhtml.   
> You should already be able to do that in swf though, if you just  
> turn on warnings in the piece of the LFC you are working on.  Just put
>
> {
>           #pragma 'warnUndefinedReferences=true'
>  ...
>
> }
>
> around the code you are working on.  Eventually we want to be able  
> to do this for the whole LFC.
>
> On 2006-04-12, at 11:45 EDT, Jim Grandy wrote:
>
>> We don't just use this technique here. In LaszloView.as, we clear  
>> __LZcheckwidth and __LZcheckheight to null in certain situations,  
>> and then call them without checking for null.
>>
>> On Apr 12, 2006, at 5:50 AM, Henry Minsky wrote:
>>
>>> OK will do.
>>>
>>>
>>> On 4/12/06, P T Withington <[EMAIL PROTECTED]> wrote:
>>> This looks like a 'stupid AS trick' to me.  Don't try this at home.
>>>
>>> I would just change the loop to test d.enabled, and change
>>> LzDelegate.disable to just set the flag and not muck with the  
>>> innards
>>> of the delegate.
>>>
>>> [This is why nullable types suck.]
>>>
>>> On 2006-04-11, at 11:50 EDT, Henry Minsky wrote:
>>>
>>> > There is a method for disabling a delegate which is currently
>>> > implemented as
>>> >
>>> > LzDelegate.prototype.disable = function (){
>>> >     if ( !this.enabled ) return;
>>> >     this.enabled = false;
>>> >     this.disc = this.c;
>>> >     this.c = null;
>>> > }
>>> >
>>> > This has the unfortunate side effect of causing an error in DHTML
>>> > runtime if
>>> > you then try to call
>>> > this delegate, because the inner loop of LzEvent.sendEvent does
>>> >
>>> >     for (var i = dll; i >= 0; i--){
>>> >         d = this.delegateList[ i ];
>>> >         //pointer may be bad due to deletions
>>> >         if ( d && ! d.event_called){
>>> >             d.event_called = true; //this delegate has been called
>>> >             calledDelegates.push( d );
>>> >             // d.execute( sd ); inlined
>>> >             // We don't worry about deleted contexts here, because
>>> >             // we assume that delegates registered on events are
>>> >             // properly managed
>>> >             d.c[d.f]( sd );
>>> >         }
>>> >     }
>>> >
>>> > And d.c will be null, causing an error in 'real' javascript.  
>>> Should
>>> > I put a
>>> > check here for the disabled flag,
>>> > or should we bind d.c in LzDelegate to some inert event while  
>>> it is
>>> > disabled?
>>> >
>>> >
>>> >
>>> > --
>>> > Henry Minsky
>>> > Software Architect
>>> > [EMAIL PROTECTED]
>>> > _______________________________________________
>>> > 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
>>
>

_______________________________________________
Laszlo-dev mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-dev

Reply via email to