Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(432)

Side by Side Diff: third_party/WebKit/Source/core/css/parser/CSSTokenizer.cpp

Issue 2755493004: Replace ASSERT, ASSERT_NOT_REACHED, and RELEASE_ASSERT in core/css/ (Closed)
Patch Set: All windows error are Resolved now. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/css/parser/CSSTokenizer.h" 5 #include "core/css/parser/CSSTokenizer.h"
6 6
7 namespace blink { 7 namespace blink {
8 #include "core/CSSTokenizerCodepoints.cpp" 8 #include "core/CSSTokenizerCodepoints.cpp"
9 } 9 }
10 10
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 147
148 CSSParserToken CSSTokenizer::plusOrFullStop(UChar cc) { 148 CSSParserToken CSSTokenizer::plusOrFullStop(UChar cc) {
149 if (nextCharsAreNumber(cc)) { 149 if (nextCharsAreNumber(cc)) {
150 reconsume(cc); 150 reconsume(cc);
151 return consumeNumericToken(); 151 return consumeNumericToken();
152 } 152 }
153 return CSSParserToken(DelimiterToken, cc); 153 return CSSParserToken(DelimiterToken, cc);
154 } 154 }
155 155
156 CSSParserToken CSSTokenizer::asterisk(UChar cc) { 156 CSSParserToken CSSTokenizer::asterisk(UChar cc) {
157 ASSERT(cc == '*'); 157 DCHECK_EQ(cc, '*');
158 if (consumeIfNext('=')) 158 if (consumeIfNext('='))
159 return CSSParserToken(SubstringMatchToken); 159 return CSSParserToken(SubstringMatchToken);
160 return CSSParserToken(DelimiterToken, '*'); 160 return CSSParserToken(DelimiterToken, '*');
161 } 161 }
162 162
163 CSSParserToken CSSTokenizer::lessThan(UChar cc) { 163 CSSParserToken CSSTokenizer::lessThan(UChar cc) {
164 ASSERT(cc == '<'); 164 DCHECK_EQ(cc, '<');
165 if (m_input.peekWithoutReplacement(0) == '!' && 165 if (m_input.peekWithoutReplacement(0) == '!' &&
166 m_input.peekWithoutReplacement(1) == '-' && 166 m_input.peekWithoutReplacement(1) == '-' &&
167 m_input.peekWithoutReplacement(2) == '-') { 167 m_input.peekWithoutReplacement(2) == '-') {
168 m_input.advance(3); 168 m_input.advance(3);
169 return CSSParserToken(CDOToken); 169 return CSSParserToken(CDOToken);
170 } 170 }
171 return CSSParserToken(DelimiterToken, '<'); 171 return CSSParserToken(DelimiterToken, '<');
172 } 172 }
173 173
174 CSSParserToken CSSTokenizer::comma(UChar cc) { 174 CSSParserToken CSSTokenizer::comma(UChar cc) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 twoCharsAreValidEscape(nextChar, m_input.peekWithoutReplacement(1))) { 216 twoCharsAreValidEscape(nextChar, m_input.peekWithoutReplacement(1))) {
217 HashTokenType type = 217 HashTokenType type =
218 nextCharsAreIdentifier() ? HashTokenId : HashTokenUnrestricted; 218 nextCharsAreIdentifier() ? HashTokenId : HashTokenUnrestricted;
219 return CSSParserToken(type, consumeName()); 219 return CSSParserToken(type, consumeName());
220 } 220 }
221 221
222 return CSSParserToken(DelimiterToken, cc); 222 return CSSParserToken(DelimiterToken, cc);
223 } 223 }
224 224
225 CSSParserToken CSSTokenizer::circumflexAccent(UChar cc) { 225 CSSParserToken CSSTokenizer::circumflexAccent(UChar cc) {
226 ASSERT(cc == '^'); 226 DCHECK_EQ(cc, '^');
227 if (consumeIfNext('=')) 227 if (consumeIfNext('='))
228 return CSSParserToken(PrefixMatchToken); 228 return CSSParserToken(PrefixMatchToken);
229 return CSSParserToken(DelimiterToken, '^'); 229 return CSSParserToken(DelimiterToken, '^');
230 } 230 }
231 231
232 CSSParserToken CSSTokenizer::dollarSign(UChar cc) { 232 CSSParserToken CSSTokenizer::dollarSign(UChar cc) {
233 ASSERT(cc == '$'); 233 DCHECK_EQ(cc, '$');
234 if (consumeIfNext('=')) 234 if (consumeIfNext('='))
235 return CSSParserToken(SuffixMatchToken); 235 return CSSParserToken(SuffixMatchToken);
236 return CSSParserToken(DelimiterToken, '$'); 236 return CSSParserToken(DelimiterToken, '$');
237 } 237 }
238 238
239 CSSParserToken CSSTokenizer::verticalLine(UChar cc) { 239 CSSParserToken CSSTokenizer::verticalLine(UChar cc) {
240 ASSERT(cc == '|'); 240 DCHECK_EQ(cc, '|');
241 if (consumeIfNext('=')) 241 if (consumeIfNext('='))
242 return CSSParserToken(DashMatchToken); 242 return CSSParserToken(DashMatchToken);
243 if (consumeIfNext('|')) 243 if (consumeIfNext('|'))
244 return CSSParserToken(ColumnToken); 244 return CSSParserToken(ColumnToken);
245 return CSSParserToken(DelimiterToken, '|'); 245 return CSSParserToken(DelimiterToken, '|');
246 } 246 }
247 247
248 CSSParserToken CSSTokenizer::tilde(UChar cc) { 248 CSSParserToken CSSTokenizer::tilde(UChar cc) {
249 ASSERT(cc == '~'); 249 DCHECK_EQ(cc, '~');
250 if (consumeIfNext('=')) 250 if (consumeIfNext('='))
251 return CSSParserToken(IncludeMatchToken); 251 return CSSParserToken(IncludeMatchToken);
252 return CSSParserToken(DelimiterToken, '~'); 252 return CSSParserToken(DelimiterToken, '~');
253 } 253 }
254 254
255 CSSParserToken CSSTokenizer::commercialAt(UChar cc) { 255 CSSParserToken CSSTokenizer::commercialAt(UChar cc) {
256 ASSERT(cc == '@'); 256 DCHECK_EQ(cc, '@');
257 if (nextCharsAreIdentifier()) 257 if (nextCharsAreIdentifier())
258 return CSSParserToken(AtKeywordToken, consumeName()); 258 return CSSParserToken(AtKeywordToken, consumeName());
259 return CSSParserToken(DelimiterToken, '@'); 259 return CSSParserToken(DelimiterToken, '@');
260 } 260 }
261 261
262 CSSParserToken CSSTokenizer::reverseSolidus(UChar cc) { 262 CSSParserToken CSSTokenizer::reverseSolidus(UChar cc) {
263 if (twoCharsAreValidEscape(cc, m_input.peekWithoutReplacement(0))) { 263 if (twoCharsAreValidEscape(cc, m_input.peekWithoutReplacement(0))) {
264 reconsume(cc); 264 reconsume(cc);
265 return consumeIdentLikeToken(); 265 return consumeIdentLikeToken();
266 } 266 }
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 316
317 if (codePointFunc) 317 if (codePointFunc)
318 return ((this)->*(codePointFunc))(cc); 318 return ((this)->*(codePointFunc))(cc);
319 return CSSParserToken(DelimiterToken, cc); 319 return CSSParserToken(DelimiterToken, cc);
320 } 320 }
321 321
322 // This method merges the following spec sections for efficiency 322 // This method merges the following spec sections for efficiency
323 // http://www.w3.org/TR/css3-syntax/#consume-a-number 323 // http://www.w3.org/TR/css3-syntax/#consume-a-number
324 // http://www.w3.org/TR/css3-syntax/#convert-a-string-to-a-number 324 // http://www.w3.org/TR/css3-syntax/#convert-a-string-to-a-number
325 CSSParserToken CSSTokenizer::consumeNumber() { 325 CSSParserToken CSSTokenizer::consumeNumber() {
326 ASSERT(nextCharsAreNumber()); 326 DCHECK(nextCharsAreNumber());
327 327
328 NumericValueType type = IntegerValueType; 328 NumericValueType type = IntegerValueType;
329 NumericSign sign = NoSign; 329 NumericSign sign = NoSign;
330 unsigned numberLength = 0; 330 unsigned numberLength = 0;
331 331
332 UChar next = m_input.peekWithoutReplacement(0); 332 UChar next = m_input.peekWithoutReplacement(0);
333 if (next == '+') { 333 if (next == '+') {
334 ++numberLength; 334 ++numberLength;
335 sign = PlusSign; 335 sign = PlusSign;
336 } else if (next == '-') { 336 } else if (next == '-') {
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 continue; 598 continue;
599 } 599 }
600 reconsume(cc); 600 reconsume(cc);
601 return registerString(result.toString()); 601 return registerString(result.toString());
602 } 602 }
603 } 603 }
604 604
605 // http://dev.w3.org/csswg/css-syntax/#consume-an-escaped-code-point 605 // http://dev.w3.org/csswg/css-syntax/#consume-an-escaped-code-point
606 UChar32 CSSTokenizer::consumeEscape() { 606 UChar32 CSSTokenizer::consumeEscape() {
607 UChar cc = consume(); 607 UChar cc = consume();
608 ASSERT(!isNewLine(cc)); 608 DCHECK(!isNewLine(cc));
609 if (isASCIIHexDigit(cc)) { 609 if (isASCIIHexDigit(cc)) {
610 unsigned consumedHexDigits = 1; 610 unsigned consumedHexDigits = 1;
611 StringBuilder hexChars; 611 StringBuilder hexChars;
612 hexChars.append(cc); 612 hexChars.append(cc);
613 while (consumedHexDigits < 6 && 613 while (consumedHexDigits < 6 &&
614 isASCIIHexDigit(m_input.peekWithoutReplacement(0))) { 614 isASCIIHexDigit(m_input.peekWithoutReplacement(0))) {
615 cc = consume(); 615 cc = consume();
616 hexChars.append(cc); 616 hexChars.append(cc);
617 consumedHexDigits++; 617 consumedHexDigits++;
618 }; 618 };
619 consumeSingleWhitespaceIfNext(); 619 consumeSingleWhitespaceIfNext();
620 bool ok = false; 620 bool ok = false;
621 UChar32 codePoint = hexChars.toString().toUIntStrict(&ok, 16); 621 UChar32 codePoint = hexChars.toString().toUIntStrict(&ok, 16);
622 ASSERT(ok); 622 DCHECK(ok);
623 if (codePoint == 0 || (0xD800 <= codePoint && codePoint <= 0xDFFF) || 623 if (codePoint == 0 || (0xD800 <= codePoint && codePoint <= 0xDFFF) ||
624 codePoint > 0x10FFFF) 624 codePoint > 0x10FFFF)
625 return replacementCharacter; 625 return replacementCharacter;
626 return codePoint; 626 return codePoint;
627 } 627 }
628 628
629 if (cc == kEndOfFileMarker) 629 if (cc == kEndOfFileMarker)
630 return replacementCharacter; 630 return replacementCharacter;
631 return cc; 631 return cc;
632 } 632 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 reconsume(first); 675 reconsume(first);
676 return areIdentifier; 676 return areIdentifier;
677 } 677 }
678 678
679 StringView CSSTokenizer::registerString(const String& string) { 679 StringView CSSTokenizer::registerString(const String& string) {
680 m_stringPool.push_back(string); 680 m_stringPool.push_back(string);
681 return string; 681 return string;
682 } 682 }
683 683
684 } // namespace blink 684 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698