code: function(entry) {
          var keys = entry.keys;
          var obj = entry.obj;
          var cell, i, j, m, n;
  
          //First delete current object from appropriate cells
          for (i = keys.x1; i <= keys.x2; i++) {
              for (j = keys.y1; j <= keys.y2; j++) {
                  cell = this.map[(i << 16) ^ j];
                  if (cell) {
                      n = cell.length;
                      //loop over objs in cell and delete
                      for (m = 0; m < n; m++)
                          if (cell[m] && cell[m][0] === obj[0]) cell.splice(m, 1);
                  }
              }
          }
  
          //update keys
          HashMap.key(obj, keys);
  
          //insert into all rows and columns
          for (i = keys.x1; i <= keys.x2; i++) {
              for (j = keys.y1; j <= keys.y2; j++) {
                  cell = this.map[(i << 16) ^ j];
                  if (!cell) cell = this.map[(i << 16) ^ j] = [];
                  cell.push(obj);
              }
          }
  
          //mark map boundaries as dirty
          this.boundsDirty = true;
  
          return entry;
      }
docs: @
  #Crafty.map.refresh
  @comp Crafty.map
  @kind Method
  
  @sign public void Crafty.map.refresh(Entry entry)
  @param entry - An entry to update
  
  Update an entry's keys, and its position in the broad phrase map.
  
  @example
  ~~~
  Crafty.map.refresh(e);
  ~~~