()
| 5 | // Flags: --turbofan --allow-natives-syntax --interrupt-budget=1024 |
| 6 | |
| 7 | function check() { |
| 8 | // Equal prefix. |
| 9 | assertTrue("asdf".localeCompare("asdf") == 0); |
| 10 | assertTrue("asd".localeCompare("asdf") < 0); |
| 11 | assertTrue("asdff".localeCompare("asdf") > 0); |
| 12 | |
| 13 | // Completely Ignorable. |
| 14 | assertEquals("asdf".localeCompare("asdf\01"), 0); |
| 15 | assertEquals("asdf".localeCompare("as\01df"), 0); |
| 16 | assertEquals("asdf".localeCompare("\01asdf"), 0); |
| 17 | |
| 18 | // Chars differ. |
| 19 | assertTrue("asdf".localeCompare("asdq") < 0); |
| 20 | assertTrue("asdq".localeCompare("asdf") > 0); |
| 21 | |
| 22 | // Interesting locales. |
| 23 | assertEquals('ö'.localeCompare('oe', 'de'), -1); |
| 24 | assertEquals('Ö'.localeCompare('oe', 'de'), -1); |
| 25 | assertEquals('ö'.localeCompare('o', 'de-u-co-phonebk'), 1); |
| 26 | assertEquals('ö'.localeCompare('p', 'de-u-co-phonebk'), -1); |
| 27 | assertEquals('Ö'.localeCompare('o', 'de-u-co-phonebk'), 1); |
| 28 | assertEquals('Ö'.localeCompare('p', 'de-u-co-phonebk'), -1); |
| 29 | assertEquals('ö'.localeCompare('o\u0308', 'de-u-co-phonebk'), 0); |
| 30 | assertEquals('ö'.localeCompare('O\u0308', 'de-u-co-phonebk'), -1); |
| 31 | assertEquals('Ö'.localeCompare('o\u0308', 'de-u-co-phonebk'), 1); |
| 32 | assertEquals('Ö'.localeCompare('O\u0308', 'de-u-co-phonebk'), 0); |
| 33 | |
| 34 | assertEquals('ch'.localeCompare('ca', 'cs-CZ'), 1); |
| 35 | assertEquals('AA'.localeCompare('A-A', 'th'), 0); |
| 36 | |
| 37 | // Invalid locales. Executed on slow path. |
| 38 | assertTrue("asdf".localeCompare("asdf", 0) == 0); |
| 39 | assertTrue("asdf".localeCompare("asdf", NaN) == 0); |
| 40 | |
| 41 | // Attempt to hit different cases of the localeCompare fast path. |
| 42 | assertEquals('aAaaaö'.localeCompare('aaaaaö', 'en-US'), 1); |
| 43 | assertEquals('aaaaaöA'.localeCompare('aaaaaöa', 'en-US'), 1); |
| 44 | assertEquals('ab\u0308'.localeCompare('aa\u0308', 'en-US'), 1); |
| 45 | assertEquals('aA'.localeCompare('aaa', 'en-US'), -1); |
| 46 | assertEquals('aa'.localeCompare('aAa', 'en-US'), -1); |
| 47 | assertEquals('aA'.localeCompare('aa', 'en-US'), 1); |
| 48 | assertEquals('aa'.localeCompare('aA', 'en-US'), -1); |
| 49 | } |
| 50 | |
| 51 | // TODO(tebbi): Make isOptimized() from mjsunit.js available in intl tests. |
| 52 | function isOptimized(fun) { |
no test coverage detected
searching dependent graphs…