code: function asObject(iterator) {
      // If no iterator was provided, assume the identity function
      // (suggesting this array is already a list of key/value pairs.)
      if (typeof iterator !== "function") {
        iterator = function(value) { return value; };
      }
  
      var result = {},
          length = this.length,
          index;
  
      for (index = 0; index < length; index++) {
        var pair  = iterator(this[index], index, this),
            key   = pair[0],
            value = pair[1];
  
        result[key] = value;
      }
  
      return makeImmutableObject(result);
    }
docs: Effectively performs a [map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) over the elements in the array, expecting that the iterator function
  will return an array of two elements - the first representing a key, the other
  a value. Then returns an Immutable Object constructed of those keys and values.
  
  @param {function} iterator - A function which should return an array of two elements - the first representing the desired key, the other the desired value.