global

def [](*args)

def [](*args)
  if args.length == 1
    arg = args.first
    if (h = Backports.try_convert(arg, Hash, :to_hash))
      return allocate.replace(h)
    end
    if (kvps = Backports.is_array?(arg))
      h = {}
      kvps.each do |elem|
        next unless arr = Backports.is_array?(elem)
        next unless (1..2).include? arr.size
        h[arr.at(0)] = arr.at(1)
      end
      return h
    end
  end
  constructor_without_key_value_pair_form(*args)
end