From 0a42fa65a4a49cdbcebad2dac8c6f830d065aeba Mon Sep 17 00:00:00 2001 From: Ian Hickson Date: Mon, 13 Feb 2012 22:48:10 +0000 Subject: [PATCH] [giow] (2) Rejig the wording of the character encoding section to make it more precise and in particular to not make CR processing require look-ahead. Affected topics: HTML, HTML Syntax and Parsing git-svn-id: http://svn.whatwg.org/webapps@6991 340c8d12-0b0e-0410-8428-c7bf67bfef74 --- complete.html | 137 ++++++++++++++++-------------- images/parsing-model-overview.png | Bin 44710 -> 39624 bytes index | 137 ++++++++++++++++-------------- source | 117 +++++++++++++------------ 4 files changed, 209 insertions(+), 182 deletions(-) diff --git a/complete.html b/complete.html index 6b1a8f2e0ac..c82270ded9c 100644 --- a/complete.html +++ b/complete.html @@ -1115,7 +1115,7 @@

Living Standard — Last Updated 13 February 2012<
  • 12.2 Parsing HTML documents
    1. 12.2.1 Overview of the parsing model
    2. -
    3. 12.2.2 The input stream +
    4. 12.2.2 The input byte stream
      1. 12.2.2.1 Determining the character encoding
      2. 12.2.2.2 Character encodings
      3. @@ -13639,7 +13639,7 @@

        3.4.1 Opening the input

        If the document has an active parser that isn't a script-created parser, and the insertion - point associated with that parser's input + point associated with that parser's input stream is not undefined (that is, it does point to somewhere in the input stream), then the method does nothing. Abort these steps and return the Document @@ -13783,7 +13783,7 @@

        3.4.1 Opening the input entry.
      4. Finally, set the insertion point to point at - just before the end of the input stream (which at this + just before the end of the input stream (which at this point will be empty).

      5. Return the Document on which the method was @@ -13833,7 +13833,7 @@

        3.4.2 Closing the input with the document, then abort these steps.

      6. Insert an explicit "EOF" character at the end - of the parser's input stream.

      7. + of the parser's input stream.
      8. If there is a pending parsing-blocking script, then abort these steps.

      9. @@ -13922,14 +13922,14 @@

        3.4.3 refused to allow the document to be unloaded, then abort these steps. Otherwise, the insertion point will point at just before the end of - the (empty) input stream.

        + the (empty) input stream.

      10. Insert the string consisting of the concatenation of all the - arguments to the method into the input stream just + arguments to the method into the input stream just before the insertion point.

      11. @@ -64273,12 +64273,12 @@

        6.5.2 Page lo an HTML document, set its content type to "text/html", create an HTML parser, and associate it with the document. Each task that the networking task source places on the task queue while the fetching algorithm runs must then fill the - parser's input stream with the fetched bytes and cause - the HTML parser to perform the appropriate processing - of the input stream.

        + parser's input byte stream with the fetched bytes and + cause the HTML parser to perform the appropriate + processing of the input stream.

        -

        The input stream converts bytes into - characters for use in the tokenizer. This process relies, in part, +

        The input byte stream converts bytes + into characters for use in the tokenizer. This process relies, in part, on character encoding information found in the real Content-Type metadata of the resource; the "sniffed type" is not used for this purpose.

        @@ -64377,9 +64377,9 @@

        6.5.4 Page lo state. Each task that the networking task source places on the task queue while the fetching algorithm - runs must then fill the parser's input stream with the - fetched bytes and cause the HTML parser to perform the - appropriate processing of the input stream.

        + runs must then fill the parser's input byte stream with + the fetched bytes and cause the HTML parser to perform + the appropriate processing of the input stream.

        The rules for how to convert the bytes of the plain text document into actual characters, and the rules for actually rendering the @@ -81111,13 +81111,13 @@

        12.2 Parsing HTML documents

        12.2.1 Overview of the parsing model

        -

        +

        The input to the HTML parsing process consists of a stream of - Unicode code points, which is passed through a - tokenization stage followed by a tree - construction stage. The output is a Document - object.

        + Unicode code points, which + is passed through a tokenization stage followed by a + tree construction stage. The output is a + Document object.

        Implementations that do not support scripting do not have to actually create a DOM @@ -81157,21 +81157,50 @@

        12.2.1 Overview of +
        -

        12.2.2 The input stream

        +

        12.2.2 The input byte stream

        The stream of Unicode code points that comprises the input to the tokenization stage will be initially seen by the user agent as a stream of bytes (typically coming over the network or from the local file system). The bytes encode the actual characters according to a - particular character encoding, which the user agent must - use to decode the bytes into characters.

        + particular character encoding, which the user agent must use + to decode the bytes into characters.

        For XML documents, the algorithm user agents must use to determine the character encoding is given by the XML specification. This section does not apply to XML documents. [XML]

        +

        The encoding sniffing algorithm defined below is + used to determine the character encoding.

        + +

        Given an encoding, the bytes in the input byte + stream must be converted to Unicode code points for the + tokenizer's input stream, as described by the rules for + that encoding, except that the leading U+FEFF BYTE ORDER MARK + character, if any, must not be stripped by the encoding layer (it is + stripped by the rule below).

        + +

        Bytes or sequences of bytes in the original byte stream that + could not be converted to Unicode code points must be converted to + U+FFFD REPLACEMENT CHARACTERs. Specifically, if the encoding is + UTF-8, the bytes must be decoded with the error handling defined in this + specification.

        + +

        Bytes or sequences of bytes in the original byte + stream that did not conform to the encoding specification (e.g. + invalid UTF-8 byte sequences in a UTF-8 input byte stream) are + errors that conformance checkers are expected to report.

        + +

        Any byte or sequence of bytes in the original byte stream that is + misinterpreted for compatibility is a parse + error.

        +
        12.2.2.1 Determining the character encoding
        @@ -81428,7 +81457,7 @@
        12.2.2.1 Dete

      The document's character encoding must immediately be set to the value returned from this algorithm, at the same time as the user agent uses the returned value to select the decoder to - use for the input stream.

      + use for the input byte stream.


      When an algorithm requires a user agent to prescan a byte stream to determine its encoding, given some defined end condition, then it must run the following steps. @@ -81438,7 +81467,7 @@

      12.2.2.1 Dete
      1. Let position be a pointer to a byte in the - input stream, initially pointing at the first byte. If at any + input byte stream, initially pointing at the first byte. If at any point during these steps the user agent either runs out of bytes or reaches its end condition, then abort the prescan a byte stream to determine its encoding @@ -81575,8 +81604,8 @@

        12.2.2.1 Dete
      2. Next byte: Move position so it - points at the next byte in the input stream, and return to the step - above labeld loop.
      3. + points at the next byte in the input byte stream, and return to the + step above labeld loop.

      When the prescan a byte stream to determine its encoding algorithm says to get an attribute, @@ -81851,32 +81880,12 @@

      12.2.2.2 Character encodin
      12.2.2.3 Preprocessing the input stream
      -

      Given an encoding, the bytes in the input stream must be - converted to Unicode code points for the tokenizer, as described by - the rules for that encoding, except that the leading U+FEFF BYTE - ORDER MARK character, if any, must not be stripped by the encoding - layer (it is stripped by the rule below).

      - -

      Bytes or sequences of bytes in the original byte stream that - could not be converted to Unicode code points must be converted to - U+FFFD REPLACEMENT CHARACTERs. Specifically, if the encoding is - UTF-8, the bytes must be decoded with the error handling defined in this - specification.

      - -

      Bytes or sequences of bytes in the original byte - stream that did not conform to the encoding specification - (e.g. invalid UTF-8 byte sequences in a UTF-8 input stream) are - errors that conformance checkers are expected to report.

      - -

      Any byte or sequence of bytes in the original byte stream that is - misinterpreted for compatibility is a parse - error.

      +

      The input stream consists of the characters pushed + into it as the input byte stream is decoded or from the + various APIs that directly manipulate the input stream.

      One leading U+FEFF BYTE ORDER MARK character must be ignored if - any are present.

      + any are present in the input stream.

      The requirement to strip a U+FEFF BYTE ORDER MARK character regardless of whether that character was used to determine @@ -81898,18 +81907,18 @@

      12.2.2.3 Preproce undefined Unicode characters (noncharacters).

      U+000D CARRIAGE RETURN (CR) characters and U+000A LINE FEED (LF) - characters are treated specially. Any CR characters that are - followed by LF characters must be removed, and any CR characters not - followed by LF characters must be converted to LF characters. Thus, - newlines in HTML DOMs are represented by LF characters, and there - are never any CR characters in the input to the - tokenization stage.

      + characters are treated specially. All CR characters must be + converted to LF characters, and any LF characters that immediately + follow a CR character must be ignored. Thus, newlines in HTML DOMs + are represented by LF characters, and there are never any CR + characters in the input to the tokenization stage.

      The next input character is the first character in the - input stream that has not yet been consumed. Initially, - the next input character is the first character in the - input. The current input character is the last character - to have been consumed.

      + input stream that has not yet been consumed + or explicit ignored by the requirements in this section. Initially, + the next input character is the first character in the input. + The current input character is the last character to have + been consumed.

      The insertion point is the position (just before a character or just before the end of the input stream) where content @@ -81920,9 +81929,9 @@

      12.2.2.3 Preproce undefined.

      The "EOF" character in the tables below is a conceptual character - representing the end of the input stream. If the parser + representing the end of the input stream. If the parser is a script-created parser, then the end of the - input stream is reached when an explicit "EOF" + input stream is reached when an explicit "EOF" character (inserted by the document.close() method) is consumed. Otherwise, the "EOF" character is not a real character in the stream, but rather the lack of any further characters.

      @@ -88477,7 +88486,7 @@

      12.2.6 The end

    When the user agent is to abort a parser, it must run the following steps:

    -
    1. Throw away any pending content in the input +

      1. Throw away any pending content in the input stream, and discard any future content that would have been added to it.

      2. @@ -89291,7 +89300,7 @@

        12.3 Serializing HTML
      3. -

        Place into the input stream for the HTML +

        Place into the input stream for the HTML parser just created the input. The encoding confidence is irrelevant.

        diff --git a/images/parsing-model-overview.png b/images/parsing-model-overview.png index 43ff7408708c2176bf327a21372fe90fd6a20a3b..bf6bc50fc47105003b542f47722e24d134ac69e1 100644 GIT binary patch literal 39624 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 Q!Jte3yb-Zf%P#zX06#w?uK)l5 literal 44710 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�I#0m7Hy;1J52x2iwRqC)mx0FA_czp^tT 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 KvQ^S%LH`F!h~e-6 diff --git a/index b/index index 6b1a8f2e0ac..c82270ded9c 100644 --- a/index +++ b/index @@ -1115,7 +1115,7 @@
      4. 12.2 Parsing HTML documents
        1. 12.2.1 Overview of the parsing model
        2. -
        3. 12.2.2 The input stream +
        4. 12.2.2 The input byte stream
          1. 12.2.2.1 Determining the character encoding
          2. 12.2.2.2 Character encodings
          3. @@ -13639,7 +13639,7 @@ plaintext = *( %x0000-2029 / %x202F-10FFFF )

            If the document has an active parser that isn't a script-created parser, and the insertion - point associated with that parser's input + point associated with that parser's input stream is not undefined (that is, it does point to somewhere in the input stream), then the method does nothing. Abort these steps and return the Document @@ -13783,7 +13783,7 @@ plaintext = *( %x0000-2029 / %x202F-10FFFF ) entry.

          4. Finally, set the insertion point to point at - just before the end of the input stream (which at this + just before the end of the input stream (which at this point will be empty).

          5. Return the Document on which the method was @@ -13833,7 +13833,7 @@ plaintext = *( %x0000-2029 / %x202F-10FFFF ) with the document, then abort these steps.

          6. Insert an explicit "EOF" character at the end - of the parser's input stream.

          7. + of the parser's input stream.
          8. If there is a pending parsing-blocking script, then abort these steps.

          9. @@ -13922,14 +13922,14 @@ plaintext = *( %x0000-2029 / %x202F-10FFFF ) the user refused to allow the document to be unloaded, then abort these steps. Otherwise, the insertion point will point at just before the end of - the (empty) input stream.

            + the (empty) input stream.

          10. Insert the string consisting of the concatenation of all the - arguments to the method into the input stream just + arguments to the method into the input stream just before the insertion point.

          11. @@ -64273,12 +64273,12 @@ State: <OUTPUT NAME=I>1</OUTPUT> <INPUT VALUE="Increment" TYPE=BU an HTML document, set its content type to "text/html", create an HTML parser, and associate it with the document. Each task that the networking task source places on the task queue while the fetching algorithm runs must then fill the - parser's input stream with the fetched bytes and cause - the HTML parser to perform the appropriate processing - of the input stream.

            + parser's input byte stream with the fetched bytes and + cause the HTML parser to perform the appropriate + processing of the input stream.

            -

            The input stream converts bytes into - characters for use in the tokenizer. This process relies, in part, +

            The input byte stream converts bytes + into characters for use in the tokenizer. This process relies, in part, on character encoding information found in the real Content-Type metadata of the resource; the "sniffed type" is not used for this purpose.

            @@ -64377,9 +64377,9 @@ State: <OUTPUT NAME=I>1</OUTPUT> <INPUT VALUE="Increment" TYPE=BU state. Each task that the networking task source places on the task queue while the fetching algorithm - runs must then fill the parser's input stream with the - fetched bytes and cause the HTML parser to perform the - appropriate processing of the input stream.

            + runs must then fill the parser's input byte stream with + the fetched bytes and cause the HTML parser to perform + the appropriate processing of the input stream.

            The rules for how to convert the bytes of the plain text document into actual characters, and the rules for actually rendering the @@ -81111,13 +81111,13 @@ dictionary StorageEventInit :

            12.2.1 Overview of the parsing model

            -

            +

            The input to the HTML parsing process consists of a stream of - Unicode code points, which is passed through a - tokenization stage followed by a tree - construction stage. The output is a Document - object.

            + Unicode code points, which + is passed through a tokenization stage followed by a + tree construction stage. The output is a + Document object.

            Implementations that do not support scripting do not have to actually create a DOM @@ -81157,21 +81157,50 @@ dictionary StorageEventInit : +

            -

            12.2.2 The input stream

            +

            12.2.2 The input byte stream

            The stream of Unicode code points that comprises the input to the tokenization stage will be initially seen by the user agent as a stream of bytes (typically coming over the network or from the local file system). The bytes encode the actual characters according to a - particular character encoding, which the user agent must - use to decode the bytes into characters.

            + particular character encoding, which the user agent must use + to decode the bytes into characters.

            For XML documents, the algorithm user agents must use to determine the character encoding is given by the XML specification. This section does not apply to XML documents. [XML]

            +

            The encoding sniffing algorithm defined below is + used to determine the character encoding.

            + +

            Given an encoding, the bytes in the input byte + stream must be converted to Unicode code points for the + tokenizer's input stream, as described by the rules for + that encoding, except that the leading U+FEFF BYTE ORDER MARK + character, if any, must not be stripped by the encoding layer (it is + stripped by the rule below).

            + +

            Bytes or sequences of bytes in the original byte stream that + could not be converted to Unicode code points must be converted to + U+FFFD REPLACEMENT CHARACTERs. Specifically, if the encoding is + UTF-8, the bytes must be decoded with the error handling defined in this + specification.

            + +

            Bytes or sequences of bytes in the original byte + stream that did not conform to the encoding specification (e.g. + invalid UTF-8 byte sequences in a UTF-8 input byte stream) are + errors that conformance checkers are expected to report.

            + +

            Any byte or sequence of bytes in the original byte stream that is + misinterpreted for compatibility is a parse + error.

            +
            12.2.2.1 Determining the character encoding
            @@ -81428,7 +81457,7 @@ dictionary StorageEventInit :

          The document's character encoding must immediately be set to the value returned from this algorithm, at the same time as the user agent uses the returned value to select the decoder to - use for the input stream.

          + use for the input byte stream.


          When an algorithm requires a user agent to prescan a byte stream to determine its encoding, given some defined end condition, then it must run the following steps. @@ -81438,7 +81467,7 @@ dictionary StorageEventInit :

          1. Let position be a pointer to a byte in the - input stream, initially pointing at the first byte. If at any + input byte stream, initially pointing at the first byte. If at any point during these steps the user agent either runs out of bytes or reaches its end condition, then abort the prescan a byte stream to determine its encoding @@ -81575,8 +81604,8 @@ dictionary StorageEventInit :

          2. Next byte: Move position so it - points at the next byte in the input stream, and return to the step - above labeld loop.
          3. + points at the next byte in the input byte stream, and return to the + step above labeld loop.

          When the prescan a byte stream to determine its encoding algorithm says to get an attribute, @@ -81851,32 +81880,12 @@ dictionary StorageEventInit :

          12.2.2.3 Preprocessing the input stream
          -

          Given an encoding, the bytes in the input stream must be - converted to Unicode code points for the tokenizer, as described by - the rules for that encoding, except that the leading U+FEFF BYTE - ORDER MARK character, if any, must not be stripped by the encoding - layer (it is stripped by the rule below).

          - -

          Bytes or sequences of bytes in the original byte stream that - could not be converted to Unicode code points must be converted to - U+FFFD REPLACEMENT CHARACTERs. Specifically, if the encoding is - UTF-8, the bytes must be decoded with the error handling defined in this - specification.

          - -

          Bytes or sequences of bytes in the original byte - stream that did not conform to the encoding specification - (e.g. invalid UTF-8 byte sequences in a UTF-8 input stream) are - errors that conformance checkers are expected to report.

          - -

          Any byte or sequence of bytes in the original byte stream that is - misinterpreted for compatibility is a parse - error.

          +

          The input stream consists of the characters pushed + into it as the input byte stream is decoded or from the + various APIs that directly manipulate the input stream.

          One leading U+FEFF BYTE ORDER MARK character must be ignored if - any are present.

          + any are present in the input stream.

          The requirement to strip a U+FEFF BYTE ORDER MARK character regardless of whether that character was used to determine @@ -81898,18 +81907,18 @@ dictionary StorageEventInit : undefined Unicode characters (noncharacters).

          U+000D CARRIAGE RETURN (CR) characters and U+000A LINE FEED (LF) - characters are treated specially. Any CR characters that are - followed by LF characters must be removed, and any CR characters not - followed by LF characters must be converted to LF characters. Thus, - newlines in HTML DOMs are represented by LF characters, and there - are never any CR characters in the input to the - tokenization stage.

          + characters are treated specially. All CR characters must be + converted to LF characters, and any LF characters that immediately + follow a CR character must be ignored. Thus, newlines in HTML DOMs + are represented by LF characters, and there are never any CR + characters in the input to the tokenization stage.

          The next input character is the first character in the - input stream that has not yet been consumed. Initially, - the next input character is the first character in the - input. The current input character is the last character - to have been consumed.

          + input stream that has not yet been consumed + or explicit ignored by the requirements in this section. Initially, + the next input character is the first character in the input. + The current input character is the last character to have + been consumed.

          The insertion point is the position (just before a character or just before the end of the input stream) where content @@ -81920,9 +81929,9 @@ dictionary StorageEventInit : undefined.

          The "EOF" character in the tables below is a conceptual character - representing the end of the input stream. If the parser + representing the end of the input stream. If the parser is a script-created parser, then the end of the - input stream is reached when an explicit "EOF" + input stream is reached when an explicit "EOF" character (inserted by the document.close() method) is consumed. Otherwise, the "EOF" character is not a real character in the stream, but rather the lack of any further characters.

          @@ -88477,7 +88486,7 @@ document.body.appendChild(text);

        When the user agent is to abort a parser, it must run the following steps:

        -
        1. Throw away any pending content in the input +

          1. Throw away any pending content in the input stream, and discard any future content that would have been added to it.

          2. @@ -89291,7 +89300,7 @@ document.body.appendChild(text);
          3. -

            Place into the input stream for the HTML +

            Place into the input stream for the HTML parser just created the input. The encoding confidence is irrelevant.

            diff --git a/source b/source index 64fd36da12f..866a3d75da4 100644 --- a/source +++ b/source @@ -75132,12 +75132,12 @@ State: <OUTPUT NAME=I>1</OUTPUT> <INPUT VALUE="Increment" TYPE=BUTTON O title="concept-task">task that the networking task source places on the task queue while the fetching algorithm runs must then fill the - parser's input stream with the fetched bytes and cause - the HTML parser to perform the appropriate processing - of the input stream.

            + parser's input byte stream with the fetched bytes and + cause the HTML parser to perform the appropriate + processing of the input stream.

            -

            The input stream converts bytes into - characters for use in the The input byte stream converts bytes + into characters for use in the tokenizer. This process relies, in part, on character encoding information found in the real Content-Type metadata of the resource; @@ -75249,9 +75249,9 @@ State: <OUTPUT NAME=I>1</OUTPUT> <INPUT VALUE="Increment" TYPE=BUTTON O state. Each task that the networking task source places on the task queue while the fetching algorithm - runs must then fill the parser's input stream with the - fetched bytes and cause the HTML parser to perform the - appropriate processing of the input stream.

            + runs must then fill the parser's input byte stream with + the fetched bytes and cause the HTML parser to perform + the appropriate processing of the input stream.

            The rules for how to convert the bytes of the plain text document into actual characters, and the rules for actually rendering the @@ -94069,13 +94069,13 @@ dictionary StorageEventInit : EventInit {

            Overview of the parsing model

            -

            +

            The input to the HTML parsing process consists of a stream of - Unicode code points, which is passed through a - tokenization stage followed by a tree - construction stage. The output is a Document - object.

            + Unicode code points, which + is passed through a tokenization stage followed by a + tree construction stage. The output is a + Document object.

            Implementations that do not support scripting do not have to actually create a DOM @@ -94116,22 +94116,51 @@ dictionary StorageEventInit : EventInit { +

            -

            The input stream

            +

            The input byte stream

            The stream of Unicode code points that comprises the input to the tokenization stage will be initially seen by the user agent as a stream of bytes (typically coming over the network or from the local file system). The bytes encode the actual characters according to a - particular character encoding, which the user agent must - use to decode the bytes into characters.

            + particular character encoding, which the user agent must use + to decode the bytes into characters.

            For XML documents, the algorithm user agents must use to determine the character encoding is given by the XML specification. This section does not apply to XML documents. [XML]

            +

            The encoding sniffing algorithm defined below is + used to determine the character encoding.

            + +

            Given an encoding, the bytes in the input byte + stream must be converted to Unicode code points for the + tokenizer's input stream, as described by the rules for + that encoding, except that the leading U+FEFF BYTE ORDER MARK + character, if any, must not be stripped by the encoding layer (it is + stripped by the rule below).

            + +

            Bytes or sequences of bytes in the original byte stream that + could not be converted to Unicode code points must be converted to + U+FFFD REPLACEMENT CHARACTERs. Specifically, if the encoding is + UTF-8, the bytes must be decoded with the error handling defined in this + specification.

            + +

            Bytes or sequences of bytes in the original byte + stream that did not conform to the encoding specification (e.g. + invalid UTF-8 byte sequences in a UTF-8 input byte stream) are + errors that conformance checkers are expected to report.

            + +

            Any byte or sequence of bytes in the original byte stream that is + misinterpreted for compatibility is a parse + error.

            +
            Determining the character encoding
            @@ -94451,7 +94480,7 @@ dictionary StorageEventInit : EventInit {

            The document's character encoding must immediately be set to the value returned from this algorithm, at the same time as the user agent uses the returned value to select the decoder to - use for the input stream.

            + use for the input byte stream.


            @@ -94466,7 +94495,7 @@ dictionary StorageEventInit : EventInit {
          4. Let position be a pointer to a byte in the - input stream, initially pointing at the first byte. If at any + input byte stream, initially pointing at the first byte. If at any point during these steps the user agent either runs out of bytes or reaches its end condition, then abort the prescan a byte stream to determine its encoding @@ -94630,8 +94659,8 @@ dictionary StorageEventInit : EventInit {

          5. Next byte: Move position so it - points at the next byte in the input stream, and return to the step - above labeld loop.
          6. + points at the next byte in the input byte stream, and return to the + step above labeld loop.
          @@ -94970,32 +94999,12 @@ dictionary StorageEventInit : EventInit {
          Preprocessing the input stream
          -

          Given an encoding, the bytes in the input stream must be - converted to Unicode code points for the tokenizer, as described by - the rules for that encoding, except that the leading U+FEFF BYTE - ORDER MARK character, if any, must not be stripped by the encoding - layer (it is stripped by the rule below).

          - -

          Bytes or sequences of bytes in the original byte stream that - could not be converted to Unicode code points must be converted to - U+FFFD REPLACEMENT CHARACTERs. Specifically, if the encoding is - UTF-8, the bytes must be decoded with the error handling defined in this - specification.

          - -

          Bytes or sequences of bytes in the original byte - stream that did not conform to the encoding specification - (e.g. invalid UTF-8 byte sequences in a UTF-8 input stream) are - errors that conformance checkers are expected to report.

          - -

          Any byte or sequence of bytes in the original byte stream that is - misinterpreted for compatibility is a parse - error.

          +

          The input stream consists of the characters pushed + into it as the input byte stream is decoded or from the + various APIs that directly manipulate the input stream.

          One leading U+FEFF BYTE ORDER MARK character must be ignored if - any are present.

          + any are present in the input stream.

          The requirement to strip a U+FEFF BYTE ORDER MARK character regardless of whether that character was used to determine @@ -95017,18 +95026,18 @@ dictionary StorageEventInit : EventInit { undefined Unicode characters (noncharacters).

          U+000D CARRIAGE RETURN (CR) characters and U+000A LINE FEED (LF) - characters are treated specially. Any CR characters that are - followed by LF characters must be removed, and any CR characters not - followed by LF characters must be converted to LF characters. Thus, - newlines in HTML DOMs are represented by LF characters, and there - are never any CR characters in the input to the - tokenization stage.

          + characters are treated specially. All CR characters must be + converted to LF characters, and any LF characters that immediately + follow a CR character must be ignored. Thus, newlines in HTML DOMs + are represented by LF characters, and there are never any CR + characters in the input to the tokenization stage.

          The next input character is the first character in the - input stream that has not yet been consumed. Initially, - the next input character is the first character in the - input. The current input character is the last character - to have been consumed.

          + input stream that has not yet been consumed + or explicit ignored by the requirements in this section. Initially, + the next input character is the first character in the input. + The current input character is the last character to have + been consumed.

          The insertion point is the position (just before a character or just before the end of the input stream) where content