class Opal::Nodes::WhileNode
def compile
def compile test_code = js_truthy(test) @redo_var = scope.new_temp if uses_redo? compiler.in_while do while_loop[:closure] = true if wrap_in_closure? while_loop[:redo_var] = @redo_var in_closure(Closure::LOOP | Closure::JS_LOOP | (wrap_in_closure? ? Closure::JS_FUNCTION : 0)) do in_closure(Closure::LOOP_INSIDE | Closure::JS_LOOP_INSIDE) do line(indent { stmt(body) }) end if uses_redo? compile_with_redo(test_code) else compile_without_redo(test_code) end end end scope.queue_temp(@redo_var) if uses_redo? if wrap_in_closure? if scope.await_encountered wrap '(await (async function() {', '; return nil; })())' else wrap '(function() {', '; return nil; })()' end end end