summaryrefslogtreecommitdiff
path: root/deps/v8/test/intl/string-localecompare.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/intl/string-localecompare.js')
-rw-r--r--deps/v8/test/intl/string-localecompare.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/deps/v8/test/intl/string-localecompare.js b/deps/v8/test/intl/string-localecompare.js
new file mode 100644
index 0000000000..82bbcc92c8
--- /dev/null
+++ b/deps/v8/test/intl/string-localecompare.js
@@ -0,0 +1,36 @@
+// Copyright 2021 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.
+
+// Equal prefix.
+assertTrue("asdf".localeCompare("asdf") == 0);
+assertTrue("asd".localeCompare("asdf") < 0);
+assertTrue("asdff".localeCompare("asdf") > 0);
+
+// Chars differ.
+assertTrue("asdf".localeCompare("asdq") < 0);
+assertTrue("asdq".localeCompare("asdf") > 0);
+
+// Interesting locales.
+assertEquals('ö'.localeCompare('oe', 'de'), -1);
+assertEquals('Ö'.localeCompare('oe', 'de'), -1);
+assertEquals('ö'.localeCompare('o', 'de-u-co-phonebk'), 1);
+assertEquals('ö'.localeCompare('p', 'de-u-co-phonebk'), -1);
+assertEquals('Ö'.localeCompare('o', 'de-u-co-phonebk'), 1);
+assertEquals('Ö'.localeCompare('p', 'de-u-co-phonebk'), -1);
+assertEquals('ö'.localeCompare('o\u0308', 'de-u-co-phonebk'), 0);
+assertEquals('ö'.localeCompare('O\u0308', 'de-u-co-phonebk'), -1);
+assertEquals('Ö'.localeCompare('o\u0308', 'de-u-co-phonebk'), 1);
+assertEquals('Ö'.localeCompare('O\u0308', 'de-u-co-phonebk'), 0);
+
+assertEquals('ch'.localeCompare('ca', 'cs-CZ'), 1);
+assertEquals('AA'.localeCompare('A-A', 'th'), 0);
+
+// Attempt to hit different cases of the localeCompare fast path.
+assertEquals('aAaaaö'.localeCompare('aaaaaö', 'en-US'), 1);
+assertEquals('aaaaaöA'.localeCompare('aaaaaöa', 'en-US'), 1);
+assertEquals('ab\u0308'.localeCompare('aa\u0308', 'en-US'), 1);
+assertEquals('aA'.localeCompare('aaa', 'en-US'), -1);
+assertEquals('aa'.localeCompare('aAa', 'en-US'), -1);
+assertEquals('aA'.localeCompare('aa', 'en-US'), 1);
+assertEquals('aa'.localeCompare('aA', 'en-US'), -1);