HaxeFoundation / HaxeFoundation/haxe
[analyzer] weird/unneeded array wrapping for captured vars
- 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
Assessment
This issue has not been assessed yet.