From 104bd78697738af2eab61740a2f1421ae49a3c95 Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Wed, 8 Feb 2017 09:12:54 +0100 Subject: [PATCH] Editorial: use more terms from the Infra Standard In particular: * ASCII whitespace * ASCII digit * ASCII hex digit (and lower/upper) * ASCII alpha (and lower/upper) * ASCII alphanumeric * strip newlines * strip leading and trailing ASCII whitespace * strip and collapse ASCII whitespace * collect a sequence of code points * skip ASCII whitespace * strictly split a string (not actually used in HTML) * split a string on ASCII whitespace * split a string on commas --- source | 1179 +++++++++++++++++++++++++------------------------------- 1 file changed, 529 insertions(+), 650 deletions(-) diff --git a/source b/source index e78ce66a349..1997934c20c 100644 --- a/source +++ b/source @@ -931,12 +931,12 @@

Attributes are placed inside the start tag, and consist of a name and a value, separated by an "=" character. - The attribute value can remain unquoted if it doesn't contain space characters or any of " ' ` = < or - >. Otherwise, it has to be quoted using either single or double quotes. - The value, along with the "=" character, can be omitted altogether if the - value is the empty string.

+ The attribute value can remain unquoted if it doesn't contain ASCII + whitespace or any of " ' ` = < or >. Otherwise, it has to be quoted using either single or double quotes. The + value, along with the "=" character, can be omitted altogether if the value + is the empty string.

<!-- empty attributes -->
 <input name=address disabled>
@@ -2391,9 +2391,26 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
     

The following terms are defined in the WHATWG Infra standard:

model. The contents of an element are its children in the DOM.

-

The space characters are always allowed between elements. - User agents represent these characters between elements in the source markup as Text - nodes in the DOM. Empty - Text nodes and Text nodes consisting of just sequences of those - characters are considered inter-element whitespace.

+

The ASCII whitespace are always allowed between elements. User agents represent + these characters between elements in the source markup as Text nodes in the DOM. Empty Text nodes and + Text nodes consisting of just sequences of those characters are considered + inter-element whitespace.

Inter-element whitespace, comment nodes, and processing instruction nodes must be ignored when establishing whether an element's contents match the element's content model or not, @@ -10090,13 +9954,13 @@ console.assert(image.height === 200);

Text, in the context of content models, means either nothing, or Text nodes. Text is sometimes used as a content model on its own, but is also phrasing content, and can be inter-element - whitespace (if the Text nodes are empty or contain just space characters).

+ whitespace (if the Text nodes are empty or contain just ASCII + whitespace).

Text nodes and attribute values must consist of Unicode characters, must not contain U+0000 characters, must not contain - permanently undefined Unicode characters (noncharacters), and must not contain control characters - other than space characters. + permanently undefined Unicode characters (noncharacters), and must not contain control + characters other than ASCII whitespace.

@@ -11446,7 +11310,8 @@ background: transparent">blue</span>.</p>

A custom data attribute is an attribute in no namespace whose name starts with the string "data-", has at least one character after the - hyphen, is XML-compatible, and contains no uppercase ASCII letters.

+ hyphen, is XML-compatible, and contains no ASCII + upper alphas.

