Yeah, the current state of the compiler is that we are checking for
specific AST patterns.  We handle the common case here for passing a
method from an implied ‘this’ pointer which is a different tree than if
you actually type “this.”.  We need a more general mechanism.

-Alex

On 7/14/15, 4:33 PM, "Josh Tynjala" <joshtynj...@gmail.com> wrote:

>That worked! I thought I had tried that. I don't usually use "this." when
>adding event listeners in ActionScript. I guess I was thinking too much
>about how it would be converted to JavaScript or something. I must have
>thought it would help the compiler. Haha!
>
>- Josh
>
>On Tue, Jul 14, 2015 at 4:11 PM, Alex Harui <aha...@adobe.com> wrote:
>
>> Bummer.
>>
>> Did you try:
>>
>>   this.addEventListener("mousedown", simpleButton_mousedownHandler);
>>
>> The “this.” might be creating a pattern that isn’t handled.  I’m sort of
>> hoping Mike will finish his mother-in-law’s bathroom and find time to
>> start in on some way to pass context so we don’t have to one-off these
>> patterns.
>>
>> -Alex
>>
>> On 7/14/15, 3:50 PM, "Josh Tynjala" <joshtynj...@gmail.com> wrote:
>>
>> >Alex,
>> >
>> >The change you made worked for the case where the function is assigned
>>to
>> >a
>> >variable, but it doesn't account for the function being passed as an
>> >argument to a function.
>> >
>> >This still doesn't work for me:
>> >
>> >this.addEventListener("mousedown", this.simpleButton_mousedownHandler);
>> >
>> >However, as a workaround, I can do this, for now:
>> >
>> >var mouseDownListener:Function = this.simpleButton_mousedownHandler;
>> >this.addEventListener("mousedown", mouseDownListener);
>> >
>> >- Josh
>> >
>> >On Sun, Jun 28, 2015 at 10:13 PM, Alex Harui <aha...@adobe.com> wrote:
>> >
>> >>
>> >>
>> >> On 6/28/15, 2:21 PM, "Michael Schmalle" <teotigraphix...@gmail.com>
>> >>wrote:
>> >>
>> >> >On Sun, Jun 28, 2015 at 5:17 PM, Josh Tynjala
>><joshtynj...@gmail.com>
>> >> >wrote:
>> >> >
>> >> >> Yes, that is correct.
>> >> >>
>> >> >> In case it wasn't obvious, event listeners are the typical use
>>case
>> >> >>where
>> >> >> you'd pass a reference to a member function somewhere else where a
>> >> >> reference needs to be saved in a variable. AS3 made this easy by
>> >> >> automatically binding member functions. JavaScript usually
>>requires
>> >>some
>> >> >> manual intervention to get event listeners to be called with the
>> >>right
>> >> >> scope.
>> >> >>
>> >> >
>> >> >Yeah the compiler does this already for anonymous functions, it
>> >>creates a
>> >> >self var pointing to 'this' and then uses self in the anonymous
>> >>function's
>> >> >body.
>> >>
>> >> Actually, that ‘self’ stuff is for AS lexical scoping.  Josh is more
>> >> interested in the use of goog.bind for function identifiers.
>>FalconJX
>> >> handles that correctly in most cases for addEventListener and other
>> >> callbacks, but I guess we don’t handle this scenario.
>> >>
>> >> I can try to take a look at it, but if you want to, search for
>> >>GOOG_BIND.
>> >>
>> >> >
>> >> >I wasn't aware of this problem though, can you create a JIRA
>>ticket? I
>> >> >probably will be the one that tackles it since I am sure Alex
>>doesn't
>> >>have
>> >> >time to do something like this and test it as well.
>> >>
>> >> Well, I can probably get it working, but I’m sure I won’t test it as
>> >>well
>> >> as you will.
>> >>
>> >> -Alex
>> >>
>> >>
>>
>>

Reply via email to