![]() This fixes 4 issues: - RECONSUME_IN_RETURN_STATE was functionally equivalent to SWITCH_TO_RETURN_STATE, which caused us to lose characters. For example, &test= would lose the = - & characters by themselves would be lost. For example, 1 & 2 would become 1 2. This is because we forgot to flush characters in the the ANYTHING_ELSE path in CharacterReference - Named character references didn't work at all in attributes. This is because there was a path that was checking the entity code points instead of the entity itself. Plus, the path that was checking the entity itself wasn't quite spec compliant. - If we fail to match a named character reference, the first character is lost. For example &test would become &est. However, this relies on a little hack since I can't wrap my head around on how to change the code to do as the spec says. The hack is to reconsume in AmbigiousAmpersand instead of just switching to it. Fixes #3957 |
||
---|---|---|
.. | ||
Entities.cpp | ||
Entities.h | ||
HTMLDocumentParser.cpp | ||
HTMLDocumentParser.h | ||
HTMLToken.cpp | ||
HTMLToken.h | ||
HTMLTokenizer.cpp | ||
HTMLTokenizer.h | ||
ListOfActiveFormattingElements.cpp | ||
ListOfActiveFormattingElements.h | ||
StackOfOpenElements.cpp | ||
StackOfOpenElements.h |