class Opal::Nodes::ZsuperNode

def implicit_arglist

def implicit_arglist
  args = []
  kwargs = []
  def_scope.original_args.children.each do |sexp|
    lvar_name = sexp.children[0]
    case sexp.type
    when :arg, :optarg
      arg_node = s(:lvar, lvar_name)
      args << arg_node
    when :restarg
      arg_node = lvar_name ? s(:lvar, lvar_name) : s(:js_tmp, '$rest_arg')
      args << s(:splat, arg_node)
    when :kwarg, :kwoptarg
      key_name = sexp.meta[:arg_name]
      kwargs << s(:pair, s(:sym, key_name), s(:lvar, lvar_name))
    when :kwrestarg
      arg_node = lvar_name ? s(:lvar, lvar_name) : s(:js_tmp, '$kw_rest_arg')
      kwargs << s(:kwsplat, arg_node)
    end
  end
  args << s(:hash, *kwargs) unless kwargs.empty?
  args
end