HaxeFoundation / HaxeFoundation/haxe

loop unrolling creates unnecessary variables

Open
#9,033 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Haxe
Stars
6.9k
Forks
715
Avg merge
2d 2h
Merged PRs (30d)
11

Description

just something we could probably improve in the loop unrolling filter:
```haxe
class Main {
static function main() {
for (i in [1,2,3]) {
trace(i);
}
}
}
```
currently generates:
```js
Main.main = function() {
var i = 1;
console.log("src/Main.hx:4:",i);
var i1 = 2;
console.log("src/Main.hx:4:",i1);
var i2 = 3;
console.log("src/Main.hx:4:",i2);
};
```
ideally it would generate only one variable declaration and reassign it, like this:
```js
Main.main = function() {
var i = 1;
console.log("src/Main.hx:4:",i);
i = 2;
console.log("src/Main.hx:4:",i);
i = 3;
console.log("src/Main.hx:4:",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.