RefPtr<TypeSet> SymbolTable::globalTypeSetForRegister(const ConcurrentJITLocker& locker, int registerIndex, VM& vm) { uniqueIDForRegister(locker, registerIndex, vm); //ensure it's created auto iter = m_registerToVariableMap->find(registerIndex); auto end = m_registerToVariableMap->end(); ASSERT_UNUSED(end, iter != end); return globalTypeSetForVariable(locker, iter->value.get(), vm); }
RefPtr<TypeSet> SymbolTable::globalTypeSetForOffset(const ConcurrentJITLocker& locker, VarOffset offset, VM& vm) { RELEASE_ASSERT(m_typeProfilingRareData); uniqueIDForOffset(locker, offset, vm); // Lazily create the TypeSet if necessary. auto iter = m_typeProfilingRareData->m_offsetToVariableMap.find(offset); auto end = m_typeProfilingRareData->m_offsetToVariableMap.end(); if (iter == end) return nullptr; return globalTypeSetForVariable(locker, iter->value.get(), vm); }