Changeset 202768 in webkit for trunk/Source/JavaScriptCore/parser/Lexer.cpp
- Timestamp:
- Jul 1, 2016, 5:59:38 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Lexer.cpp
r202280 r202768 1784 1784 m_terminator = false; 1785 1785 1786 auto fillTokenInfo = [&] (int lineNumber, int endOffset, int lineStartOffset, JSTextPosition endPosition) { 1787 tokenLocation->line = lineNumber; 1788 tokenLocation->endOffset = endOffset; 1789 tokenLocation->lineStartOffset = lineStartOffset; 1790 ASSERT(tokenLocation->endOffset >= tokenLocation->lineStartOffset); 1791 tokenRecord->m_endPosition = endPosition; 1792 m_lastToken = token; 1793 }; 1794 1786 1795 start: 1787 1796 skipWhitespace(); … … 2258 2267 2259 2268 inSingleLineComment: 2260 while (!isLineTerminator(m_current)) { 2261 if (atEnd()) 2262 return EOFTOK; 2263 shift(); 2264 } 2265 shiftLineTerminator(); 2266 m_atLineStart = true; 2267 m_terminator = true; 2268 m_lineStart = m_code; 2269 if (!lastTokenWasRestrKeyword()) 2270 goto start; 2271 2272 token = SEMICOLON; 2273 // Fall through into returnToken. 2269 { 2270 auto lineNumber = m_lineNumber; 2271 auto endOffset = currentOffset(); 2272 auto lineStartOffset = currentLineStartOffset(); 2273 auto endPosition = currentPosition(); 2274 2275 while (!isLineTerminator(m_current)) { 2276 if (atEnd()) 2277 return EOFTOK; 2278 shift(); 2279 } 2280 shiftLineTerminator(); 2281 m_atLineStart = true; 2282 m_terminator = true; 2283 m_lineStart = m_code; 2284 if (!lastTokenWasRestrKeyword()) 2285 goto start; 2286 2287 token = SEMICOLON; 2288 fillTokenInfo(lineNumber, endOffset, lineStartOffset, endPosition); 2289 return token; 2290 } 2274 2291 2275 2292 returnToken: 2276 tokenLocation->line = m_lineNumber; 2277 tokenLocation->endOffset = currentOffset(); 2278 tokenLocation->lineStartOffset = currentLineStartOffset(); 2279 ASSERT(tokenLocation->endOffset >= tokenLocation->lineStartOffset); 2280 tokenRecord->m_endPosition = currentPosition(); 2281 m_lastToken = token; 2293 fillTokenInfo(m_lineNumber, currentOffset(), currentLineStartOffset(), currentPosition()); 2282 2294 return token; 2283 2295 2284 2296 returnError: 2285 2297 m_error = true; 2286 tokenLocation->line = m_lineNumber; 2287 tokenLocation->endOffset = currentOffset(); 2288 tokenLocation->lineStartOffset = currentLineStartOffset(); 2289 ASSERT(tokenLocation->endOffset >= tokenLocation->lineStartOffset); 2290 tokenRecord->m_endPosition = currentPosition(); 2298 fillTokenInfo(m_lineNumber, currentOffset(), currentLineStartOffset(), currentPosition()); 2291 2299 RELEASE_ASSERT(token & ErrorTokenFlag); 2292 2300 return token;
Note:
See TracChangeset
for help on using the changeset viewer.