diff options
Diffstat (limited to 'deps/v8/test/intl/string-localecompare.js')
-rw-r--r-- | deps/v8/test/intl/string-localecompare.js | 36 |
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); |