Open
Description
Expected Behavior
Given this script:
The compiler should be able to conclude that first
, second
, nth
, i
will always be numbers and optimize accordingly:
b1.value = 0;
b2.value = 1;
b3.value = 1;
b4.value = 2;
while (b4.value > p0) {
b3.value = b1.value + b2.value;
b1.value = b2.value;
b2.value = b3.value;
b4.value = b4.value + 1;
}
b0.value = b3.value;
Actual Behavior
It's not very smart. The script is compiled as:
b1.value = 0;
b2.value = 1;
b3.value = 1;
b4.value = 2;
while (!compareGreaterThan(b4.value, p0)) {
b3.value = ((+b1.value || 0) + (+b2.value || 0));
b1.value = b2.value;
b2.value = b3.value;
b4.value = ((+b4.value || 0) + 1);
}