class Opal::Parser::TopScopeNode

needing to manually traverse it each time).
will be passed a :top key, that references this root scope (instead of
Top level scope. This also manages things like line numbers etc. All opts

def generate(opts, level)

def generate(opts, level)
  @opts = opts
  code = []
  @statements.returns
  # code << super(opts, level)
  code << @statements.generate(opts, level)
  pre  = "function($rb, self, __FILE__) {"
  pre += 'function $$(){'
  post = "\n}\n"
  unless @scope_vars.empty?
    post += "var #{@scope_vars.join ', '};"
  end
  post += 'var nil = $rb.Qnil, $super = $rb.S, $break = $rb.B, '
  post += '$class = $rb.dc, $defn = $rb.dm, $defs = $rb.ds, $cg = $rb.cg, '
  post += '$range = $rb.G, $hash = $rb.H, $B = $rb.P, $rb_send = $rb.sm'
  post += ';'
  # ivars
  @ivars.each do |ivar|
    if js_reserved_words.include? ivar
      ivar_name = "self['#{ivar}']"
    else
      ivar_name = "self.#{ivar}"
    end
    post += "#{ivar_name}===undefined&&(#{ivar_name}=nil);"
  end
  post += "return $$();\n"
  post += "}"
  pre + code.join('') + post
end

def initialize(statements)

def initialize(statements)
  super nil, statements
  @file_helpers = []
  @line = 1
end

def method_missing?; @method_missing; end

def method_missing?; @method_missing; end

def options=(opts)

[Parser] options
def options=(opts)
  @overload_arithmetic = opts[:overload_arithmetic] || false
  @overload_comparison = opts[:overload_comparison] || false
  @overload_bitwise    = opts[:overload_bitwise] || false
  @overload_shift      = opts[:overload_shift] || true
  @overload_equal      = opts[:overload_equal] || false
  @method_missing      = opts[:method_missing] || false
end

def overload_arithmetic?; @overload_arithmetic; end

def overload_arithmetic?; @overload_arithmetic; end

def overload_bitwise?; @overload_bitwise; end

def overload_bitwise?; @overload_bitwise; end

def overload_comparison?; @overload_comparison; end

def overload_comparison?; @overload_comparison; end

def overload_equal?; @overload_equal; end

def overload_equal?; @overload_equal; end

def overload_shift?; @overload_shift; end

def overload_shift?; @overload_shift; end