The instructions of a while test node cannot just be pushed to the previous block. This creates a new block for the test node and then during code gen converts the statements pushed to the "value block" into expressions.