diff --git a/spec.emu b/spec.emu index 83fab36..5221cf3 100644 --- a/spec.emu +++ b/spec.emu @@ -31,9 +31,11 @@ contributors: 1. Let _escaped_ be the empty String. 1. Let _cpList_ be StringToCodePoints(_S_). 1. For each code point _c_ in _cpList_, do - 1. If _escaped_ is the empty String and _c_ is matched by |DecimalDigit|, then - 1. NOTE: Escaping a leading digit ensures that output corresponds with pattern text which may be used after a `\0` character escape or a |DecimalEscape| such as `\1` and still match _S_ rather than be interpreted as an extension of the preceding escape sequence. - 1. Set _escaped_ to the string-concatenation of _escaped_, the code unit 0x005C (REVERSE SOLIDUS), *"x3"*, and the code unit whose numeric value is the numeric value of _c_. + 1. If _escaped_ is the empty String, and _c_ is matched by |DecimalDigit| or |AsciiLetter|, then + 1. NOTE: Escaping a leading digit ensures that output corresponds with pattern text which may be used after a `\0` character escape or a |DecimalEscape| such as `\1` and still match _S_ rather than be interpreted as an extension of the preceding escape sequence. Escaping a leading ASCII letter does the same for the context after `\c`. + 1. Let _hex_ be Number::toString(đť”˝(_c_), 16). + 1. Assert: The length of _hex_ is 2. + 1. Set _escaped_ to the string-concatenation of the code unit 0x005C (REVERSE SOLIDUS), *"x"*, and _hex_. 1. Else, 1. Set _escaped_ to the string-concatenation of _escaped_ and EncodeForRegExpEscape(_c_). 1. Return _escaped_. @@ -52,13 +54,17 @@ contributors: