Skip to content

Commit

Permalink
also escape leading ascii letters
Browse files Browse the repository at this point in the history
  • Loading branch information
bakkot authored and ljharb committed Apr 9, 2024
1 parent eef281a commit 27eee05
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions spec.emu
Original file line number Diff line number Diff line change
Expand Up @@ -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_.
Expand Down

0 comments on commit 27eee05

Please sign in to comment.