Changeset 99436 in webkit for trunk/Source/JavaScriptCore/parser/ParserArena.h
- Timestamp:
- Nov 7, 2011, 9:54:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/ParserArena.h
r99036 r99436 43 43 } 44 44 45 ALWAYS_INLINE const Identifier& makeIdentifier(JSGlobalData*, const UChar* characters, size_t length); 45 template <typename T> 46 ALWAYS_INLINE const Identifier& makeIdentifier(JSGlobalData*, const T* characters, size_t length); 47 ALWAYS_INLINE const Identifier& makeIdentifierLCharFromUChar(JSGlobalData*, const UChar* characters, size_t length); 48 46 49 const Identifier& makeNumericIdentifier(JSGlobalData*, double number); 47 50 … … 66 69 }; 67 70 68 ALWAYS_INLINE const Identifier& IdentifierArena::makeIdentifier(JSGlobalData* globalData, const UChar* characters, size_t length) 71 template <typename T> 72 ALWAYS_INLINE const Identifier& IdentifierArena::makeIdentifier(JSGlobalData* globalData, const T* characters, size_t length) 69 73 { 70 74 if (characters[0] >= MaximumCachableCharacter) { … … 87 91 } 88 92 93 ALWAYS_INLINE const Identifier& IdentifierArena::makeIdentifierLCharFromUChar(JSGlobalData* globalData, const UChar* characters, size_t length) 94 { 95 if (characters[0] >= MaximumCachableCharacter) { 96 m_identifiers.append(Identifier::createLCharFromUChar(globalData, characters, length)); 97 return m_identifiers.last(); 98 } 99 if (length == 1) { 100 if (Identifier* ident = m_shortIdentifiers[characters[0]]) 101 return *ident; 102 m_identifiers.append(Identifier(globalData, characters, length)); 103 m_shortIdentifiers[characters[0]] = &m_identifiers.last(); 104 return m_identifiers.last(); 105 } 106 Identifier* ident = m_recentIdentifiers[characters[0]]; 107 if (ident && Identifier::equal(ident->impl(), characters, length)) 108 return *ident; 109 m_identifiers.append(Identifier::createLCharFromUChar(globalData, characters, length)); 110 m_recentIdentifiers[characters[0]] = &m_identifiers.last(); 111 return m_identifiers.last(); 112 } 113 89 114 inline const Identifier& IdentifierArena::makeNumericIdentifier(JSGlobalData* globalData, double number) 90 115 {
Note:
See TracChangeset
for help on using the changeset viewer.