Changeset 52075 in webkit for trunk/JavaScriptCore/runtime/LiteralParser.cpp
- Timestamp:
- Dec 13, 2009, 4:27:07 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/runtime/LiteralParser.cpp
r47828 r52075 30 30 #include "JSString.h" 31 31 #include "Lexer.h" 32 #include "StringBuilder.h" 32 33 #include <wtf/ASCIICType.h> 33 34 #include <wtf/dtoa.h> … … 135 136 ++m_ptr; 136 137 const UChar* runStart; 137 token.stringToken = UString();138 StringBuilder builder; 138 139 do { 139 140 runStart = m_ptr; … … 141 142 ++m_ptr; 142 143 if (runStart < m_ptr) 143 token.stringToken.append(runStart, m_ptr - runStart);144 builder.append(runStart, m_ptr - runStart); 144 145 if ((mode == StrictJSON) && m_ptr < m_end && *m_ptr == '\\') { 145 146 ++m_ptr; … … 148 149 switch (*m_ptr) { 149 150 case '"': 150 token.stringToken.append('"');151 builder.append('"'); 151 152 m_ptr++; 152 153 break; 153 154 case '\\': 154 token.stringToken.append('\\');155 builder.append('\\'); 155 156 m_ptr++; 156 157 break; 157 158 case '/': 158 token.stringToken.append('/');159 builder.append('/'); 159 160 m_ptr++; 160 161 break; 161 162 case 'b': 162 token.stringToken.append('\b');163 builder.append('\b'); 163 164 m_ptr++; 164 165 break; 165 166 case 'f': 166 token.stringToken.append('\f');167 builder.append('\f'); 167 168 m_ptr++; 168 169 break; 169 170 case 'n': 170 token.stringToken.append('\n');171 builder.append('\n'); 171 172 m_ptr++; 172 173 break; 173 174 case 'r': 174 token.stringToken.append('\r');175 builder.append('\r'); 175 176 m_ptr++; 176 177 break; 177 178 case 't': 178 token.stringToken.append('\t');179 builder.append('\t'); 179 180 m_ptr++; 180 181 break; … … 187 188 return TokError; 188 189 } 189 token.stringToken.append(JSC::Lexer::convertUnicode(m_ptr[1], m_ptr[2], m_ptr[3], m_ptr[4]));190 builder.append(JSC::Lexer::convertUnicode(m_ptr[1], m_ptr[2], m_ptr[3], m_ptr[4])); 190 191 m_ptr += 5; 191 192 break; … … 200 201 return TokError; 201 202 203 token.stringToken = builder.release(); 202 204 token.type = TokString; 203 205 token.end = ++m_ptr;
Note:
See TracChangeset
for help on using the changeset viewer.