HaxeFoundation / HaxeFoundation/haxe

[analyzer] weird/unneeded array wrapping for captured vars

Open
#4,663 7 comments 0 reactions 1 assignee Claimed by @RealyUniqueName View on GitHub
feature-analyzer
Dominant language
Haxe
Stars
6.9k
Forks
715
Avg merge
2d 2h
Merged PRs (30d)
11

Description

``` haxe
class Main {
static function main() {
function g(p) trace(p);
for (i in 0...3)
g.bind(i);
}
}
```

generates WITH `-D analyzer` (note `f` and `p1` being wrapped)

``` js
Main.main = function() {
var g = function(p) {
console.log(p);
};
var _g = 0;
while(_g < 3) {
var i = _g++;
var f = [g];
var p1 = [i];
(function(p2,f1) {
return function() {
f1[0](p2[0]);
};
})(p1,f);
}
};
```

while WITHOUT `-D analyzer` it's slightly better:

``` js
Main.main = function() {
var g = function(p) {
console.log(p);
};
var _g = 0;
while(_g < 3) {
var i = _g++;
(function(f,p1) {
return function() {
f(p1);
};
})(g,i);
}
};
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.