# File lib/map.rb, line 751
  def Map.collection_has?(collection, key, &block)
    has_key =
      case collection
        when Array
          key = (Integer(key) rescue -1)
          (0...collection.size).include?(key)

        when Hash
          collection.has_key?(key)

        else
          raise(IndexError, "(#{ collection.inspect })[#{ key.inspect }]")
      end

    block.call(key) if(has_key and block)

    has_key
  end