Reported as bug:
http://www.openlaszlo.org/jira/browse/LPP-2197

I was using the swf7 default and saw the bug in Flash Player 7 not in 
Flash Player 8
No change in behavior for swf6.  I didn't test swf8.

Sarah

On Thu, Jun 15, 2006 at  8:21 PM, P T Withington wrote:

> Closures are supposed to work.  I believe they work in AS as of  swf6. 
> But our compiler plays several tricks a) to implement implicit  this, 
> b) to work around a Flash but in function contexts, and c) to 
> implement our 'implicit this' rules.  It is entirely possible you 
> have unearthed a bug here.  Please report.
>
> Could you clarify what target you are compiling for?  Always swf7 but 
> running on the 7 vs. 8 player?  Or are you compiling for different 
> targets?
>
> As to the comment that you cannot close over `this`, that is a 
> canard.  `this` is an implicitly defined local, defined automatically 
> in every function (just as `arguments` is).  So it is not that you 
> cannot close over it, it's just that every function will 
> automatically shadow its parent's `this` and `arguments`.  If an 
> inner function needs to refer to either of those bindings in its 
> parent, the parent needs to create an alias that will not be shadowed.
>
> On 2006-06-15, at 19:57 EDT, Sarah Allen wrote:
>
>>
>> So, that differed from Flash Player 7 to Flash Player 8?
>> Is there any way we could smooth out that difference in the compiler?
>>
>> On Thu, Jun 15, 2006 at  4:45 PM, Adam Wolff wrote:
>>
>>> it's the behavior of closures. to make this compatible, you could 
>>> add
>>> a
>>> property to the function, and then retrive it using arguments.callee
>>>
>>>        this._nc.onStatus = function(info) {
>>>            _root.Debug.write('onStatus ', info.code);
>>>            _root.Debug.write('this  ', arguments.callee.originalthis
>>> );
>>>        }
>>>
>>>        this._nc.onStatus.originalthis = this;
>>>
>>>
>>> A
>>>
>>> On Jun 15, Sarah Allen wrote:
>>>
>>>>
>>>> You are so right.  It's a Flash Player 7 vs. Flash Player 8 issue,
>>>> consistent
>>>> across Mac & Windows.
>>>> I'm still puzzled though.  The NetConnection object was  introduced 
>>>> in
>>>> Flash
>>>> Player 6.
>>>>
>>>>
>>>> On Thu, Jun 15, 2006 at  3:28 PM, Adam Wolff wrote:
>>>>
>>>>> same flash player version?
>>>>>
>>>>> On Jun 15, Sarah Allen wrote:
>>>>>
>>>>>>
>>>>>> I have some code that I just started testing on other machines
>>>>>> today, and
>>>>>> unexpectedly, I started seeing different (broken) behavior on a
>>>>>> Mac. I've
>>>>>> isolated it down to the following test case:
>>>>>>
>>>>>> <canvas>
>>>>>> <node>
>>>>>>       <!--- a reference to the Flash NetConnection object
>>>>>>          @keywords private -->
>>>>>>      <attribute name="_nc" value="null" />
>>>>>>
>>>>>>      <method name="init">
>>>>>>          super.init();
>>>>>>          this._nc = new NetConnection();
>>>>>>
>>>>>>          var ok = this._nc.connect('rtmp://localhost/test');
>>>>>>          var t = this;
>>>>>>          this._nc.onStatus = function(info) {
>>>>>>              _root.Debug.write('onStatus ', info.code);
>>>>>>              _root.Debug.write('this (t) ', t);   // this is line
>>>>>> 17
>>>>>>          }
>>>>>>      </method>
>>>>>> </node>
>>>>>> </canvas>
>>>>>>
>>>>>> which generates the following:
>>>>>> WARNING: test.lzx:17: reference to undefined variable 't'
>>>>>> this (t) undefined
>>>>>>
>>>>>> Confused again,
>>>>>> Sarah
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>

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

Reply via email to