protected int calculateNewCapacity(int proposedCapacity) {
        int newCapacity = 1;
        if (proposedCapacity > MAXIMUM_CAPACITY) {
            newCapacity = MAXIMUM_CAPACITY;
        } else {
            while (newCapacity < proposedCapacity) {
                newCapacity <<= 1;  // multiply by two
            }
            if (newCapacity > MAXIMUM_CAPACITY) {
                newCapacity = MAXIMUM_CAPACITY;
            }
        }
        return newCapacity;
    }
Calculates the new capacity of the map.
This implementation normalizes the capacity to a power of two.

@param proposedCapacity the proposed capacity
@return the normalized new capacity
jphp-runtime/src/php/runtime/memory/support/ArrayMemoryMap.java