class Opal::Nodes::RedoNode

def compile

def compile
  if in_while?
    compile_while
  elsif scope.iter?
    compile_iter
  else
    push 'REDO()'
  end
end

def compile_iter

def compile_iter
  helper :slice
  push "return #{scope.identity}.apply(null, $slice(arguments))"
end

def compile_while

def compile_while
  push "#{while_loop[:redo_var]} = true;"
  thrower(:redo)
end