Improve toLowerCase and toUpperCase functions. (#1575)

Language-sensitive mappings are not processed now.

Fixes #323

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
This commit is contained in:
Robert Sipka
2017-02-15 15:57:55 +01:00
committed by László Langó
parent 025a99ccbb
commit 1b5f839db9
5 changed files with 1163 additions and 5 deletions
@@ -12,7 +12,72 @@
// See the License for the specific language governing permissions and
// limitations under the License.
// Conversion
// LATIN SMALL LIGATURES
// LATIN SMALL LIGATURE FF
assert ("\ufb00".toLowerCase() == "\ufb00");
assert ("\ufb00".toUpperCase() == "\u0046\u0046");
// LATIN SMALL LIGATURE FI
assert ("\ufb01".toLowerCase() == "\ufb01");
assert ("\ufb01".toUpperCase() == "\u0046\u0049");
// LATIN SMALL LIGATURE FL
assert ("\ufb02".toLowerCase() == "\ufb02");
assert ("\ufb02".toUpperCase() == "\u0046\u004c");
// LATIN SMALL LIGATURE FFI
assert ("\ufb03".toLowerCase() == "\ufb03");
assert ("\ufb03".toUpperCase() == "\u0046\u0046\u0049");
// LATIN SMALL LIGATURE FFL
assert ("\ufb04".toLowerCase() == "\ufb04");
assert ("\ufb04".toUpperCase() == "\u0046\u0046\u004c");
// LATIN SMALL LIGATURE LONG S T
assert ("\ufb05".toLowerCase() == "\ufb05");
assert ("\ufb05".toUpperCase() == "\u0053\u0054");
// LATIN SMALL LIGATURE ST
assert ("\ufb06".toLowerCase() == "\ufb06");
assert ("\ufb06".toUpperCase() == "\u0053\u0054");
// LATIN CAPITAL LETTER I WITH DOT ABOVE
assert ("\u0130".toLowerCase() == "\u0069\u0307");
assert ("\u0130".toUpperCase() == "\u0130");
// LATIN SMALL LETTER SHARP S
assert ("\u00df".toLowerCase() == "\u00df");
assert ("\u00df".toUpperCase() == "\u0053\u0053");
// LATIN CAPITAL LETTER I WITH BREVE
assert ("\u012c".toLowerCase() == "\u012d");
assert ("\u012c".toUpperCase() == "\u012c");
// LATIN SMALL LETTER I WITH BREVE
assert ("\u012d".toLowerCase() == "\u012d")
assert ("\u012d".toUpperCase() == "\u012c");
// Check randomly selected characters from conversion tables
// lower-case conversions
assert ("\u01c5\u01c8\u01cb\u212b".toLowerCase() == "\u01c6\u01c9\u01cc\u00e5");
assert ("\u0130".toLowerCase() == "\u0069\u0307");
// upper-case conversions
assert ("\u00b5\u017f".toUpperCase() == "\u039c\u0053");
assert ("\ufb17\u00df\u1fbc".toUpperCase() == "\u0544\u053D\u0053\u0053\u0391\u0399");
assert ("\ufb03\ufb04".toUpperCase() == "\u0046\u0046\u0049\u0046\u0046\u004c");
// character case ranges
assert ("\u0100\u0101\u0139\u03fa\ua7b4".toLowerCase() == "\u0101\u0101\u013a\u03fb\ua7b5");
assert ("\u0101\u0100\u013a\u03fb\ua7b5".toUpperCase() == "\u0100\u0100\u0139\u03fa\ua7b4");
// character pairs
assert ("\u0178\ua7b1\u0287\ua7b3".toLowerCase() == "\u00ff\u0287\u0287\uab53");
assert ("\u00ff\u0287\ua7b1\uab53".toUpperCase() == "\u0178\ua7b1\ua7b1\ua7b3");
// character case ranges
assert ("\u00e0\u00c0\u00c1\u00c2\uff21".toLowerCase() == "\u00e0\u00e0\u00e1\u00e2\uff41");
assert ("\u00e0\u00c0\u00e1\u00e2\uff41".toUpperCase() == "\u00c0\u00c0\u00c1\u00c2\uff21");
// lower-case ranges
assert ("\u1f88\u1f98\u1fa8\u1f8b\u1faf".toLowerCase() == "\u1f80\u1f90\u1fa0\u1f83\u1fa7");
// upper-case special ranges
assert ("\u1f80\u1f81\u1fa7".toUpperCase() == "\u1f08\u0399\u1f09\u0399\u1f6f\u0399");
assert ("0123456789abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXYZ".toLowerCase()
== "0123456789abcdefghijklmnopqrstuvwxzyabcdefghijklmnopqrstuvwxyz");