diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /js/src/jit-test/tests/cacheir/string-lastIndexOf.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/jit-test/tests/cacheir/string-lastIndexOf.js')
-rw-r--r-- | js/src/jit-test/tests/cacheir/string-lastIndexOf.js | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/cacheir/string-lastIndexOf.js b/js/src/jit-test/tests/cacheir/string-lastIndexOf.js new file mode 100644 index 0000000000..f281d1eac1 --- /dev/null +++ b/js/src/jit-test/tests/cacheir/string-lastIndexOf.js @@ -0,0 +1,102 @@ +function testEmpty() { + var strings = [ + "", + "a", + "ab", + ]; + + for (var i = 0; i < 200; ++i) { + var str = strings[i % strings.length]; + assertEq(str.lastIndexOf(""), str.length); + } +} +testEmpty(); + +function testSingle() { + var strings = [ + "", + + "a", + "b", + + "aa", + "ab", + "ba", + "bb", + ]; + + var searchStrings = [ + "a", + "b", + ]; + + for (var i = 0; i < 200; ++i) { + var str = strings[i % strings.length]; + var searchString = searchStrings[i % searchStrings.length]; + + var j = str.length; + while (--j >= 0 && str[j] !== searchString); + + assertEq(str.lastIndexOf(searchString), j); + } +} +testSingle(); + +function testDouble() { + var strings = [ + "", + + "a", + "b", + + "aa", + "ab", + "ba", + "bb", + + "aaa", + "aab", + "aba", + "abb", + "baa", + "bab", + "bba", + "bbb", + + "aaaa", + "aaab", + "aaba", + "aabb", + "abaa", + "abab", + "abba", + "abbb", + + "baaa", + "baab", + "baba", + "babb", + "bbaa", + "bbab", + "bbba", + "bbbb", + ]; + + var searchStrings = [ + "aa", + "ab", + "ba", + "bb", + ]; + + for (var i = 0; i < 200; ++i) { + var str = strings[i % strings.length]; + var searchString = searchStrings[i % searchStrings.length]; + + var j = str.length; + while (--j >= 0 && (str[j] !== searchString[0] || str[j + 1] !== searchString[1])); + + assertEq(str.lastIndexOf(searchString), j); + } +} +testDouble(); |