chore(*): remove manualLowercase & manualUppercase functions
The `manualLowercase` & `manualUppercase` functions were inspired by Google Caja code which worked around Java issues where problems with `toLowerCase` working differently in Turkish locale are well known[1]. In JavaScript `String#toLowerCase` is defined in the ECMAScript spec and all implementations are required to lowercase I in the same way, regardless of the current locale. Differences may (and do) happen only in `String#toLocaleLowerCase`. The mirroring of the Java workarounds in Caja was needed due to an old Rhino bug. Rhino is a pre-Nashorn JavaScript interpreter written in Java and it used to delegate `String.prototype.toLowerCase` to `java.lang.String.toLowerCase`. This has since been long fixed. Other libraries doing string normalization, like jQuery or DOMPurify don't apply special lowercasing logic in a Turkish environment. Therefore, the `manualLowercase` & `manualUppercase` logic is dead code in AngularJS and can be removed. Also, the `manualLowercase` & `manualUppercase` functions are incomplete; they only lowercase ASCII characters which is different to native `String#toLowerCase`. Since those functions are used in many places in the library, they would break a lot of code. For example, the lowercase filter would not lowercase Ω to ω but leave it as Ω. [1] https://garygregory.wordpress.com/2015/11/03/java-lowercase-conversion-turkey/ Closes #15890 Ref #11387
M
Michał Gołębiowski-Owczarek committed
5b7e4b43942da932d4377e8af0df5b2fc86efa61
Parent: 77f26bd
Committed by GitHub <noreply@github.com>
on 4/13/2018, 7:43:38 AM