| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. |
| 3 * Copyright (C) 2009 Torch Mobile, Inc. http://www.torchmobile.com/ | 3 * Copyright (C) 2009 Torch Mobile, Inc. http://www.torchmobile.com/ |
| 4 * Copyright (C) 2010 Google, Inc. All Rights Reserved. | 4 * Copyright (C) 2010 Google, Inc. All Rights Reserved. |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 return true; | 79 return true; |
| 80 | 80 |
| 81 return equal(string.impl(), vector.data(), vector.size()); | 81 return equal(string.impl(), vector.data(), vector.size()); |
| 82 } | 82 } |
| 83 | 83 |
| 84 static inline bool isEndTagBufferingState(HTMLTokenizer::State state) | 84 static inline bool isEndTagBufferingState(HTMLTokenizer::State state) |
| 85 { | 85 { |
| 86 switch (state) { | 86 switch (state) { |
| 87 case HTMLTokenizer::RAWTEXTEndTagOpenState: | 87 case HTMLTokenizer::RAWTEXTEndTagOpenState: |
| 88 case HTMLTokenizer::RAWTEXTEndTagNameState: | 88 case HTMLTokenizer::RAWTEXTEndTagNameState: |
| 89 case HTMLTokenizer::ScriptDataEndTagOpenState: | |
| 90 case HTMLTokenizer::ScriptDataEndTagNameState: | |
| 91 case HTMLTokenizer::ScriptDataEscapedEndTagOpenState: | |
| 92 case HTMLTokenizer::ScriptDataEscapedEndTagNameState: | |
| 93 return true; | 89 return true; |
| 94 default: | 90 default: |
| 95 return false; | 91 return false; |
| 96 } | 92 } |
| 97 } | 93 } |
| 98 | 94 |
| 99 #define HTML_BEGIN_STATE(stateName) BEGIN_STATE(HTMLTokenizer, stateName) | 95 #define HTML_BEGIN_STATE(stateName) BEGIN_STATE(HTMLTokenizer, stateName) |
| 100 #define HTML_RECONSUME_IN(stateName) RECONSUME_IN(HTMLTokenizer, stateName) | 96 #define HTML_RECONSUME_IN(stateName) RECONSUME_IN(HTMLTokenizer, stateName) |
| 101 #define HTML_ADVANCE_TO(stateName) ADVANCE_TO(HTMLTokenizer, stateName) | 97 #define HTML_ADVANCE_TO(stateName) ADVANCE_TO(HTMLTokenizer, stateName) |
| 102 #define HTML_SWITCH_TO(stateName) SWITCH_TO(HTMLTokenizer, stateName) | 98 #define HTML_SWITCH_TO(stateName) SWITCH_TO(HTMLTokenizer, stateName) |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 HTML_ADVANCE_TO(RAWTEXTLessThanSignState); | 220 HTML_ADVANCE_TO(RAWTEXTLessThanSignState); |
| 225 else if (cc == kEndOfFileMarker) | 221 else if (cc == kEndOfFileMarker) |
| 226 return emitEndOfFile(source); | 222 return emitEndOfFile(source); |
| 227 else { | 223 else { |
| 228 bufferCharacter(cc); | 224 bufferCharacter(cc); |
| 229 HTML_ADVANCE_TO(RAWTEXTState); | 225 HTML_ADVANCE_TO(RAWTEXTState); |
| 230 } | 226 } |
| 231 } | 227 } |
| 232 END_STATE() | 228 END_STATE() |
| 233 | 229 |
| 234 HTML_BEGIN_STATE(ScriptDataState) { | |
| 235 if (cc == '<') | |
| 236 HTML_ADVANCE_TO(ScriptDataLessThanSignState); | |
| 237 else if (cc == kEndOfFileMarker) | |
| 238 return emitEndOfFile(source); | |
| 239 else { | |
| 240 bufferCharacter(cc); | |
| 241 HTML_ADVANCE_TO(ScriptDataState); | |
| 242 } | |
| 243 } | |
| 244 END_STATE() | |
| 245 | |
| 246 HTML_BEGIN_STATE(TagOpenState) { | 230 HTML_BEGIN_STATE(TagOpenState) { |
| 247 if (cc == '!') | 231 if (cc == '!') |
| 248 HTML_ADVANCE_TO(MarkupDeclarationOpenState); | 232 HTML_ADVANCE_TO(MarkupDeclarationOpenState); |
| 249 else if (cc == '/') | 233 else if (cc == '/') |
| 250 HTML_ADVANCE_TO(EndTagOpenState); | 234 HTML_ADVANCE_TO(EndTagOpenState); |
| 251 else if (isASCIIUpper(cc)) { | 235 else if (isASCIIUpper(cc)) { |
| 252 m_token->beginStartTag(toLowerCase(cc)); | 236 m_token->beginStartTag(toLowerCase(cc)); |
| 253 HTML_ADVANCE_TO(TagNameState); | 237 HTML_ADVANCE_TO(TagNameState); |
| 254 } else if (isASCIILower(cc)) { | 238 } else if (isASCIILower(cc)) { |
| 255 m_token->beginStartTag(cc); | 239 m_token->beginStartTag(cc); |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 370 bufferCharacter('<'); | 354 bufferCharacter('<'); |
| 371 bufferCharacter('/'); | 355 bufferCharacter('/'); |
| 372 m_token->appendToCharacter(m_temporaryBuffer); | 356 m_token->appendToCharacter(m_temporaryBuffer); |
| 373 m_bufferedEndTagName.clear(); | 357 m_bufferedEndTagName.clear(); |
| 374 m_temporaryBuffer.clear(); | 358 m_temporaryBuffer.clear(); |
| 375 HTML_RECONSUME_IN(RAWTEXTState); | 359 HTML_RECONSUME_IN(RAWTEXTState); |
| 376 } | 360 } |
| 377 } | 361 } |
| 378 END_STATE() | 362 END_STATE() |
| 379 | 363 |
| 380 HTML_BEGIN_STATE(ScriptDataLessThanSignState) { | |
| 381 if (cc == '/') { | |
| 382 m_temporaryBuffer.clear(); | |
| 383 ASSERT(m_bufferedEndTagName.isEmpty()); | |
| 384 HTML_ADVANCE_TO(ScriptDataEndTagOpenState); | |
| 385 } else if (cc == '!') { | |
| 386 bufferCharacter('<'); | |
| 387 bufferCharacter('!'); | |
| 388 HTML_ADVANCE_TO(ScriptDataEscapeStartState); | |
| 389 } else { | |
| 390 bufferCharacter('<'); | |
| 391 HTML_RECONSUME_IN(ScriptDataState); | |
| 392 } | |
| 393 } | |
| 394 END_STATE() | |
| 395 | |
| 396 HTML_BEGIN_STATE(ScriptDataEndTagOpenState) { | |
| 397 if (isASCIIUpper(cc)) { | |
| 398 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 399 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc))); | |
| 400 HTML_ADVANCE_TO(ScriptDataEndTagNameState); | |
| 401 } else if (isASCIILower(cc)) { | |
| 402 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 403 addToPossibleEndTag(static_cast<LChar>(cc)); | |
| 404 HTML_ADVANCE_TO(ScriptDataEndTagNameState); | |
| 405 } else { | |
| 406 bufferCharacter('<'); | |
| 407 bufferCharacter('/'); | |
| 408 HTML_RECONSUME_IN(ScriptDataState); | |
| 409 } | |
| 410 } | |
| 411 END_STATE() | |
| 412 | |
| 413 HTML_BEGIN_STATE(ScriptDataEndTagNameState) { | |
| 414 if (isASCIIUpper(cc)) { | |
| 415 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 416 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc))); | |
| 417 HTML_ADVANCE_TO(ScriptDataEndTagNameState); | |
| 418 } else if (isASCIILower(cc)) { | |
| 419 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 420 addToPossibleEndTag(static_cast<LChar>(cc)); | |
| 421 HTML_ADVANCE_TO(ScriptDataEndTagNameState); | |
| 422 } else { | |
| 423 if (isTokenizerWhitespace(cc)) { | |
| 424 if (isAppropriateEndTag()) { | |
| 425 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 426 FLUSH_AND_ADVANCE_TO(BeforeAttributeNameState); | |
| 427 } | |
| 428 } else if (cc == '/') { | |
| 429 if (isAppropriateEndTag()) { | |
| 430 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 431 FLUSH_AND_ADVANCE_TO(SelfClosingStartTagState); | |
| 432 } | |
| 433 } else if (cc == '>') { | |
| 434 if (isAppropriateEndTag()) { | |
| 435 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 436 return flushEmitAndResumeIn(source, HTMLTokenizer::DataState
); | |
| 437 } | |
| 438 } | |
| 439 bufferCharacter('<'); | |
| 440 bufferCharacter('/'); | |
| 441 m_token->appendToCharacter(m_temporaryBuffer); | |
| 442 m_bufferedEndTagName.clear(); | |
| 443 m_temporaryBuffer.clear(); | |
| 444 HTML_RECONSUME_IN(ScriptDataState); | |
| 445 } | |
| 446 } | |
| 447 END_STATE() | |
| 448 | |
| 449 HTML_BEGIN_STATE(ScriptDataEscapeStartState) { | |
| 450 if (cc == '-') { | |
| 451 bufferCharacter(cc); | |
| 452 HTML_ADVANCE_TO(ScriptDataEscapeStartDashState); | |
| 453 } else | |
| 454 HTML_RECONSUME_IN(ScriptDataState); | |
| 455 } | |
| 456 END_STATE() | |
| 457 | |
| 458 HTML_BEGIN_STATE(ScriptDataEscapeStartDashState) { | |
| 459 if (cc == '-') { | |
| 460 bufferCharacter(cc); | |
| 461 HTML_ADVANCE_TO(ScriptDataEscapedDashDashState); | |
| 462 } else | |
| 463 HTML_RECONSUME_IN(ScriptDataState); | |
| 464 } | |
| 465 END_STATE() | |
| 466 | |
| 467 HTML_BEGIN_STATE(ScriptDataEscapedState) { | |
| 468 if (cc == '-') { | |
| 469 bufferCharacter(cc); | |
| 470 HTML_ADVANCE_TO(ScriptDataEscapedDashState); | |
| 471 } else if (cc == '<') | |
| 472 HTML_ADVANCE_TO(ScriptDataEscapedLessThanSignState); | |
| 473 else if (cc == kEndOfFileMarker) { | |
| 474 parseError(); | |
| 475 HTML_RECONSUME_IN(DataState); | |
| 476 } else { | |
| 477 bufferCharacter(cc); | |
| 478 HTML_ADVANCE_TO(ScriptDataEscapedState); | |
| 479 } | |
| 480 } | |
| 481 END_STATE() | |
| 482 | |
| 483 HTML_BEGIN_STATE(ScriptDataEscapedDashState) { | |
| 484 if (cc == '-') { | |
| 485 bufferCharacter(cc); | |
| 486 HTML_ADVANCE_TO(ScriptDataEscapedDashDashState); | |
| 487 } else if (cc == '<') | |
| 488 HTML_ADVANCE_TO(ScriptDataEscapedLessThanSignState); | |
| 489 else if (cc == kEndOfFileMarker) { | |
| 490 parseError(); | |
| 491 HTML_RECONSUME_IN(DataState); | |
| 492 } else { | |
| 493 bufferCharacter(cc); | |
| 494 HTML_ADVANCE_TO(ScriptDataEscapedState); | |
| 495 } | |
| 496 } | |
| 497 END_STATE() | |
| 498 | |
| 499 HTML_BEGIN_STATE(ScriptDataEscapedDashDashState) { | |
| 500 if (cc == '-') { | |
| 501 bufferCharacter(cc); | |
| 502 HTML_ADVANCE_TO(ScriptDataEscapedDashDashState); | |
| 503 } else if (cc == '<') | |
| 504 HTML_ADVANCE_TO(ScriptDataEscapedLessThanSignState); | |
| 505 else if (cc == '>') { | |
| 506 bufferCharacter(cc); | |
| 507 HTML_ADVANCE_TO(ScriptDataState); | |
| 508 } else if (cc == kEndOfFileMarker) { | |
| 509 parseError(); | |
| 510 HTML_RECONSUME_IN(DataState); | |
| 511 } else { | |
| 512 bufferCharacter(cc); | |
| 513 HTML_ADVANCE_TO(ScriptDataEscapedState); | |
| 514 } | |
| 515 } | |
| 516 END_STATE() | |
| 517 | |
| 518 HTML_BEGIN_STATE(ScriptDataEscapedLessThanSignState) { | |
| 519 if (cc == '/') { | |
| 520 m_temporaryBuffer.clear(); | |
| 521 ASSERT(m_bufferedEndTagName.isEmpty()); | |
| 522 HTML_ADVANCE_TO(ScriptDataEscapedEndTagOpenState); | |
| 523 } else if (isASCIIUpper(cc)) { | |
| 524 bufferCharacter('<'); | |
| 525 bufferCharacter(cc); | |
| 526 m_temporaryBuffer.clear(); | |
| 527 m_temporaryBuffer.append(toLowerCase(cc)); | |
| 528 HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState); | |
| 529 } else if (isASCIILower(cc)) { | |
| 530 bufferCharacter('<'); | |
| 531 bufferCharacter(cc); | |
| 532 m_temporaryBuffer.clear(); | |
| 533 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 534 HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState); | |
| 535 } else { | |
| 536 bufferCharacter('<'); | |
| 537 HTML_RECONSUME_IN(ScriptDataEscapedState); | |
| 538 } | |
| 539 } | |
| 540 END_STATE() | |
| 541 | |
| 542 HTML_BEGIN_STATE(ScriptDataEscapedEndTagOpenState) { | |
| 543 if (isASCIIUpper(cc)) { | |
| 544 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 545 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc))); | |
| 546 HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState); | |
| 547 } else if (isASCIILower(cc)) { | |
| 548 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 549 addToPossibleEndTag(static_cast<LChar>(cc)); | |
| 550 HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState); | |
| 551 } else { | |
| 552 bufferCharacter('<'); | |
| 553 bufferCharacter('/'); | |
| 554 HTML_RECONSUME_IN(ScriptDataEscapedState); | |
| 555 } | |
| 556 } | |
| 557 END_STATE() | |
| 558 | |
| 559 HTML_BEGIN_STATE(ScriptDataEscapedEndTagNameState) { | |
| 560 if (isASCIIUpper(cc)) { | |
| 561 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 562 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc))); | |
| 563 HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState); | |
| 564 } else if (isASCIILower(cc)) { | |
| 565 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 566 addToPossibleEndTag(static_cast<LChar>(cc)); | |
| 567 HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState); | |
| 568 } else { | |
| 569 if (isTokenizerWhitespace(cc)) { | |
| 570 if (isAppropriateEndTag()) { | |
| 571 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 572 FLUSH_AND_ADVANCE_TO(BeforeAttributeNameState); | |
| 573 } | |
| 574 } else if (cc == '/') { | |
| 575 if (isAppropriateEndTag()) { | |
| 576 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 577 FLUSH_AND_ADVANCE_TO(SelfClosingStartTagState); | |
| 578 } | |
| 579 } else if (cc == '>') { | |
| 580 if (isAppropriateEndTag()) { | |
| 581 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 582 return flushEmitAndResumeIn(source, HTMLTokenizer::DataState
); | |
| 583 } | |
| 584 } | |
| 585 bufferCharacter('<'); | |
| 586 bufferCharacter('/'); | |
| 587 m_token->appendToCharacter(m_temporaryBuffer); | |
| 588 m_bufferedEndTagName.clear(); | |
| 589 m_temporaryBuffer.clear(); | |
| 590 HTML_RECONSUME_IN(ScriptDataEscapedState); | |
| 591 } | |
| 592 } | |
| 593 END_STATE() | |
| 594 | |
| 595 HTML_BEGIN_STATE(ScriptDataDoubleEscapeStartState) { | |
| 596 if (isTokenizerWhitespace(cc) || cc == '/' || cc == '>') { | |
| 597 bufferCharacter(cc); | |
| 598 if (temporaryBufferIs(HTMLNames::scriptTag.localName())) | |
| 599 HTML_ADVANCE_TO(ScriptDataDoubleEscapedState); | |
| 600 else | |
| 601 HTML_ADVANCE_TO(ScriptDataEscapedState); | |
| 602 } else if (isASCIIUpper(cc)) { | |
| 603 bufferCharacter(cc); | |
| 604 m_temporaryBuffer.append(toLowerCase(cc)); | |
| 605 HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState); | |
| 606 } else if (isASCIILower(cc)) { | |
| 607 bufferCharacter(cc); | |
| 608 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 609 HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState); | |
| 610 } else | |
| 611 HTML_RECONSUME_IN(ScriptDataEscapedState); | |
| 612 } | |
| 613 END_STATE() | |
| 614 | |
| 615 HTML_BEGIN_STATE(ScriptDataDoubleEscapedState) { | |
| 616 if (cc == '-') { | |
| 617 bufferCharacter(cc); | |
| 618 HTML_ADVANCE_TO(ScriptDataDoubleEscapedDashState); | |
| 619 } else if (cc == '<') { | |
| 620 bufferCharacter(cc); | |
| 621 HTML_ADVANCE_TO(ScriptDataDoubleEscapedLessThanSignState); | |
| 622 } else if (cc == kEndOfFileMarker) { | |
| 623 parseError(); | |
| 624 HTML_RECONSUME_IN(DataState); | |
| 625 } else { | |
| 626 bufferCharacter(cc); | |
| 627 HTML_ADVANCE_TO(ScriptDataDoubleEscapedState); | |
| 628 } | |
| 629 } | |
| 630 END_STATE() | |
| 631 | |
| 632 HTML_BEGIN_STATE(ScriptDataDoubleEscapedDashState) { | |
| 633 if (cc == '-') { | |
| 634 bufferCharacter(cc); | |
| 635 HTML_ADVANCE_TO(ScriptDataDoubleEscapedDashDashState); | |
| 636 } else if (cc == '<') { | |
| 637 bufferCharacter(cc); | |
| 638 HTML_ADVANCE_TO(ScriptDataDoubleEscapedLessThanSignState); | |
| 639 } else if (cc == kEndOfFileMarker) { | |
| 640 parseError(); | |
| 641 HTML_RECONSUME_IN(DataState); | |
| 642 } else { | |
| 643 bufferCharacter(cc); | |
| 644 HTML_ADVANCE_TO(ScriptDataDoubleEscapedState); | |
| 645 } | |
| 646 } | |
| 647 END_STATE() | |
| 648 | |
| 649 HTML_BEGIN_STATE(ScriptDataDoubleEscapedDashDashState) { | |
| 650 if (cc == '-') { | |
| 651 bufferCharacter(cc); | |
| 652 HTML_ADVANCE_TO(ScriptDataDoubleEscapedDashDashState); | |
| 653 } else if (cc == '<') { | |
| 654 bufferCharacter(cc); | |
| 655 HTML_ADVANCE_TO(ScriptDataDoubleEscapedLessThanSignState); | |
| 656 } else if (cc == '>') { | |
| 657 bufferCharacter(cc); | |
| 658 HTML_ADVANCE_TO(ScriptDataState); | |
| 659 } else if (cc == kEndOfFileMarker) { | |
| 660 parseError(); | |
| 661 HTML_RECONSUME_IN(DataState); | |
| 662 } else { | |
| 663 bufferCharacter(cc); | |
| 664 HTML_ADVANCE_TO(ScriptDataDoubleEscapedState); | |
| 665 } | |
| 666 } | |
| 667 END_STATE() | |
| 668 | |
| 669 HTML_BEGIN_STATE(ScriptDataDoubleEscapedLessThanSignState) { | |
| 670 if (cc == '/') { | |
| 671 bufferCharacter(cc); | |
| 672 m_temporaryBuffer.clear(); | |
| 673 HTML_ADVANCE_TO(ScriptDataDoubleEscapeEndState); | |
| 674 } else | |
| 675 HTML_RECONSUME_IN(ScriptDataDoubleEscapedState); | |
| 676 } | |
| 677 END_STATE() | |
| 678 | |
| 679 HTML_BEGIN_STATE(ScriptDataDoubleEscapeEndState) { | |
| 680 if (isTokenizerWhitespace(cc) || cc == '/' || cc == '>') { | |
| 681 bufferCharacter(cc); | |
| 682 if (temporaryBufferIs(HTMLNames::scriptTag.localName())) | |
| 683 HTML_ADVANCE_TO(ScriptDataEscapedState); | |
| 684 else | |
| 685 HTML_ADVANCE_TO(ScriptDataDoubleEscapedState); | |
| 686 } else if (isASCIIUpper(cc)) { | |
| 687 bufferCharacter(cc); | |
| 688 m_temporaryBuffer.append(toLowerCase(cc)); | |
| 689 HTML_ADVANCE_TO(ScriptDataDoubleEscapeEndState); | |
| 690 } else if (isASCIILower(cc)) { | |
| 691 bufferCharacter(cc); | |
| 692 m_temporaryBuffer.append(static_cast<LChar>(cc)); | |
| 693 HTML_ADVANCE_TO(ScriptDataDoubleEscapeEndState); | |
| 694 } else | |
| 695 HTML_RECONSUME_IN(ScriptDataDoubleEscapedState); | |
| 696 } | |
| 697 END_STATE() | |
| 698 | |
| 699 HTML_BEGIN_STATE(BeforeAttributeNameState) { | 364 HTML_BEGIN_STATE(BeforeAttributeNameState) { |
| 700 if (isTokenizerWhitespace(cc)) | 365 if (isTokenizerWhitespace(cc)) |
| 701 HTML_ADVANCE_TO(BeforeAttributeNameState); | 366 HTML_ADVANCE_TO(BeforeAttributeNameState); |
| 702 else if (cc == '/') | 367 else if (cc == '/') |
| 703 HTML_ADVANCE_TO(SelfClosingStartTagState); | 368 HTML_ADVANCE_TO(SelfClosingStartTagState); |
| 704 else if (cc == '>') | 369 else if (cc == '>') |
| 705 return emitAndResumeIn(source, HTMLTokenizer::DataState); | 370 return emitAndResumeIn(source, HTMLTokenizer::DataState); |
| 706 else if (isASCIIUpper(cc)) { | 371 else if (isASCIIUpper(cc)) { |
| 707 m_token->addNewAttribute(); | 372 m_token->addNewAttribute(); |
| 708 m_token->beginAttributeName(source.numberOfCharactersConsumed()); | 373 m_token->beginAttributeName(source.numberOfCharactersConsumed()); |
| (...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1094 | 759 |
| 1095 return true; | 760 return true; |
| 1096 } | 761 } |
| 1097 | 762 |
| 1098 inline void HTMLTokenizer::parseError() | 763 inline void HTMLTokenizer::parseError() |
| 1099 { | 764 { |
| 1100 notImplemented(); | 765 notImplemented(); |
| 1101 } | 766 } |
| 1102 | 767 |
| 1103 } | 768 } |
| OLD | NEW |