for(var i = 1, x = -1;
i >= -1;
i -= 1, x+=1){
//print('for(): i =',i,'x =',x);
}
assert 'undefined' === typename i;
var i = 0, x = for(;;){
(i = i + 1)>3 && break i
};
assert 4 === i;
assert x === i;
x = for(i = 0;;){
scope {
catch{ (i = i + 1)>4 && break i }
}
};
assert 5 === i;
assert x === i;
assert -1 === (1-2 ||| for(;;){/* if this infinite loops then skip mode is broken*/});
assert -1 === eval 1-2 ||| for(;;){/* if this infinite loops then skip mode is broken*/};
assert false === (0 && for(;;){/* if this infinite loops then skip mode is broken*/});
assert false === eval 0 && for(;;){/* if this infinite loops then skip mode is broken*/};
for(i = 0, x = 0;
i < 3;
) ++i, x += 2;
assert 3 === i;
assert 3 === i /* make sure the previous line wasn't snarfed by the loop */;
assert 6 === x;
for(i = 0, x = 0; i < 3; ++i
) x += 2;
assert 3 === i;
assert 3 === i /* make sure the previous line wasn't snarfed by the loop */;
assert 6 === x;
for(i = 0, x = 0; i < 3; ++i );
assert 3 === i;
assert 3 === i /* make sure the previous line wasn't snarfed by the loop */;
assert 0 === x;
assert !catch{0 ? for(x = 0; x<1; ++x) 1 : 1} /* no syntax error */;
assert !catch{1 ? for(x = 0; x<1; ++x) 1 : 1} /* no syntax error */;