@Nembence's project ( https://scratch.mit.edu/projects/1364404688/ ) showed that the repeat block is re-calculating its condition instead of caching it, but I wasn't fully convinced as perhaps scratch is detecting that it needs to recalculate it. I've come up with an experiment that will test this: If it caches then B should be >19x bigger than A, else we can reject the null hypothesis and the repeat block is recalculating. The result is repeat block indeed recalculates (on vanilla scratch) which has ramifications for how we micro-optimize. Please see inside and use SA debugger timing, with "Stop previous timing on start timing" if you want to test it yourself.