diff --git a/spec.html b/spec.html index f18191f2fa5..4c869347727 100644 --- a/spec.html +++ b/spec.html @@ -14563,6 +14563,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). +
  • @@ -14689,12 +14692,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` @@ -14714,7 +14723,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.

    @@ -14745,7 +14753,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*. @@ -14766,13 +14774,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|. @@ -14851,7 +14859,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.

    @@ -41351,6 +41359,7 @@

    Lexical Grammar

    + @@ -41702,7 +41711,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: