string-includes.js (1713B)
1 assertEq("abc".includes("a"), true); 2 assertEq("abc".includes("b"), true); 3 assertEq("abc".includes("abc"), true); 4 assertEq("abc".includes("bc"), true); 5 assertEq("abc".includes("d"), false); 6 assertEq("abc".includes("abcd"), false); 7 assertEq("abc".includes("ac"), false); 8 assertEq("abc".includes("abc", 0), true); 9 assertEq("abc".includes("bc", 0), true); 10 assertEq("abc".includes("de", 0), false); 11 assertEq("abc".includes("bc", 1), true); 12 assertEq("abc".includes("c", 1), true); 13 assertEq("abc".includes("a", 1), false); 14 assertEq("abc".includes("abc", 1), false); 15 assertEq("abc".includes("c", 2), true); 16 assertEq("abc".includes("d", 2), false); 17 assertEq("abc".includes("dcd", 2), false); 18 assertEq("abc".includes("a", 42), false); 19 assertEq("abc".includes("a", Infinity), false); 20 assertEq("abc".includes("ab", -43), true); 21 assertEq("abc".includes("cd", -42), false); 22 assertEq("abc".includes("ab", -Infinity), true); 23 assertEq("abc".includes("cd", -Infinity), false); 24 assertEq("abc".includes("ab", NaN), true); 25 assertEq("abc".includes("cd", NaN), false); 26 var myobj = {toString : () => "abc", includes : String.prototype.includes}; 27 assertEq(myobj.includes("abc"), true); 28 assertEq(myobj.includes("cd"), false); 29 var gotStr = false, gotPos = false; 30 myobj = {toString : (function () { 31 assertEq(gotPos, false); 32 gotStr = true; 33 return "xyz"; 34 }), 35 includes : String.prototype.includes}; 36 var idx = {valueOf : (function () { 37 assertEq(gotStr, true); 38 gotPos = true; 39 return 42; 40 })}; 41 myobj.includes("elephant", idx); 42 assertEq(gotPos, true); 43 assertEq("xyzzy".includes("zy\0", 2), false); 44 var dots = Array(10000).join('.'); 45 assertEq(dots.includes("\x01", 10000), false); 46 assertEq(dots.includes("\0", 10000), false);