def run(self, vm: VM) -> Optional[Break]: for _ in range(self._num_loops): br = self._block.run(vm) if br is not None: if br.depth == 0 and br.is_continue: vm.loop_stack().continue_loop() continue vm.loop_stack().break_loop() return br
def run(self, vm: VM) -> Optional[Break]: vm.loop_stack().start_loop() while True: if vm.loop_stack().next(): return None br = self._block.run(vm) if br is not None: if br.depth == 0 and br.is_continue: vm.loop_stack().continue_loop() continue vm.loop_stack().break_loop() return br