Files
kotlin-fork/js/js.translator/testData/js-optimizer/while-condition-folding/doWhileWithNestedContinue.optimized.js
T
Alexey Andreev 05dd039151 KT-12275 Add JS optimization that transforms the following code
```
do {
    X
    if (B) break;
} while (A)
```

to

```
do {
    X
} while (!B && A)
```

Add inversion that takes boolean expression and applies negation to it, simplifying if possible (like !!a => a).
2016-07-25 18:46:46 +03:00

45 lines
842 B
JavaScript
Vendored

var global = "";
function foo(x) {
global += x;
return x;
}
function box() {
var i = 0;
var j;
do {
++i;
global += ";";
for (j = 0; j < 2; ++j) {
if (j == 1) {
continue;
}
global += "-";
}
for (k in { a: 2, b: 3 }) {
if (k != "a") {
continue;
}
global += "@";
}
j = 0;
while (j++ < 2) {
if (j == 1) {
continue;
}
global += "$";
}
j = 0;
do {
if (j == 1) {
continue;
}
global += "#";
} while (j++ < 2);
} while (foo(i) < 3);
if (global != ";-@$##1;-@$##2;-@$##3") return "fail: " + global;
return "OK"
}