[while test:expr command:script]

  .local pmc __boolean
  __boolean = get_root_global ['_tcl'], '__boolean'
while_loop:
  $P0 = $test
  $I0 = __boolean($P0)
  unless $I0 goto while_loop_done
  
  push_eh while_loop_exception
    $command
  clear_eh
  
  goto while_loop

while_loop_exception:
  .catch()
  .get_return_code($I0)
  if $I0 == TCL_CONTINUE goto while_loop
  if $I0 == TCL_BREAK    goto while_loop_done
  .rethrow()

while_loop_done:
  $R = new .TclString
  $R = ''
