1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
// |str.indexOf(searchStr) == 0| is compiled as |str.startsWith(searchStr)|.
// |str.indexOf(searchStr) != 0| is compiled as |!str.startsWith(searchStr)|.
const strings = [
"",
"a", "b",
"ab", "ba", "ac", "ca",
"aba", "abb", "abc", "aca",
];
function StringIndexOf(str, searchStr) {
// Prevent Warp compilation when computing the expected result.
with ({});
return str.indexOf(searchStr);
}
for (let str of strings) {
for (let searchStr of strings) {
let startsWith = str.indexOf(searchStr) === 0;
assertEq(startsWith, str.startsWith(searchStr));
assertEq(startsWith, StringIndexOf(str, searchStr) === 0);
let notStartsWith = str.indexOf(searchStr) !== 0;
assertEq(notStartsWith, !str.startsWith(searchStr));
assertEq(notStartsWith, StringIndexOf(str, searchStr) !== 0);
}
}
|