Index: test/intl/general/case-mapping.js |
diff --git a/test/intl/general/case-mapping.js b/test/intl/general/case-mapping.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6f8299553f39b66c1f7b8caca7d0981935023803 |
--- /dev/null |
+++ b/test/intl/general/case-mapping.js |
@@ -0,0 +1,26 @@ |
+// Copyright 2015 the V8 project authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Some edge cases that unibrow got wrong |
+ |
+assertEquals("𐐘", "𐑀".toUpperCase()); |
+assertEquals("𐑀", "𐐘".toLowerCase()); |
+assertEquals("σ", "Σ".toLowerCase()); |
+ |
+ |
+// Some different paths in the ICU case conversion fastpath |
+ |
+assertEquals("σς", "\u03A3\u03A3".toLowerCase()); |
+// Expand sharp s in latin1 fastpath |
+assertEquals("ASSB", "A\u00DFB".toUpperCase()); |
+assertEquals("AB", "Ab".toUpperCase()); |
+// Find first upper case in fastpath |
+assertEquals("ab", "aB".toLowerCase()); |
+assertEquals("AÜ", "aü".toUpperCase()); |
+assertEquals("AÜ", "AÜ".toUpperCase()); |
+assertEquals("aü", "aü".toLowerCase()); |
+assertEquals("aü", "AÜ".toLowerCase()); |
+assertEquals("aü", "AÜ".toLowerCase()); |
+// Reallocate and try again in callout to ICU |
+assertEquals("CSSBẶ", "c\u00DFbặ".toUpperCase()); |