diff --git a/spec.html b/spec.html index 44f14fbf8ac..6fa20a1b0c6 100644 --- a/spec.html +++ b/spec.html @@ -14608,6 +14608,9 @@

Static Semantics: SV

  • The SV of UnicodeEscapeSequence :: `u{` CodePoint `}` is the result of performing UTF16EncodeCodePoint on the MV of |CodePoint|.
  • +
  • + The SV of TemplateEscapeSequence :: `0` is the String value consisting of the code unit 0x0000 (NULL). +
  • @@ -14734,12 +14737,18 @@

    Syntax

    TemplateCharacter :: `$` [lookahead != `{`] - `\` EscapeSequence + `\` TemplateEscapeSequence `\` NotEscapeSequence LineContinuation LineTerminatorSequence SourceCharacter but not one of ``` or `\` or `$` or LineTerminator + TemplateEscapeSequence :: + CharacterEscapeSequence + `0` [lookahead <! DecimalDigit] + HexEscapeSequence + UnicodeEscapeSequence + NotEscapeSequence :: `0` DecimalDigit DecimalDigit but not `0` @@ -14759,7 +14768,6 @@

    Syntax

    CodePoint :: HexDigits[~Sep] [> but only if MV of |HexDigits| ≤ 0x10FFFF] -

    A conforming implementation must not use the extended definition of |EscapeSequence| described in when parsing a |TemplateCharacter|.

    |TemplateSubstitutionTail| is used by the |InputElementTemplateTail| alternative lexical goal.

    @@ -14790,7 +14798,7 @@

    Static Semantics: TV and TRV

    The TV of TemplateCharacter :: `$` is the String value consisting of the code unit 0x0024 (DOLLAR SIGN).
  • - The TV of TemplateCharacter :: `\` EscapeSequence is the SV of |EscapeSequence|. + The TV of TemplateCharacter :: `\` TemplateEscapeSequence is the SV of |TemplateEscapeSequence|.
  • The TV of TemplateCharacter :: `\` NotEscapeSequence is *undefined*. @@ -14811,13 +14819,13 @@

    Static Semantics: TV and TRV

    The TRV of TemplateCharacter :: `$` is the String value consisting of the code unit 0x0024 (DOLLAR SIGN).
  • - The TRV of TemplateCharacter :: `\` EscapeSequence is the string-concatenation of the code unit 0x005C (REVERSE SOLIDUS) and the TRV of |EscapeSequence|. + The TRV of TemplateCharacter :: `\` TemplateEscapeSequence is the string-concatenation of the code unit 0x005C (REVERSE SOLIDUS) and the TRV of |TemplateEscapeSequence|.
  • The TRV of TemplateCharacter :: `\` NotEscapeSequence is the string-concatenation of the code unit 0x005C (REVERSE SOLIDUS) and the TRV of |NotEscapeSequence|.
  • - The TRV of EscapeSequence :: `0` is the String value consisting of the code unit 0x0030 (DIGIT ZERO). + The TRV of TemplateEscapeSequence :: `0` is the String value consisting of the code unit 0x0030 (DIGIT ZERO).
  • The TRV of NotEscapeSequence :: `0` DecimalDigit is the string-concatenation of the code unit 0x0030 (DIGIT ZERO) and the TRV of |DecimalDigit|. @@ -14896,7 +14904,7 @@

    Static Semantics: TV and TRV

  • -

    TV excludes the code units of |LineContinuation| while TRV includes them. <CR><LF> and <CR> |LineTerminatorSequence|s are normalized to <LF> for both TV and TRV. An explicit |EscapeSequence| is needed to include a <CR> or <CR><LF> sequence.

    +

    TV excludes the code units of |LineContinuation| while TRV includes them. <CR><LF> and <CR> |LineTerminatorSequence|s are normalized to <LF> for both TV and TRV. An explicit |TemplateEscapeSequence| is needed to include a <CR> or <CR><LF> sequence.

    @@ -41446,6 +41454,7 @@

    Lexical Grammar

    + @@ -41797,7 +41806,7 @@

    Syntax

    NonOctalDecimalEscapeSequence :: one of `8` `9` -

    This definition of |EscapeSequence| is not used in strict mode or when parsing |TemplateCharacter|.

    +

    This definition of |EscapeSequence| is not used in strict mode.

    It is possible for string literals to precede a Use Strict Directive that places the enclosing code in strict mode, and implementations must take care to not use this extended definition of |EscapeSequence| with such literals. For example, attempting to parse the following source text must fail: