Use same ExecutionVisitor for loops and conditions

This avoids problems with unwritten values if an exception interrupts
the execution