Skip to content

Cascades in one closure get same varname #190

@akx

Description

@akx
$('#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 :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions