class Opal::Nodes::IfNode
def compile
def compile truthy = self.truthy falsy = self.falsy push 'if (', js_truthy(test), ') {' # skip if-body if no truthy sexp indent { line stmt(truthy) } if truthy if falsy if falsy.type == :if line '} else ', stmt(falsy) else line '} else {' indent do line stmt(falsy) end line '}' end else push '}' end if needs_wrapper? if scope.await_encountered wrap '(await (async function() {', '; return nil; })())' else wrap '(function() {', '; return nil; })()' end end end
def falsy
def falsy needs_wrapper? ? compiler.returns(false_body || s(:nil)) : false_body end
def needs_wrapper?
def needs_wrapper? expr? || recv? end
def truthy
def truthy needs_wrapper? ? compiler.returns(true_body || s(:nil)) : true_body end