Replace unconsuming with a location mark in the current character in After DOCTYPE Name state to avoid consuming the character twice
Otherwise the parse error would be emitted multiple times if it is an invalid or unexpected character
This commit is contained in:
@@ -1900,13 +1900,14 @@
|
||||
break;
|
||||
default:
|
||||
{
|
||||
[_inputStreamReader markCurrentLocation];
|
||||
[_inputStreamReader unconsumeCurrentInputCharacter];
|
||||
if ([_inputStreamReader consumeString:@"PUBLIC" caseSensitive:NO]) {
|
||||
[self switchToState:HTMLTokenizerStateAfterDOCTYPEPublicKeyword];
|
||||
} else if ([_inputStreamReader consumeString:@"SYSTEM" caseSensitive:NO]) {
|
||||
[self switchToState:HTMLTokenizerStateAfterDOCTYPESystemKeyword];
|
||||
} else {
|
||||
[_inputStreamReader consumeNextInputCharacter];
|
||||
[_inputStreamReader rewindToMarkedLocation];
|
||||
[self emitParseError:@"Unexpected character (%@) in After DOCTYPE Name state", StringFromUTF32Char(character)];
|
||||
_currentDoctypeToken.forceQuirks = YES;
|
||||
[self switchToState:HTMLTokenizerStateBogusDOCTYPE];
|
||||
|
||||
Reference in New Issue
Block a user