code: @Override
      @SuppressWarnings("unchecked")
      public Object getUndefined(Object key) {
          // Math.abs(x % n) is the same as (x & n-1) when n is a power of 2
          int hashModMask = OpenAddressing.hashTableLength(hashTable) - 1;
          int hash = hashCode(key);
          int bucket = hash & hashModMask;
  
          int hashEntry = OpenAddressing.getHashEntry(hashTable, bucket) * 2;
  
          // We found an entry at this hash position
          while (hashEntry >= 0) {
              if (Utils.equal(keysAndValues[hashEntry], key)) {
                  return (V) keysAndValues[hashEntry + 1];
              }
  
              // linear probing resolves collisions.
              bucket = (bucket + 1) & hashModMask;
              hashEntry = OpenAddressing.getHashEntry(hashTable, bucket) * 2;
          }
          return AbstractArrayMap.undefined;
      }
docs: If finish() has already been called on this map, this method returns the
  value associated with the specified key. If the specified key is not in
  this map, returns null.
  
  If finish() has not been called on this map, this method always returns
  null.