You can try the While script out for yourself. This was added in 2.0 pre-alpha, and still exists somewhat.
Scratch converts scripts from 1.3 to current using only a protocol recognition system. For example, ('randomness %b' #c #doIf) = an If Then block. But without a recognized protocol when converting, Scratch displays the block as "undefined." Although when I used the protocol doWhile, ('While %b' #c #doWhile), the block doesn't appear as "undefined," it instead appears as "While." This means that the Scratch website recognizes a doWhile protocol. From this, I can draw the conclusion that Scratch has a hidden "While" script protocol located somewhere in its directory. This script doesn't work properly. IDK why. I had this idea as a result of gathering a random while script that possesses the exact same functionality from a game back in 2014.