inline unsigned CalculationValueMap::insert(Ref<CalculationValue>&& value) { ASSERT(m_nextAvailableHandle); // The leakRef below is balanced by the adoptRef in the deref member function. Entry leakedValue = value.leakRef(); // FIXME: This monotonically increasing handle generation scheme is potentially wasteful // of the handle space. Consider reusing empty handles. https://bugs.webkit.org/show_bug.cgi?id=80489 while (!m_map.isValidKey(m_nextAvailableHandle) || !m_map.add(m_nextAvailableHandle, leakedValue).isNewEntry) ++m_nextAvailableHandle; return m_nextAvailableHandle++; }