From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../toLocaleUpperCase/special_casing_Lithuanian.js | 115 +++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 js/src/tests/test262/intl402/String/prototype/toLocaleUpperCase/special_casing_Lithuanian.js (limited to 'js/src/tests/test262/intl402/String/prototype/toLocaleUpperCase/special_casing_Lithuanian.js') diff --git a/js/src/tests/test262/intl402/String/prototype/toLocaleUpperCase/special_casing_Lithuanian.js b/js/src/tests/test262/intl402/String/prototype/toLocaleUpperCase/special_casing_Lithuanian.js new file mode 100644 index 0000000000..2dfefd9851 --- /dev/null +++ b/js/src/tests/test262/intl402/String/prototype/toLocaleUpperCase/special_casing_Lithuanian.js @@ -0,0 +1,115 @@ +// Copyright (C) 2015 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: > + Check if String.prototype.toLocaleUpperCase supports language-sensitive mappings defined in SpecialCasings (Lithuanian) +info: | + The result must be derived according to the case mappings in the Unicode character database (this explicitly + includes not only the UnicodeData.txt file, but also the SpecialCasings.txt file that accompanies it). +es5id: 15.5.4.16 +es6id: 21.1.3.21 +---*/ + +// SpecialCasing.txt, conditional, language-sensitive mappings (Lithuanian). + +// COMBINING DOT ABOVE (U+0307) not removed when uppercasing capital I and J. +assert.sameValue( + "I\u0307".toLocaleUpperCase("lt"), + "I\u0307", + "COMBINING DOT ABOVE preceded by LATIN CAPITAL LETTER I" +); +assert.sameValue( + "J\u0307".toLocaleUpperCase("lt"), + "J\u0307", + "COMBINING DOT ABOVE preceded by LATIN CAPITAL LETTER J" +); + + +// Code points with Soft_Dotted property (Unicode 5.1, PropList.txt) +var softDotted = [ + "\u0069", "\u006A", // LATIN SMALL LETTER I..LATIN SMALL LETTER J + "\u012F", // LATIN SMALL LETTER I WITH OGONEK + "\u0249", // LATIN SMALL LETTER J WITH STROKE + "\u0268", // LATIN SMALL LETTER I WITH STROKE + "\u029D", // LATIN SMALL LETTER J WITH CROSSED-TAIL + "\u02B2", // MODIFIER LETTER SMALL J + "\u03F3", // GREEK LETTER YOT + "\u0456", // CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + "\u0458", // CYRILLIC SMALL LETTER JE + "\u1D62", // LATIN SUBSCRIPT SMALL LETTER I + "\u1D96", // LATIN SMALL LETTER I WITH RETROFLEX HOOK + "\u1DA4", // MODIFIER LETTER SMALL I WITH STROKE + "\u1DA8", // MODIFIER LETTER SMALL J WITH CROSSED-TAIL + "\u1E2D", // LATIN SMALL LETTER I WITH TILDE BELOW + "\u1ECB", // LATIN SMALL LETTER I WITH DOT BELOW + "\u2071", // SUPERSCRIPT LATIN SMALL LETTER I + "\u2148", "\u2149", // DOUBLE-STRUCK ITALIC SMALL I..DOUBLE-STRUCK ITALIC SMALL J + "\u2C7C", // LATIN SUBSCRIPT SMALL LETTER J + "\uD835\uDC22", "\uD835\uDC23", // MATHEMATICAL BOLD SMALL I..MATHEMATICAL BOLD SMALL J + "\uD835\uDC56", "\uD835\uDC57", // MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL J + "\uD835\uDC8A", "\uD835\uDC8B", // MATHEMATICAL BOLD ITALIC SMALL I..MATHEMATICAL BOLD ITALIC SMALL J + "\uD835\uDCBE", "\uD835\uDCBF", // MATHEMATICAL SCRIPT SMALL I..MATHEMATICAL SCRIPT SMALL J + "\uD835\uDCF2", "\uD835\uDCF3", // MATHEMATICAL BOLD SCRIPT SMALL I..MATHEMATICAL BOLD SCRIPT SMALL J + "\uD835\uDD26", "\uD835\uDD27", // MATHEMATICAL FRAKTUR SMALL I..MATHEMATICAL FRAKTUR SMALL J + "\uD835\uDD5A", "\uD835\uDD5B", // MATHEMATICAL DOUBLE-STRUCK SMALL I..MATHEMATICAL DOUBLE-STRUCK SMALL J + "\uD835\uDD8E", "\uD835\uDD8F", // MATHEMATICAL BOLD FRAKTUR SMALL I..MATHEMATICAL BOLD FRAKTUR SMALL J + "\uD835\uDDC2", "\uD835\uDDC3", // MATHEMATICAL SANS-SERIF SMALL I..MATHEMATICAL SANS-SERIF SMALL J + "\uD835\uDDF6", "\uD835\uDDF7", // MATHEMATICAL SANS-SERIF BOLD SMALL I..MATHEMATICAL SANS-SERIF BOLD SMALL J + "\uD835\uDE2A", "\uD835\uDE2B", // MATHEMATICAL SANS-SERIF ITALIC SMALL I..MATHEMATICAL SANS-SERIF ITALIC SMALL J + "\uD835\uDE5E", "\uD835\uDE5F", // MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J + "\uD835\uDE92", "\uD835\uDE93", // MATHEMATICAL MONOSPACE SMALL I..MATHEMATICAL MONOSPACE SMALL J +]; +assert.sameValue(softDotted.length, 46, "Total code points with Soft_Dotted property"); + +function charInfo(ch) { + function hexString(n) { + var s = n.toString(16).toUpperCase(); + return "0000".slice(s.length) + s; + } + + if (ch.length === 1) { + return "U+" + hexString(ch.charCodeAt(0)); + } + var high = ch.charCodeAt(0); + var low = ch.charCodeAt(1); + var codePoint = ((high << 10) + low) + (0x10000 - (0xD800 << 10) - 0xDC00); + return "U+" + hexString(codePoint) + " = " + hexString(high) + " " + hexString(low); +} + + +// COMBINING DOT ABOVE (U+0307) removed when preceded by Soft_Dotted. +// Character directly preceded by Soft_Dotted. +for (var i = 0; i < softDotted.length; ++i) { + assert.sameValue( + (softDotted[i] + "\u0307").toLocaleUpperCase("lt"), + softDotted[i].toLocaleUpperCase("und"), + "COMBINING DOT ABOVE preceded by Soft_Dotted (" + charInfo(softDotted[i]) + ")" + ); +} + + +// COMBINING DOT ABOVE (U+0307) removed if preceded by Soft_Dotted. +// Character not directly preceded by Soft_Dotted. +// - COMBINING DOT BELOW (U+0323), combining class 220 (Below) +for (var i = 0; i < softDotted.length; ++i) { + assert.sameValue( + (softDotted[i] + "\u0323\u0307").toLocaleUpperCase("lt"), + softDotted[i].toLocaleUpperCase("und") + "\u0323", + "COMBINING DOT ABOVE preceded by Soft_Dotted (" + charInfo(softDotted[i]) + "), COMBINING DOT BELOW" + ); +} + + +// COMBINING DOT ABOVE removed if preceded by Soft_Dotted. +// Character not directly preceded by Soft_Dotted. +// - PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE (U+101FD = D800 DDFD), combining class 220 (Below) +for (var i = 0; i < softDotted.length; ++i) { + assert.sameValue( + (softDotted[i] + "\uD800\uDDFD\u0307").toLocaleUpperCase("lt"), + softDotted[i].toLocaleUpperCase("und") + "\uD800\uDDFD", + "COMBINING DOT ABOVE preceded by Soft_Dotted (" + charInfo(softDotted[i]) + "), PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE" + ); +} + +reportCompare(0, 0); -- cgit v1.2.3