Handle diffing of previous and current attributes.

@param {Element} el
@param {Object|null} prevProps - Previous props map.
@param {Object} props - Current props map.
function updateAttributes(el, prevProps, props) {
  var propName;

  if (!props || prevProps === props) {
    return;
  }

  // Set attributes.
  for (propName in props) {
    if (!filterNonEntityPropNames(propName)) {
      continue;
    }
    doSetAttribute(el, props, propName);
  }

  // See if attributes were removed.
  if (prevProps) {
    for (propName in prevProps) {
      if (!filterNonEntityPropNames(propName)) {
        continue;
      }
      if (props[propName] === undefined) {
        el.removeAttribute(propName);
      }
    }
  }
}