for(...; x; ...) if (y) break; → for(...; x&&!y; ...); similarly for `while` and some combinations (i.e. the `break` appears in the `else` clause, etc.)
124 lines
2.1 KiB
JavaScript
124 lines
2.1 KiB
JavaScript
while_becomes_for: {
|
|
options = { loops: true };
|
|
input: {
|
|
while (foo()) bar();
|
|
}
|
|
expect: {
|
|
for (; foo(); ) bar();
|
|
}
|
|
}
|
|
|
|
drop_if_break_1: {
|
|
options = { loops: true };
|
|
input: {
|
|
for (;;)
|
|
if (foo()) break;
|
|
}
|
|
expect: {
|
|
for (; !foo(););
|
|
}
|
|
}
|
|
|
|
drop_if_break_2: {
|
|
options = { loops: true };
|
|
input: {
|
|
for (;bar();)
|
|
if (foo()) break;
|
|
}
|
|
expect: {
|
|
for (; bar() && !foo(););
|
|
}
|
|
}
|
|
|
|
drop_if_break_3: {
|
|
options = { loops: true };
|
|
input: {
|
|
for (;bar();) {
|
|
if (foo()) break;
|
|
stuff1();
|
|
stuff2();
|
|
}
|
|
}
|
|
expect: {
|
|
for (; bar() && !foo();) {
|
|
stuff1();
|
|
stuff2();
|
|
}
|
|
}
|
|
}
|
|
|
|
drop_if_break_4: {
|
|
options = { loops: true, sequences: true };
|
|
input: {
|
|
for (;bar();) {
|
|
x();
|
|
y();
|
|
if (foo()) break;
|
|
z();
|
|
k();
|
|
}
|
|
}
|
|
expect: {
|
|
for (; bar() && (x(), y(), !foo());) z(), k();
|
|
}
|
|
}
|
|
|
|
drop_if_else_break_1: {
|
|
options = { loops: true };
|
|
input: {
|
|
for (;;) if (foo()) bar(); else break;
|
|
}
|
|
expect: {
|
|
for (; foo(); ) bar();
|
|
}
|
|
}
|
|
|
|
drop_if_else_break_2: {
|
|
options = { loops: true };
|
|
input: {
|
|
for (;bar();) {
|
|
if (foo()) baz();
|
|
else break;
|
|
}
|
|
}
|
|
expect: {
|
|
for (; bar() && foo();) baz();
|
|
}
|
|
}
|
|
|
|
drop_if_else_break_3: {
|
|
options = { loops: true };
|
|
input: {
|
|
for (;bar();) {
|
|
if (foo()) baz();
|
|
else break;
|
|
stuff1();
|
|
stuff2();
|
|
}
|
|
}
|
|
expect: {
|
|
for (; bar() && foo();) {
|
|
baz();
|
|
stuff1();
|
|
stuff2();
|
|
}
|
|
}
|
|
}
|
|
|
|
drop_if_else_break_4: {
|
|
options = { loops: true, sequences: true };
|
|
input: {
|
|
for (;bar();) {
|
|
x();
|
|
y();
|
|
if (foo()) baz();
|
|
else break;
|
|
z();
|
|
k();
|
|
}
|
|
}
|
|
expect: {
|
|
for (; bar() && (x(), y(), foo());) baz(), z(), k();
|
|
}
|
|
}
|