All attribute names on HTML elements in HTML documents get ASCII-lowercased automatically, so the restriction on ASCII uppercase letters doesn't affect @@ -11598,15 +11463,15 @@ interface DOMStringMap {

  • For each content attribute on the DOMStringMap's associated element whose first five characters are the string "data-" and whose remaining characters (if any) do not include - any uppercase ASCII letters, in the order that those attributes are listed in the - element's attribute list, add a name-value pair to list whose name is the - attribute's name with the first five characters removed and whose value is the attribute's - value.

  • + any ASCII upper alphas, in the order that those + attributes are listed in the element's attribute list, add a name-value pair to + list whose name is the attribute's name with the first five characters removed and + whose value is the attribute's value.

    -
  • For each name in list, for each U+002D HYPHEN-MINUS character (-) in the - name that is followed by a lowercase ASCII letter, - remove the U+002D HYPHEN-MINUS character (-) and replace the character that followed it by the - same character converted to ASCII uppercase.

  • +
  • For each name in list, for each U+002D HYPHEN-MINUS character (-) in the name + that is followed by an ASCII lower alpha, remove the U+002D HYPHEN-MINUS character + (-) and replace the character that followed it by the same character converted to ASCII + uppercase.

  • Return list.

  • @@ -11626,13 +11491,13 @@ interface DOMStringMap { property name name and a new value value, run the following steps:

      -
    1. If name contains a U+002D HYPHEN-MINUS character (-) followed by a - lowercase ASCII letter, then throw a - "SyntaxError" DOMException and abort these steps.

    2. +
    3. If name contains a U+002D HYPHEN-MINUS character (-) followed by an ASCII + lower alpha, then throw a "SyntaxError" + DOMException and abort these steps.

    4. -
    5. For each uppercase ASCII letter in - name, insert a U+002D HYPHEN-MINUS character (-) before the character and replace the - character with the same character converted to ASCII lowercase.

    6. +
    7. For each ASCII upper alpha in name, insert a U+002D HYPHEN-MINUS + character (-) before the character and replace the character with the same character + converted to ASCII lowercase.

    8. Insert the string data- at the front of name.

    9. @@ -11650,14 +11515,14 @@ interface DOMStringMap {
        -
      1. For each uppercase ASCII letter in - name, insert a U+002D HYPHEN-MINUS character (-) before the character and replace the - character with the same character converted to ASCII lowercase.

      2. +
      3. For each ASCII upper alpha in name, insert a U+002D HYPHEN-MINUS + character (-) before the character and replace the character with the same character + converted to ASCII lowercase.

      4. Insert the string data- at the front of name.

      5. @@ -11866,9 +11731,9 @@ interface DOMStringMap {

        While pointer is not past the end of input:

          -
        1. Collect a sequence of characters that are not U+000A LINE FEED (LF) or - U+000D CARRIAGE RETURN (CR) characters. Set text to the collected - characters.

        2. +
        3. Collect a sequence of code points that are not U+000A LINE FEED (LF) or + U+000D CARRIAGE RETURN (CR) characters from input given position. Set + text to the collected characters.

        4. If text is not the empty string, then append a new Text node whose HTMLMetaElement : HTMLElement { substeps:

            -
          1. Let value be the result of stripping leading and trailing whitespace from the value of +

          2. Let value be the result of stripping leading and trailing ASCII whitespace from the value of element's content attribute.

          3. If value can be parsed as a CSS <color> value, return @@ -13525,11 +13390,11 @@ people expect to have work and what is necessary.

          4. Let position point at the first character of input.

          5. -
          6. Skip whitespace.

          7. +
          8. Skip ASCII whitespace within input given + position.

          9. -
          10. Collect a sequence of characters that are not space characters.

          11. +
          12. Collect a sequence of code points that are not ASCII + whitespace from input given position.

          13. Let candidate be the string that resulted from the previous step.

          14. @@ -13566,11 +13431,10 @@ people expect to have work and what is necessary. attribute in the Encoding declaration state, the content attribute must have a value that is an ASCII case-insensitive match for a string that consists of: the literal - string "text/html;", optionally followed by any number of space characters, followed by the literal string "charset=", followed by one of the labels of - the character encoding of the character encoding - declaration.

            + string "text/html;", optionally followed by any number of ASCII + whitespace, followed by the literal string "charset=", followed by + one of the labels of the character + encoding of the character encoding declaration.

            A document must not contain both a meta element with an http-equiv attribute in the

            Let position point at the first character of input.

            -
          15. Skip whitespace.

          16. +
          17. Skip ASCII whitespace within input given + position.

          18. -
          19. Collect a sequence of characters that are ASCII digits, and - parse the resulting string using the rules for parsing non-negative integers. If - the sequence of characters collected is the empty string, then no number will have been parsed; - abort these steps. Otherwise, let time be the parsed number.

          20. +
          21. Collect a sequence of code points that are ASCII digits from + input given position, and parse the resulting string using the + rules for parsing non-negative integers. If the sequence of characters collected + is the empty string, then no number will have been parsed; abort these steps. Otherwise, let + time be the parsed number.

          22. -
          23. Collect a sequence of characters that are ASCII digits and - U+002E FULL STOP characters (.). Ignore any collected characters.

          24. +
          25. Collect a sequence of code points that are ASCII digits and + U+002E FULL STOP characters (.) from input given position. Ignore any + collected characters.

          26. Let url be document's URL.

          27. @@ -13655,16 +13522,18 @@ people expect to have work and what is necessary. end.

          28. If the character in input pointed to by position is not a U+003B - SEMICOLON character (;), a U+002C COMMA character (,), or a space character, then + SEMICOLON character (;), a U+002C COMMA character (,), or ASCII whitespace, then abort these steps.

          29. -
          30. Skip whitespace.

          31. +
          32. Skip ASCII whitespace within input given + position.

          33. If the character in input pointed to by position is a U+003B SEMICOLON character (;), a U+002C COMMA character (,), then advance position to the next character.

          34. -
          35. Skip whitespace.

          36. +
          37. Skip ASCII whitespace within input given + position.

          38. If position is past the end of input, jump to the step labeled end.

          39. @@ -13687,13 +13556,15 @@ people expect to have work and what is necessary. (l), then advance position to the next character. Otherwise, jump to the step labeled parse.

            -
          40. Skip whitespace.

          41. +
          42. Skip ASCII whitespace within input given + position.

          43. If the character in input pointed to by position is a U+003D EQUALS SIGN (=), then advance position to the next character. Otherwise, jump to the step labeled parse.

          44. -
          45. Skip whitespace.

          46. +
          47. Skip ASCII whitespace within input given + position.

          48. Skip quotes: If the character in input pointed to by position is either a U+0027 APOSTROPHE character (') or U+0022 QUOTATION MARK @@ -13781,11 +13652,10 @@ people expect to have work and what is necessary.

          49. a valid non-negative integer, followed by a U+003B SEMICOLON character (;), followed by one or more space characters, followed - by a substring that is an ASCII case-insensitive match for the string "URL", followed by a U+003D EQUALS SIGN character (=), followed by a valid - URL that does not start with a literal U+0027 APOSTROPHE (') or U+0022 QUOTATION MARK - (") character.
          50. + (,)-->, followed by one or more ASCII whitespace, followed by a substring that is + an ASCII case-insensitive match for the string "URL", + followed by a U+003D EQUALS SIGN character (=), followed by a valid URL that does + not start with a literal U+0027 APOSTROPHE (') or U+0022 QUOTATION MARK (") character. @@ -22518,10 +22388,10 @@ interface HTMLHyperlinkElementUtils { the value of the element's href attribute can be parsed, relative to the element's node document, without failure, then the user agent must take the ping - attribute's value, split that string on spaces, - parse each resulting token relative to the element's node - document, and then run these substeps for each resulting URL record ping - URL, ignoring tokens that fail to parse:

            + attribute's value, split that string on ASCII + whitespace, parse each resulting token relative to the + element's node document, and then run these substeps for each resulting URL + record ping URL, ignoring tokens that fail to parse:

            1. If ping URL's scheme is not an @@ -22641,8 +22511,8 @@ interface HTMLHyperlinkElementUtils {

              To determine which link types apply to a link, a, or area element, the element's rel attribute must be split on spaces. The resulting tokens are the keywords - for the link types that apply to that element.

              + data-x="split a string on ASCII whitespace">split on ASCII whitespace. The resulting tokens + are the keywords for the link types that apply to that element.

    @@ -23156,8 +23026,8 @@ interface HTMLHyperlinkElementUtils {

    To parse and process the attribute's value, the user agent must first split the attribute's value on spaces, and must then parse each resulting - keyword to determine what it represents.

    + string on ASCII whitespace">split the attribute's value on ASCII whitespace, and must then + parse each resulting keyword to determine what it represents.

    @@ -23255,7 +23125,7 @@ interface HTMLHyperlinkElementUtils { present, the rel attribute's entire value must be an ASCII case-insensitive match for the string "shortcut icon" (with a single U+0020 SPACE character between the tokens and - no other space characters).

    + no other ASCII whitespace).

    Link type "license"
    @@ -24390,9 +24260,9 @@ interface HTMLSourceElement : HTMLElement { @@ -25711,23 +25581,22 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...

    If present, its value must consist of one or more image candidate strings, each separated from the next by a U+002C COMMA character (,). If an - image candidate string contains no descriptors and no space characters after the URL, the following image candidate - string, if there is one, must begin with one or more space - characters.

    + image candidate string contains no descriptors and no ASCII whitespace + after the URL, the following image candidate string, if there is one, must begin with + one or more ASCII whitespace.

    An image candidate string consists of the following components, in order, with the further restrictions described below this list:

      -
    1. Zero or more space characters.

    2. +
    3. Zero or more ASCII whitespace.

    4. A valid non-empty URL that does not start or end with a U+002C COMMA character (,), referencing a non-interactive, optionally animated, image resource that is neither paged nor scripted.

    5. -
    6. Zero or more space characters.

    7. +
    8. Zero or more ASCII whitespace.

    9. @@ -25735,11 +25604,11 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...
        -
      • A width descriptor, consisting of: a space character, a +

      • A width descriptor, consisting of: ASCII whitespace, a valid non-negative integer giving a number greater than zero representing the width descriptor value, and a U+0077 LATIN SMALL LETTER W character.

      • -
      • A pixel density descriptor, consisting of: a space character, a +

      • A pixel density descriptor, consisting of: ASCII whitespace, a valid floating-point number giving a number greater than zero representing the pixel density descriptor value, and a U+0078 LATIN SMALL LETTER X character.

      • @@ -25748,7 +25617,7 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ... -
      • Zero or more space characters.

      • +
      • Zero or more ASCII whitespace.

    @@ -26656,15 +26525,16 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...
  • Let candidates be an initially empty source set.

  • -
  • Splitting loop: Collect a sequence of characters - that are space characters or U+002C COMMA characters. - If any U+002C COMMA characters were collected, that is a parse error.

  • +
  • Splitting loop: Collect a sequence of code points that are ASCII + whitespace or U+002C COMMA characters from input given position. If + any U+002C COMMA characters were collected, that is a parse error.

  • If position is past the end of input, return candidates and abort these steps.

  • -
  • Collect a sequence of characters that are not - space characters, and let that be url.

  • +
  • Collect a sequence of code points that are not ASCII whitespace + from input given position, and let that be url.

  • Let descriptors be a new empty list.

  • @@ -26685,7 +26555,8 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...
      -
    1. Descriptor tokenizer: Skip whitespace

    2. +
    3. Descriptor tokenizer: Skip ASCII whitespace within input + given position.

    4. Let current descriptor be the empty string.

    5. @@ -26708,7 +26579,7 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...
      -
      Space character
      +
      ASCII whitespace

      If current descriptor is not empty, append current descriptor to descriptors @@ -26775,7 +26646,7 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...

      -
      Space character
      +
      ASCII whitespace

      Stay in this state.

      @@ -28210,19 +28081,19 @@ interface HTMLIFrameElement : HTMLElement {
        -
      1. Any number of comments and space characters.
      2. +
      3. Any number of comments and ASCII + whitespace.
      4. Optionally, a DOCTYPE. -
      5. Any number of comments and space characters.
      6. +
      7. Any number of comments and ASCII + whitespace.
      8. The document element, in the form of an html element.
      9. -
      10. Any number of comments and space characters.
      11. +
      12. Any number of comments and ASCII + whitespace.
      @@ -29251,8 +29122,8 @@ attribute's value is a type that a plugin supports, then the value data-x="attr-embed-align">align, hspace, and vspace may be specified on the embed element, so long as its name is XML-compatible - and contains no uppercase ASCII letters. These attributes are then passed as - parameters to the plugin.

      + and contains no ASCII upper alphas. These attributes are + then passed as parameters to the plugin.

      All attributes in HTML documents get lowercased automatically, so the restriction on uppercase letters doesn't affect such documents.

      @@ -29644,8 +29515,8 @@ interface HTMLObjectElement : HTMLElement { data-x="attr-object-type">type attribute, then let resource type be that type and jump to the step below labeled handler.

      - + @@ -35174,7 +35045,7 @@ interface VideoTrack { following the "ES_info_length" field. The text track in-band metadata track dispatch type must be set to the concatenation of the stream type byte and the zero or more descriptor bytes bytes, expressed in hexadecimal using - uppercase ASCII hex digits. + ASCII upper hex digits.
      @@ -37372,12 +37243,12 @@ interface HTMLMapElement : HTMLElement { represents its children.

      The name attribute gives the map a name so that - it can be referenced. The attribute must be present and must have a non-empty value with no space characters. The value of the name attribute must not be equal to the value of the name attribute of another map element in the same - tree. If the id attribute is also specified, both - attributes must have the same value.

      + it can be referenced. The attribute must be present and must have a non-empty value with no + ASCII whitespace. The value of the name attribute + must not be equal to the value of the name attribute of + another map element in the same tree. If the id attribute is also specified, both attributes must have the same + value.

      @@ -40413,8 +40284,8 @@ interface HTMLTableCellElement : HTMLElement {

      Take the value of the principal cell's headers attribute and split it on spaces, letting id list be the list of tokens - obtained.

      + ASCII whitespace">split it on ASCII whitespace, letting id list be the + list of tokens obtained.

      @@ -43998,8 +43869,8 @@ interface HTMLInputElement : HTMLElement {
      -

      The value sanitization algorithm is as follows: Strip line - breaks from the value.

      +

      The value sanitization algorithm is as follows: Strip + newlines from the value.

      @@ -44090,8 +43961,8 @@ interface HTMLInputElement : HTMLElement {
      -

      The value sanitization algorithm is as follows: Strip line - breaks from the value.

      +

      The value sanitization algorithm is as follows: Strip + newlines from the value.

      @@ -44199,9 +44070,9 @@ interface HTMLInputElement : HTMLElement {
      -

      The value sanitization algorithm is as follows: Strip line - breaks from the value, then strip leading and - trailing whitespace from the value.

      +

      The value sanitization algorithm is as follows: Strip + newlines from the value, then strip leading + and trailing ASCII whitespace from the value.

      Constraint validation: While the value of the element is neither the empty string nor a valid @@ -44353,8 +44224,8 @@ interface HTMLInputElement : HTMLElement {

      The value sanitization algorithm is as follows: Strip - line breaks from the value, then strip - leading and trailing whitespace from the value.

      + newlines from the value, then strip leading + and trailing ASCII whitespace from the value.

      Constraint validation: While the value of the element is neither the empty string nor a single valid e-mail address, the @@ -44403,7 +44274,8 @@ interface HTMLInputElement : HTMLElement { -

    6. Strip leading and trailing whitespace from each value in latest values.

    7. +
    8. Strip leading and trailing ASCII whitespace from each value in latest + values.

    9. Let the element's value be the result of concatenating all the values in latest values, separating each value from @@ -44423,8 +44295,8 @@ interface HTMLInputElement : HTMLElement {

      1. Split on commas the element's value, strip leading and trailing whitespace from - each resulting token, if any, and let the element's value, strip leading and trailing ASCII + whitespace from each resulting token, if any, and let the element's values be the (possibly empty) resulting list of (possibly empty) tokens, maintaining the original order.

      2. @@ -44577,8 +44449,8 @@ ldh-str = < as defined in value.

        +

        The value sanitization algorithm is as follows: Strip + newlines from the value.

    10. @@ -47879,9 +47751,10 @@ You cannot submit this form when the field is incorrect.
      -

      User agents should present this hint to the user, after having stripped line breaks from it, when the element's value is the empty string, especially if the control is not focused.

      +

      User agents should present this hint to the user, after having stripped newlines from it, when the element's value is the empty string, especially if the control is not + focused.

      If a user agent normally doesn't show this hint to the user when the control is focused, then the user agent should nonetheless show the hint for the control if it @@ -49593,11 +49466,11 @@ interface HTMLOptionElement : HTMLElement { element's index.

      The text IDL attribute, on getting, must - return the result of stripping and collapsing - whitespace from the concatenation of data of all the - Text node descendants of the option element, in tree order, - excluding any that are descendants of descendants of the option element that are - themselves script or SVG script elements.

      + return the result of stripping and collapsing + ASCII whitespace from the concatenation of data of + all the Text node descendants of the option element, in tree + order, excluding any that are descendants of descendants of the option element + that are themselves script or SVG script elements.

      On setting, the text attribute must act as if the textContent IDL attribute on the element had been set to the new value.

      @@ -52807,8 +52680,8 @@ MIT Room 32-G524
    11. If the element has no autocomplete attribute, then jump to the step labeled default.

    12. -
    13. Let tokens be the result of splitting the attribute's value on spaces.

    14. +
    15. Let tokens be the result of splitting the attribute's value on ASCII whitespace.

    16. If tokens is empty, then jump to the step labeled default.

    17. @@ -55217,7 +55090,7 @@ fur data-x="attr-form-accept-charset">accept-charset attribute.

    18. Let candidate encoding labels be the result of splitting input on spaces.

    19. + on ASCII whitespace">splitting input on ASCII whitespace.

    20. Let candidate encodings be an empty list of character encodings.

    21. @@ -55943,9 +55816,9 @@ interface HTMLMenuItemElement : HTMLElement {

      The label of a menuitem element is the value of the label content attribute, if there is one - and its value is not the empty string, or, otherwise, the result of stripping and collapsing whitespace from the - child text content of the menuitem element. The stripping and collapsing ASCII whitespace from the child + text content of the menuitem element. The label must not be the empty string if the element's type attribute value is in the Command state.

      @@ -56439,9 +56312,8 @@ dictionary RelatedEventInit : EventInit {

      The Label of the command is the value of the option element's label attribute, if there is one, or else the value of option element's textContent IDL attribute, - with leading and trailing whitespace - stripped, and with any sequences of two or more space - characters replaced by a single U+0020 SPACE character.

      + with ASCII whitespace stripped and + collapsed.

      The AccessKey of the command is the element's assigned access key, if any.

      @@ -57511,9 +57383,9 @@ o............A....e

      Otherwise, if the script element has a type attribute, let the script block's type string - for this script element be the value of that attribute with any leading or - trailing sequences of space characters removed.

      + for this script element be the value of that attribute with leading and trailing ASCII whitespace + stripped.

      Otherwise, the element has a non-empty language attribute; let the script block's type string for this script element @@ -57618,7 +57490,7 @@ o............A....e

    22. Let event be the value of the event attribute.

    23. -
    24. Strip leading and trailing whitespace from event and +

    25. Strip leading and trailing ASCII whitespace from event and for.

    26. If for is not an ASCII case-insensitive match for the @@ -60773,7 +60645,8 @@ transform. ack Shaun Morris. -->

    27. If maxWidth was provided but is less than or equal to zero or equal to NaN, then return an empty array.

    28. -
    29. Replace all the space characters in text with U+0020 SPACE characters.

    30. +
    31. Replace all ASCII whitespace in text with U+0020 SPACE + characters.

    32. Let font be the current font of target, as given by that object's font attribute.

    33. @@ -62193,20 +62066,21 @@ try { value is a string, computed as follows: if it has alpha equal to 1.0, then the string is a lowercase six-digit hex value, prefixed with a "#" character (U+0023 NUMBER SIGN), with the first two digits representing the red component, the next two digits representing the green component, - and the last two digits representing the blue component, the digits being lowercase ASCII - hex digits. Otherwise, the color value has alpha less than 1.0, and the string is the color - value in the CSS rgba() functional-notation format: the literal string - "rgba" (U+0072 U+0067 U+0062 U+0061) followed by a U+0028 LEFT PARENTHESIS, - a base-ten integer in the range 0-255 representing the red component (using ASCII - digits in the shortest form possible), a literal U+002C COMMA and U+0020 SPACE, an integer - for the green component, a comma and a space, an integer for the blue component, another comma and - space, a U+0030 DIGIT ZERO, if the alpha value is greater than zero then a U+002E FULL STOP - (representing the decimal point), if the alpha value is greater than zero then one or more - ASCII digits representing the fractional part of the alpha, and finally a U+0029 RIGHT PARENTHESIS. User agents must - express the fractional part of the alpha value, if any, with the level of precision necessary for - the alpha value, when reparsed, to be interpreted as the same alpha value.

      + and the last two digits representing the blue component, the digits being ASCII lower hex digits. Otherwise, the color value has alpha less than + 1.0, and the string is the color value in the CSS rgba() + functional-notation format: the literal string "rgba" (U+0072 U+0067 U+0062 + U+0061) followed by a U+0028 LEFT PARENTHESIS, a base-ten integer in the range 0-255 representing + the red component (using ASCII digits in the shortest form possible), a literal + U+002C COMMA and U+0020 SPACE, an integer for the green component, a comma and a space, an integer + for the blue component, another comma and space, a U+0030 DIGIT ZERO, if the alpha value is + greater than zero then a U+002E FULL STOP (representing the decimal point), if the alpha value is + greater than zero then one or more ASCII digits representing the fractional part of + the alpha, and finally a U+0029 + RIGHT PARENTHESIS. User agents must express the fractional part of the alpha value, if any, with + the level of precision necessary for the alpha value, when reparsed, to be interpreted as the same + alpha value.

      +

      When the context is created, the fillStyle and

      Let font be the current font of the context, as given by the font attribute.

      -
    34. Replace all the space characters in text with U+0020 SPACE characters.

    35. +
    36. Replace all the ASCII whitespace in text with U+0020 SPACE + characters.

    37. Form a whatever CSS ends up calling vertical line boxes and inline boxes containing the text text, with all the properties @@ -65909,10 +65784,10 @@ console.log(plasticButton2.getAttribute("is")); // will output "plastic-button"<

      Any namespace-less attribute that is relevant to the element's functioning, as determined by the element's author, may be specified on an autonomous custom element, so long as - the attribute name is XML-compatible and contains no uppercase ASCII - letters. The exception is the is attribute, which must not - be specified on an autonomous custom element (and which will have no effect if it - is).

      + the attribute name is XML-compatible and contains no ASCII upper alphas. The exception is the is attribute, + which must not be specified on an autonomous custom element (and which will have no + effect if it is).

      Customized built-in elements follow the normal requirements for attributes, based on the elements they extend. To add custom @@ -65970,11 +65845,11 @@ console.log(plasticButton2.getAttribute("is")); // will output "plastic-button"< custom element names:

        -
      • They start with a lowercase ASCII letter, - ensuring that the HTML parser will treat them as tags instead of as text.

      • +
      • They start with an ASCII lower alpha, ensuring that the HTML parser will + treat them as tags instead of as text.

      • -
      • They do not contain any uppercase ASCII letters, ensuring that the user - agent can always treat HTML elements ASCII-case-insensitively.

      • +
      • They do not contain any ASCII upper alphas, + ensuring that the user agent can always treat HTML elements ASCII-case-insensitively.

      • They contain a hyphen, used for namespacing and to ensure forward compatibility (since no elements will be added to HTML, SVG, or MathML with hyphen-containing local names in the @@ -68501,8 +68376,8 @@ Demos: have at least one token.

        The item types of an item are the tokens obtained - by splitting the element's itemtype attribute's value on spaces. If the splitting the element's itemtype attribute's value on ASCII whitespace. If the itemtype attribute is missing or parsing it in this way finds no tokens, the item is said to have no item types.

        @@ -68707,12 +68582,12 @@ Demos:

        Specifications that introduce defined property names must ensure all such property names contain no U+002E FULL STOP characters (.), no U+003A COLON - characters (:), and no space characters.

        + characters (:), and no ASCII whitespace.

        The rules above disallow U+003A COLON characters (:) in non-URL values because otherwise they could not be distinguished from URLs. Values with U+002E FULL STOP characters (.) - are reserved for future extensions. Space characters are - disallowed because otherwise the values would be parsed as multiple tokens.

        + are reserved for future extensions. ASCII whitespace are disallowed because otherwise + the values would be parsed as multiple tokens.

        When an element with an itemprop attribute adds a property to multiple items, @@ -68733,8 +68608,8 @@ Demos:

        The property names of an element are the tokens that the element's itemprop attribute is found to contain when its value is split on spaces, with the order preserved but with - duplicates removed (leaving only the first occurrence of each name).

        + data-x="split a string on ASCII whitespace">split on ASCII whitespace, with the order + preserved but with duplicates removed (leaving only the first occurrence of each name).

        Within an item, the properties are unordered with respect to each other, except for properties with the same name, which are ordered in the order they are @@ -68925,11 +68800,11 @@ Demos:

      • Add the child elements of root, if any, to pending.

      • -
      • If root has an itemref attribute, - split the value of that itemref attribute on spaces. For each resulting token - ID, if there is an element in the tree of root with the ID ID, then add the first such element to +

      • If root has an itemref attribute, split the value of that itemref attribute on ASCII whitespace. For each resulting + token ID, if there is an element in the tree of root with the + ID ID, then add the first such element to pending.

      • Loop: If pending is empty, jump to the step labeled end of @@ -70271,11 +70146,14 @@ Demos: subproperty named country-name in subitem.

        -
      • If there is a property named type in subitem, and the first such property has a

        If there is a property named type in + subitem, and the first such property has a value that is not an item and whose value consists only of alphanumeric ASCII - characters, then add a parameter named "TYPE" whose value is - the value of that property to parameters.

      • + data-x="concept-item">item and whose value consists only of ASCII alphanumerics, then add a parameter named "TYPE" whose value is the value of that property to + parameters.

    @@ -70339,9 +70217,10 @@ Demos:
  • If there is a property named rel in subitem, and the first such property has a value that is not an item and whose value consists only of alphanumeric ASCII - characters, then add a parameter named "RELATION" whose value - is the value of that property to + data-x="concept-item">item and whose value consists only of ASCII alphanumerics, then add a parameter named "RELATION" whose value is the value of that property to parameters.

  • @@ -70360,11 +70239,13 @@ Demos:
  • Let value be the result of collecting the first vCard subproperty named value in subitem.

    -
  • If there is a property named type in subitem, and the first such property has a value that is not an item and whose value consists only of alphanumeric ASCII - characters, then add a parameter named "TYPE" whose value is - the value of that property to parameters.

  • +
  • If there is a property named type in subitem, and + the first such property has a value that is + not an item and whose value consists only of ASCII alphanumeric, then add a parameter named "TYPE" whose value is the value of that property to + parameters.

  • @@ -73613,8 +73494,8 @@ addShortcutKeyLabel(document.getElementById('c'));
  • If the element has no accesskey attribute, then skip to the fallback step below.

  • -
  • Otherwise, split the attribute's value on - spaces, and let keys be the resulting tokens.

  • +
  • Otherwise, split the attribute's value + on ASCII whitespace, and let keys be the resulting tokens.

  • @@ -74394,10 +74275,9 @@ body { display:none } type">MIME types; other values can be used as well. In all cases, however, the values are all converted to ASCII lowercase by the API.

    -

    Strings that contain space characters - cannot be used with the dropzone attribute, so authors are - encouraged to use only MIME types or custom strings (without - spaces).

    +

    Strings that contain ASCII whitespace cannot be used with the + dropzone attribute, so authors are encouraged to use only + MIME types or custom strings (without whitespace).

    There is a limit of one Plain Unicode string item per item type string.

    -
  • Now, collect a sequence of characters that are not U+000A LINE FEED - (LF) or U+000D CARRIAGE RETURN (CR) characters, and let the result be line.

  • +
  • Now, collect a sequence of code points that are not U+000A LINE FEED + (LF) or U+000D CARRIAGE RETURN (CR) characters from input given position, + and let the result be line.

  • Drop any trailing U+0020 SPACE and U+0009 CHARACTER TABULATION (tab) characters at the end of line.

  • @@ -89668,8 +89551,7 @@ document.body.appendChild(frame)
  • Let position be a pointer into data, initially pointing at the start of the string.

  • -
  • Remove all space characters from - data.

  • +
  • Remove all ASCII whitespace from data.

  • If the length of data divides by 4 leaving no remainder, then: if data ends with one or two U+003D EQUALS SIGN (=) characters, remove them from @@ -89688,7 +89570,7 @@ document.body.appendChild(frame)

    • U+002B PLUS SIGN (+)
    • U+002F SOLIDUS (/) -
    • Alphanumeric ASCII characters +
    • ASCII alphanumeric
  • @@ -90061,7 +89943,7 @@ document.body.appendChild(frame)

    If the type string contains a U+003B SEMICOLON character (;), remove the first such character and all characters from it up to the end of the string.

    -

    Strip leading and trailing whitespace from type.

    +

    Strip leading and trailing ASCII whitespace from type.

    @@ -91344,8 +91226,8 @@ interface NavigatorContentUtils {

    If the registerProtocolHandler() method is invoked with a scheme that is neither a safelisted scheme nor a scheme whose value starts with the substring "web+" and otherwise contains only - lowercase ASCII letters, and whose length is at least five characters (including - the "web+" prefix), the user agent must throw a + ASCII lower alphas, and whose length is at least five + characters (including the "web+" prefix), the user agent must throw a "SecurityError" DOMException.

    The following schemes are the safelisted schemes:

    @@ -98340,19 +98222,19 @@ dictionary StorageEventInit : EventInit {
  • Optionally, a single U+FEFF BYTE ORDER MARK (BOM) character.
  • -
  • Any number of comments and space characters.
  • +
  • Any number of comments and ASCII + whitespace.
  • A DOCTYPE. -
  • Any number of comments and space characters.
  • +
  • Any number of comments and ASCII + whitespace.
  • The document element, in the form of an html element.
  • -
  • Any number of comments and space characters.
  • +
  • Any number of comments and ASCII + whitespace.
  • @@ -98364,11 +98246,11 @@ dictionary StorageEventInit : EventInit {
    -

    Space characters before the html element, and space characters at the start of - the html element and before the head element, will be dropped when the - document is parsed; space characters after the html element will be parsed - as if they were at the end of the body element. Thus, space characters around the - document element do not round-trip.

    +

    ASCII whitespace before the html element, at the start of the + html element and before the head element, will be dropped when the + document is parsed; ASCII whitespace after the html element + will be parsed as if it were at the end of the body element. Thus, ASCII + whitespace around the document element does not round-trip.

    It is suggested that newlines be inserted after the DOCTYPE, after any comments that are before the document element, after the html element's start tag (if it is not StorageEventInit : EventInit {

    Many strings in the HTML syntax (e.g. the names of elements and their attributes) are - case-insensitive, but only for uppercase ASCII letters and lowercase ASCII - letters. For convenience, in this section this is just referred to as - "case-insensitive".

    + case-insensitive, but only for ASCII upper alphas and + ASCII lower alphas. For convenience, in this section this + is just referred to as "case-insensitive".

    The DOCTYPE

    @@ -98397,10 +98279,10 @@ dictionary StorageEventInit : EventInit {
    1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
    2. -
    3. One or more space characters.
    4. +
    5. One or more ASCII whitespace.
    6. A string that is an ASCII case-insensitive match for the string "html".
    7. Optionally, a DOCTYPE legacy string.
    8. -
    9. Zero or more space characters.
    10. +
    11. Zero or more ASCII whitespace.
    12. A U+003E GREATER-THAN SIGN character (>).
    @@ -98413,9 +98295,9 @@ dictionary StorageEventInit : EventInit { into the DOCTYPE (in the position defined above). This string must consist of:

      -
    1. One or more space characters.
    2. +
    3. One or more ASCII whitespace.
    4. A string that is an ASCII case-insensitive match for the string "SYSTEM".
    5. -
    6. One or more space characters.
    7. +
    8. One or more ASCII whitespace.
    9. A U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (the quote mark).
    10. The literal string "about:legacy-compat".
    11. A matching U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (i.e. the same character as in the earlier step labeled quote mark).
    12. @@ -98541,10 +98423,10 @@ dictionary StorageEventInit : EventInit { paragraph. Those restrictions are described below.

      Tags contain a tag name, giving the element's name. HTML - elements all have names that only use alphanumeric ASCII characters. In the HTML - syntax, tag names, even those for foreign elements, may be written with any mix of - lower- and uppercase letters that, when converted to all-lowercase, matches the element's tag - name; tag names are case-insensitive.

      + elements all have names that only use ASCII + alphanumerics. In the HTML syntax, tag names, even those for foreign elements, + may be written with any mix of lower- and uppercase letters that, when converted to all-lowercase, + matches the element's tag name; tag names are case-insensitive.

      Start tags
      @@ -98558,18 +98440,17 @@ dictionary StorageEventInit : EventInit {
    13. The next few characters of a start tag must be the element's tag name.
    14. -
    15. If there are to be any attributes in the next step, there must first be one or more space characters.
    16. +
    17. If there are to be any attributes in the next step, there must first be one or more + ASCII whitespace.
    18. Then, the start tag may have a number of attributes, the syntax for which is described below. Attributes must be - separated from each other by one or more space - characters.
    19. + separated from each other by one or more ASCII whitespace. -
    20. After the attributes, or after the tag name if there are - no attributes, there may be one or more space characters. - (Some attributes are required to be followed by a space. See the attributes section below.)
    21. +
    22. After the attributes, or after the tag name if there + are no attributes, there may be one or more ASCII whitespace. (Some attributes are + required to be followed by a space. See the attributes + section below.)
    23. Then, if the element is one of the void elements, or if the element is a foreign element, then there may be a single U+002F SOLIDUS @@ -98594,8 +98475,7 @@ dictionary StorageEventInit : EventInit {
    24. The next few characters of an end tag must be the element's tag name.
    25. -
    26. After the tag name, there may be one or more space - characters.
    27. +
    28. After the tag name, there may be one or more ASCII whitespace.
    29. Finally, end tags must be closed by a U+003E GREATER-THAN SIGN character (>).
    30. @@ -98608,13 +98488,12 @@ dictionary StorageEventInit : EventInit { element's start tag.

      Attributes have a name and a value. Attribute names - must consist of one or more characters other than the space - characters, U+0000 NULL, U+0022 QUOTATION MARK ("), U+0027 APOSTROPHE ('), U+003E - GREATER-THAN SIGN (>), U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters, the control - characters, and any characters that are not defined by Unicode. In the HTML syntax, attribute - names, even those for foreign elements, may be written with any mix of lower- and - uppercase letters that are an ASCII case-insensitive match for the attribute's - name.

      + must consist of one or more characters other than the ASCII whitespace, U+0000 NULL, + U+0022 QUOTATION MARK ("), U+0027 APOSTROPHE ('), U+003E GREATER-THAN SIGN (>), + U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters, the control characters, + and any characters that are not defined by Unicode. In the HTML syntax, attribute names, even + those for foreign elements, may be written with any mix of lower- and uppercase + letters that are an ASCII case-insensitive match for the attribute's name.

      Attribute values are a mixture of text and character references, @@ -98642,7 +98521,7 @@ dictionary StorageEventInit : EventInit {

      If an attribute using the empty attribute syntax is to be followed by another attribute, then - there must be a space character separating the two.

      + there must be ASCII whitespace separating the two.

      @@ -98650,15 +98529,14 @@ dictionary StorageEventInit : EventInit {
      -

      The attribute name, followed by zero or more space characters, followed by a single U+003D EQUALS SIGN - character, followed by zero or more space characters, - followed by the attribute value, which, in addition - to the requirements given above for attribute values, must not contain any literal space characters, any U+0022 QUOTATION MARK characters ("), - U+0027 APOSTROPHE characters ('), U+003D EQUALS SIGN characters (=), U+003C LESS-THAN SIGN - characters (<), U+003E GREATER-THAN SIGN characters (>), or U+0060 GRAVE ACCENT characters - (`), and must not be the empty string.

      +

      The attribute name, followed by zero or more + ASCII whitespace, followed by a single U+003D EQUALS SIGN character, followed by + zero or more ASCII whitespace, followed by the attribute value, which, in addition to the requirements + given above for attribute values, must not contain any literal ASCII whitespace, + any U+0022 QUOTATION MARK characters ("), U+0027 APOSTROPHE characters ('), U+003D + EQUALS SIGN characters (=), U+003C LESS-THAN SIGN characters (<), U+003E GREATER-THAN SIGN + characters (>), or U+0060 GRAVE ACCENT characters (`), and must not be the empty string.

      -

      A head element's end tag may be omitted if the - head element is not immediately followed by a space character or a comment.

      +

      A head element's end tag may be omitted if + the head element is not immediately followed by ASCII whitespace or a + comment.

      A body element's start tag may be omitted - if the element is empty, or if the first thing inside the body element is not a - space character or a comment, except if the + if the element is empty, or if the first thing inside the body element is not + ASCII whitespace or a comment, except if the first thing inside the body element is a meta, link, script, style, or template element. -

      A colgroup element's end tag may be omitted if - the colgroup element is not immediately followed by a space character or - a comment.

      +

      A colgroup element's end tag may be omitted + if the colgroup element is not immediately followed by ASCII whitespace + or a comment.

      A caption element's end tag may be omitted if - the caption element is not immediately followed by a space character or - a comment.

      + the caption element is not immediately followed by ASCII whitespace or a + comment.

      A thead element's end tag may be omitted if @@ -99295,13 +99173,13 @@ dictionary StorageEventInit : EventInit {

      The numeric character reference forms described above are allowed to reference any Unicode code point other than U+0000, U+000D, permanently undefined Unicode characters (noncharacters), - surrogates (U+D800–U+DFFF), and control characters other than space characters.

      + surrogates (U+D800–U+DFFF), and control characters other than ASCII + whitespace.

      An ambiguous ampersand is a U+0026 AMPERSAND - character (&) that is followed by one or more alphanumeric ASCII characters, - followed by a U+003B SEMICOLON character (;), where these characters do not match any of the names - given in the named character references section.

      + character (&) that is followed by one or more ASCII + alphanumerics, followed by a U+003B SEMICOLON character (;), where these characters do not + match any of the names given in the named character references section.

      CDATA sections

      @@ -100196,7 +100074,7 @@ dictionary StorageEventInit : EventInit {
      -
      A sequence of bytes starting with a 0x3C byte (ASCII <), optionally a 0x2F byte (ASCII /), and finally a byte in the range 0x41-0x5A or 0x61-0x7A (an ASCII letter)
      +
      A sequence of bytes starting with a 0x3C byte (ASCII <), optionally a 0x2F byte (ASCII /), and finally a byte in the range 0x41-0x5A or 0x61-0x7A (an ASCII alpha)
        @@ -101248,7 +101126,7 @@ dictionary StorageEventInit : EventInit {
        U+002F SOLIDUS (/)
        Switch to the end tag open state.
        -
        ASCII letter
        +
        ASCII alpha
        Create a new start tag token, set its tag name to the empty string. Reconsume in the tag name state. @@ -101268,7 +101146,7 @@ dictionary StorageEventInit : EventInit {
        -
        ASCII letter
        +
        ASCII alpha
        Create a new end tag token, set its tag name to the empty string. Reconsume in the tag name state. @@ -101305,7 +101183,7 @@ dictionary StorageEventInit : EventInit {
        U+003E GREATER-THAN SIGN (>)
        Switch to the data state. Emit the current tag token.
        -
        Uppercase ASCII letter
        +
        ASCII upper alpha
        Append the lowercase version of the current input character (add 0x0020 to the character's code point) to the current tag token's tag name.
        @@ -101347,7 +101225,7 @@ dictionary StorageEventInit : EventInit {
        -
        ASCII letter
        +
        ASCII alpha
        Create a new end tag token, set its tag name to the empty string. Reconsume in the RCDATA end tag name state. @@ -101384,12 +101262,12 @@ dictionary StorageEventInit : EventInit { data state and emit the current tag token. Otherwise, treat it as per the "anything else" entry below.
        -
        Uppercase ASCII letter
        +
        ASCII upper alpha
        Append the lowercase version of the current input character (add 0x0020 to the character's code point) to the current tag token's tag name. Append the current input character to the temporary buffer.
        -
        Lowercase ASCII letter
        +
        ASCII lower alpha
        Append the current input character to the current tag token's tag name. Append the current input character to the temporary buffer.
        @@ -101428,7 +101306,7 @@ dictionary StorageEventInit : EventInit {
        -
        ASCII letter
        +
        ASCII alpha
        Create a new end tag token, set its tag name to the empty string. Reconsume in the RAWTEXT end tag name state. @@ -101465,12 +101343,12 @@ dictionary StorageEventInit : EventInit { data state and emit the current tag token. Otherwise, treat it as per the "anything else" entry below.
        -
        Uppercase ASCII letter
        +
        ASCII upper alpha
        Append the lowercase version of the current input character (add 0x0020 to the character's code point) to the current tag token's tag name. Append the current input character to the temporary buffer.
        -
        Lowercase ASCII letter
        +
        ASCII lower alpha
        Append the current input character to the current tag token's tag name. Append the current input character to the temporary buffer.
        @@ -101512,7 +101390,7 @@ dictionary StorageEventInit : EventInit {
        -
        ASCII letter
        +
        ASCII alpha
        Create a new end tag token, set its tag name to the empty string. Reconsume in the script data end tag name state. @@ -101549,12 +101427,12 @@ dictionary StorageEventInit : EventInit { data state and emit the current tag token. Otherwise, treat it as per the "anything else" entry below.
        -
        Uppercase ASCII letter
        +
        ASCII upper alpha
        Append the lowercase version of the current input character (add 0x0020 to the character's code point) to the current tag token's tag name. Append the current input character to the temporary buffer.
        -
        Lowercase ASCII letter
        +
        ASCII lower alpha
        Append the current input character to the current tag token's tag name. Append the current input character to the temporary buffer.
        @@ -101692,7 +101570,7 @@ dictionary StorageEventInit : EventInit {
        Set the temporary buffer to the empty string. Switch to the script data escaped end tag open state.
        -
        ASCII letter
        +
        ASCII alpha
        Set the temporary buffer to the empty string. Emit a U+003C LESS-THAN SIGN character token. Reconsume in the script data double escape start state.
        @@ -101710,7 +101588,7 @@ dictionary StorageEventInit : EventInit {
        -
        ASCII letter
        +
        ASCII alpha
        Create a new end tag token. Reconsume in the script data escaped end tag name state. (Don't emit the token yet; further details will be filled in before it is emitted.)
        @@ -101747,12 +101625,12 @@ dictionary StorageEventInit : EventInit { data state and emit the current tag token. Otherwise, treat it as per the "anything else" entry below.
        -
        Uppercase ASCII letter
        +
        ASCII upper alpha
        Append the lowercase version of the current input character (add 0x0020 to the character's code point) to the current tag token's tag name. Append the current input character to the temporary buffer.
        -
        Lowercase ASCII letter
        +
        ASCII lower alpha
        Append the current input character to the current tag token's tag name. Append the current input character to the temporary buffer.
        @@ -101784,12 +101662,12 @@ dictionary StorageEventInit : EventInit { Otherwise, switch to the script data escaped state. Emit the current input character as a character token.
      -
      Uppercase ASCII letter
      +
      ASCII upper alpha
      Append the lowercase version of the current input character (add 0x0020 to the character's code point) to the temporary buffer. Emit the current input character as a character token.
      -
      Lowercase ASCII letter
      +
      ASCII lower alpha
      Append the current input character to the temporary buffer. Emit the current input character as a character token.
      @@ -101919,12 +101797,12 @@ dictionary StorageEventInit : EventInit { switch to the script data double escaped state. Emit the current input character as a character token. -
      Uppercase ASCII letter
      +
      ASCII upper alpha
      Append the lowercase version of the current input character (add 0x0020 to the character's code point) to the temporary buffer. Emit the current input character as a character token.
      -
      Lowercase ASCII letter
      +
      ASCII lower alpha
      Append the current input character to the temporary buffer. Emit the current input character as a character token.
      @@ -101984,7 +101862,7 @@ dictionary StorageEventInit : EventInit {
      U+003D EQUALS SIGN (=)
      Switch to the before attribute value state.
      -
      Uppercase ASCII letter
      +
      ASCII lower alpha
      Append the lowercase version of the current input character (add 0x0020 to the character's code point) to the current attribute's name.
      @@ -102491,7 +102369,7 @@ dictionary StorageEventInit : EventInit {
      U+0020 SPACE
      Ignore the character.
      -
      Uppercase ASCII letter
      +
      ASCII upper alpha
      Create a new DOCTYPE token. Set the token's name to the lowercase version of the current input character (add 0x0020 to the character's code point). Switch to the DOCTYPE name state.
      @@ -102532,7 +102410,7 @@ dictionary StorageEventInit : EventInit {
      U+003E GREATER-THAN SIGN (>)
      Switch to the data state. Emit the current DOCTYPE token.
      -
      Uppercase ASCII letter
      +
      ASCII upper alpha
      Append the lowercase version of the current input character (add 0x0020 to the character's code point) to the current DOCTYPE token's name.
      @@ -103052,9 +102930,9 @@ dictionary StorageEventInit : EventInit { buffer">temporary buffer when it's consumed.

      If no match can be made and the temporary buffer - consists of a U+0026 AMPERSAND character (&) followed by a sequence of one or more - alphanumeric ASCII characters and a U+003B SEMICOLON character (;), then this is a - parse error.

      + consists of a U+0026 AMPERSAND character (&) followed by a sequence of one or more ASCII alphanumerics and a U+003B SEMICOLON character (;), + then this is a parse error.

      If no match can be made, switch to the character reference end state.

      @@ -103062,10 +102940,10 @@ dictionary StorageEventInit : EventInit { state">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 - alphanumeric ASCII character, then, for - historical reasons, switch to the character reference end state. + 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 last character matched is not a U+003B SEMICOLON character (;), this is a parse error.

      @@ -103155,13 +103033,13 @@ dictionary StorageEventInit : EventInit {
      -
      Uppercase ASCII hex digit
      +
      ASCII upper hex digit
      Multiply the character reference code by 16. Add a numeric version of the current input character as a hexademical digit (subtract 0x0037 from the character's code point) to the character reference code.
      -
      Lowercase ASCII hex digit
      +
      ASCII lower hex digit
      Multiply the character reference code by 16. Add a numeric version of the current input character as a hexademical digit (subtract 0x0057 from the character's code point) to the pending table - character tokens list are character tokens that are not space characters, then this is a parse error: reprocess the - character tokens in the pending table character - tokens list using the rules given in the "anything else" entry in the "in table" insertion mode.

      + character tokens list are character tokens that are not ASCII whitespace, + then this is a parse error: reprocess the character tokens in the pending table character tokens list using the + rules given in the "anything else" entry in the "in + table" insertion mode.