Changing static:: to self:: makes constant de-referencing a
compile-time operation rather than run-time, potentially improving
performance. As constants cannot be overridden by extending classes,
there is no advantage to using static:: for these constants
• Changed the name of the parser instance variable from Parser::$self to Parser::$instance
• Added parse errors for entities into ParseError.
• Moved Parser::fixDOM to DOM::fixIdAttributes.
• Added an exception for when the tokenizer enters an invalid state (infinite looping).
• Made ParseError use Parser::$instance->data instead of a passed around DataStream object.
• Made names of storage property in Stack and ActiveFormattingElementsList consistent to elsewhere
• Parser has its own public static variable that is an intance of itself, so ActiveFormattingElementsList can use that instead of passing an instance around.
• Added separate exception for ActiveFormattingElementsList
• Removed html5.php; shouldn't have been there to begin with.
• Fixed bug where when feeding ParseError::trigger the wrong number of parameters it wouldn't have the correct exception to throw.
• Changes to the spec since the last edit required a rewrite of the tree building algorithm.
• Searching the stack should search from reverse by default because the spec works that way.
• Rewrote StartTagToken because the token attributes need to be easily editable as per the spec foreign attributes are edited before the token goes through the element creation process and not after.
• Yes, there's a goto. Sue me.