Move loop initializers before loops in statements.
(statement-loopinit stmt) → new-stmt
A loop statement is turned into a block, consisting of the statements in the loop's initialization block followed by a copy of the loop but with an empty initialization block. Note that the initialization statments, the update block, and the body block are recursively transformed, as they may contain loop statements.