ElementWeakMap = function() {
  /** @private {!Array<!Element>} */
  this.keys_ = [];

  /** @private {!Array<!T>} */
  this.values_ = [];

  /** @private @const {string} */
  this.dataAttributeName_ = DATA_ATTRIBUTE_NAME_PREFIX + weakMapCount++;
}
A weakmap-like implementation for browsers that don't support native WeakMap.
It uses a data attribute on the key element for O(1) lookups.
@template T
@constructor