static inline bool hasNonASCIIOrUpper(const String& string) { unsigned length = string.length(); if (string.is8Bit()) return hasNonASCIIOrUpper(string.characters8(), length); return hasNonASCIIOrUpper(string.characters16(), length); }
void ClassNamesData::createVector() { ASSERT(!m_createdVector); ASSERT(m_vector.isEmpty()); if (m_shouldFoldCase && hasNonASCIIOrUpper(m_string)) m_string = m_string.foldCase(); const UChar* characters = m_string.characters(); unsigned length = m_string.length(); unsigned start = 0; while (true) { while (start < length && isClassWhitespace(characters[start])) ++start; if (start >= length) break; unsigned end = start + 1; while (end < length && !isClassWhitespace(characters[end])) ++end; m_vector.append(AtomicString(characters + start, end - start)); start = end + 1; } m_string = String(); m_createdVector = true; }