Cascades in one closure get same varname
akx opened this issue · comments
Aarni Koskela commented
$('#something')
&click !-> blah(&attr("foo"))
$('#somethingelse')
&click !-> blah(&attr("bar"))
compiles to
var x$;
x$ = $('#something');
x$.click(function(){
blah(x$.attr("foo"));
});
x$ = $('#somethingelse');
x$.click(function(){
blah(x$.attr("bar"));
});
which causes problems with the first click handler's x$
referring to the second one due to lexical scope.
I know this could be easily circumvented with let
but I still think this is counter-intuitive behavior.
Feel free to close if I'm wrong :)
Satoshi Murakami commented
You're right. Apparently it shouldn't reuse the same variable.