diff --git a/spec.html b/spec.html
index e8fa3043cf..02b91dfcc9 100644
--- a/spec.html
+++ b/spec.html
@@ -37175,12 +37175,11 @@
1. If _rer_.[[IgnoreCase]] is *false*, return _ch_.
1. Assert: _ch_ is a UTF-16 code unit.
1. Let _cp_ be the code point whose numeric value is the numeric value of _ch_.
- 1. Let _u_ be toUppercase(« _cp_ »), according to the Unicode Default Case Conversion algorithm.
- 1. Let _uStr_ be CodePointsToString(_u_).
- 1. If the length of _uStr_ ≠ 1, return _ch_.
- 1. Let _cu_ be _uStr_'s single code unit element.
- 1. If the numeric value of _ch_ ≥ 128 and the numeric value of _cu_ < 128, return _ch_.
- 1. Return _cu_.
+ 1. Let _mapped_ be toUppercase(« _cp_ »), according to the Unicode Default Case Conversion algorithm.
+ 1. If the number of elements in _mapped_ ≠ 1 or the length of CodePointsToString(_mapped_) ≠ 1, return _ch_.
+ 1. Let _mappedCP_ be the single code point element of _mapped_.
+ 1. If the numeric value of _ch_ ≥ 128 and _mappedCP_ < 128, return _ch_.
+ 1. Return the code unit whose numeric value is _mappedCP_.
In case-insignificant matches when HasEitherUnicodeFlag(_rer_) is *true*, all characters are implicitly case-folded using the simple mapping provided by the Unicode Standard immediately before they are compared. The simple mapping always maps to a single code point, so it does not map, for example, `ß` (U+00DF LATIN SMALL LETTER SHARP S) to `ss` or `SS`. It may however map code points outside the Basic Latin block to code points within it—for example, `ſ` (U+017F LATIN SMALL LETTER LONG S) case-folds to `s` (U+0073 LATIN SMALL LETTER S) and `K` (U+212A KELVIN SIGN) case-folds to `k` (U+006B LATIN SMALL LETTER K). Strings containing those code points are matched by regular expressions such as `/[a-z]/ui`.