From ee198945e388bd3298b73fb842fa0175d5b6a0f9 Mon Sep 17 00:00:00 2001
From: Ivan Nikulin
A character reference is said to be consumed as part of an attribute if the return state is either attribute value (double-quoted) state, + attribute value (single-quoted) state or attribute value (unquoted) + state.
+ +When a state says to flush code points consumed as a character reference, it means + that for each code point in the temporary + buffer (in the order they were added to the buffer) user agent must append the code point + from the buffer to the current attribute's value if the character reference was consumed as part of an attribute, or emit the code point as a + character token otherwise.
+Before each step of the tokenizer, the user agent must first check the parser pause flag. If it is true, then the tokenizer must abort the processing of any nested invocations of the tokenizer, yielding control back to the caller.
@@ -103903,33 +103916,23 @@ dictionary StorageEventInit : EventInit {Set the temporary buffer to the empty string. Append a - U+0026 AMPERSAND (&) character to the temporary buffer. -
Consume the next input character:
Set the temporary buffer to the empty string. Append + a U+0026 AMPERSAND (&) character to the temporary + buffer. Reconsume in the named character reference state.
Set the temporary buffer to the empty string. Append + a U+0026 AMPERSAND (&) character and the current input character to the temporary buffer. Switch to the numeric character reference state.
If the character reference was consumed as part of an attribute (return state is either attribute value (double-quoted) state, - attribute value (single-quoted) state or attribute value (unquoted) - state), and the last character matched is not a U+003B SEMICOLON character (;), and the - next input character is either a U+003D EQUALS SIGN character (=) or an - ASCII alphanumeric, then, for historical reasons, switch to the character - reference end state.
+If the character reference was consumed as part of an + attribute, and the last character matched is not a U+003B SEMICOLON character (;), and + the next input character is either a U+003D EQUALS SIGN character (=) or an + ASCII alphanumeric, then, for historical reasons, flush code points consumed + as a character reference and switch to the return state. +
Otherwise:
@@ -103967,21 +103969,19 @@ dictionary StorageEventInit : EventInit { Append one or two characters corresponding to the character reference name (as given by the second column of the named character references table) to the temporary buffer. + +Switch to the character reference end state.
-If the markup contains (not in an attribute) the string I'm ¬it; I
@@ -103997,6 +103997,29 @@ dictionary StorageEventInit : EventInit {
Consume the next input character:
+ +Set the character reference code to @@ -104030,8 +104053,8 @@ dictionary StorageEventInit : EventInit {
If the number is 0x0D or a control, but not ASCII whitespace, then this is a control-character-reference - parse error.
- -If the number is one of the numbers in the first column of the following table, then find the - row with that number in the first column, and set the parse error. If the number is one of the numbers in the first column of the + following table, then find the row with that number in the first column, and set the character reference code to the number in the second column of that row.
@@ -104191,33 +104212,8 @@ dictionary StorageEventInit : EventInit {Set the temporary buffer to the empty string. Append a code point equal to the character reference code to - the temporary buffer. Switch to the character reference - end state.
- - -Consume the next input character.
- -Check the return state:
- -Reconsume in the return state.
+ the temporary buffer. Flush code points consumed as a + character reference. Switch to the return state.