class Opal::Nodes::ClassNode

def body_code

def body_code
  stmt(compiler.returns(body || s(:nil)))
end

def compile

def compile
  name, base = name_and_base
  helper :klass
  push '(function($base, $super, $parent_nesting) {'
  line "  var self = $klass($base, $super, '#{name}');"
  in_scope do
    scope.name = name
    add_temp '$nesting = [self].concat($parent_nesting)'
    body_code = self.body_code
    empty_line
    line scope.to_vars
    line body_code
  end
  line '})(', base, ', ', super_code, ', $nesting)'
end

def super_code

def super_code
  sup ? expr(sup) : 'null'
end