|
@@ -2,21 +2,18 @@
|
|
var str = "foo";
|
|
var str = "foo";
|
|
var str2 = new String(str);
|
|
var str2 = new String(str);
|
|
str == str2;
|
|
str == str2;
|
|
-
|
|
|
|
// toUpperCase
|
|
// toUpperCase
|
|
"foo".toUpperCase() == "FOO";
|
|
"foo".toUpperCase() == "FOO";
|
|
"_bar".toUpperCase() == "_BAR";
|
|
"_bar".toUpperCase() == "_BAR";
|
|
"123b".toUpperCase() == "123B";
|
|
"123b".toUpperCase() == "123B";
|
|
"".toUpperCase() == "";
|
|
"".toUpperCase() == "";
|
|
"A".toUpperCase() == "A";
|
|
"A".toUpperCase() == "A";
|
|
-
|
|
|
|
// toLowerCase
|
|
// toLowerCase
|
|
"FOO".toLowerCase() == "foo";
|
|
"FOO".toLowerCase() == "foo";
|
|
"_BAR".toLowerCase() == "_bar";
|
|
"_BAR".toLowerCase() == "_bar";
|
|
"123B".toLowerCase() == "123b";
|
|
"123B".toLowerCase() == "123b";
|
|
"".toLowerCase() == "";
|
|
"".toLowerCase() == "";
|
|
"a".toLowerCase() == "a";
|
|
"a".toLowerCase() == "a";
|
|
-
|
|
|
|
// charAt
|
|
// charAt
|
|
var s = "foo1bar";
|
|
var s = "foo1bar";
|
|
s.charAt(0) == "f";
|
|
s.charAt(0) == "f";
|
|
@@ -27,11 +24,10 @@ s.charAt(4) == "b";
|
|
s.charAt(5) == "a";
|
|
s.charAt(5) == "a";
|
|
s.charAt(6) == "r";
|
|
s.charAt(6) == "r";
|
|
s.charAt(7) == "";
|
|
s.charAt(7) == "";
|
|
-s.charAt( -1) == "";
|
|
|
|
|
|
+s.charAt(-1) == "";
|
|
"".charAt(0) == "";
|
|
"".charAt(0) == "";
|
|
"".charAt(1) == "";
|
|
"".charAt(1) == "";
|
|
-"".charAt( -1) == "";
|
|
|
|
-
|
|
|
|
|
|
+"".charAt(-1) == "";
|
|
// charCodeAt
|
|
// charCodeAt
|
|
var s = "foo1bar";
|
|
var s = "foo1bar";
|
|
s.charCodeAt(0) == 102;
|
|
s.charCodeAt(0) == 102;
|
|
@@ -42,8 +38,7 @@ s.charCodeAt(4) == 98;
|
|
s.charCodeAt(5) == 97;
|
|
s.charCodeAt(5) == 97;
|
|
s.charCodeAt(6) == 114;
|
|
s.charCodeAt(6) == 114;
|
|
s.charCodeAt(7) == null;
|
|
s.charCodeAt(7) == null;
|
|
-s.charCodeAt( -1) == null;
|
|
|
|
-
|
|
|
|
|
|
+s.charCodeAt(-1) == null;
|
|
// code
|
|
// code
|
|
"f".code == 102;
|
|
"f".code == 102;
|
|
"o".code == 111;
|
|
"o".code == 111;
|
|
@@ -51,7 +46,6 @@ s.charCodeAt( -1) == null;
|
|
"b".code == 98;
|
|
"b".code == 98;
|
|
"a".code == 97;
|
|
"a".code == 97;
|
|
"r".code == 114;
|
|
"r".code == 114;
|
|
-
|
|
|
|
// indexOf
|
|
// indexOf
|
|
var s = "foo1bar";
|
|
var s = "foo1bar";
|
|
s.indexOf("") == 0;
|
|
s.indexOf("") == 0;
|
|
@@ -62,25 +56,47 @@ s.indexOf("b") == 4;
|
|
s.indexOf("a") == 5;
|
|
s.indexOf("a") == 5;
|
|
s.indexOf("r") == 6;
|
|
s.indexOf("r") == 6;
|
|
s.indexOf("z") == -1;
|
|
s.indexOf("z") == -1;
|
|
-//s.indexOf(null) == -1;
|
|
|
|
-//s.indexOf(null, 1) == -1;
|
|
|
|
-//s.indexOf(null, -1) == -1;
|
|
|
|
|
|
+// empty string
|
|
|
|
+s.indexOf("") == 0;
|
|
|
|
+s.indexOf("", -1) == 0;
|
|
|
|
+s.indexOf("", 0) == 0;
|
|
|
|
+s.indexOf("", 1) == 1;
|
|
|
|
+s.indexOf("", 2) == 2;
|
|
|
|
+s.indexOf("", 3) == 3;
|
|
|
|
+s.indexOf("", 4) == 4;
|
|
|
|
+s.indexOf("", 5) == 5;
|
|
|
|
+s.indexOf("", 6) == 6;
|
|
|
|
+s.indexOf("", 7) == 7;
|
|
|
|
+s.indexOf("", 8) == 7;
|
|
|
|
+// negative startIndex
|
|
|
|
+s.indexOf("f", -1) == 0;
|
|
|
|
+s.indexOf("o", -1) == 1;
|
|
|
|
+s.indexOf("1", -1) == 3;
|
|
|
|
+s.indexOf("b", -1) == 4;
|
|
|
|
+s.indexOf("a", -1) == 5;
|
|
|
|
+s.indexOf("r", -1) == 6;
|
|
|
|
+s.indexOf("z", -1) == -1;
|
|
|
|
+// startIndex >= length
|
|
|
|
+s.indexOf("f", 7) == -1;
|
|
|
|
+s.indexOf("o", 7) == -1;
|
|
|
|
+s.indexOf("1", 7) == -1;
|
|
|
|
+s.indexOf("b", 7) == -1;
|
|
|
|
+s.indexOf("a", 7) == -1;
|
|
|
|
+s.indexOf("r", 7) == -1;
|
|
|
|
+s.indexOf("z", 7) == -1;
|
|
|
|
+// s.indexOf(null) == -1;
|
|
|
|
+// s.indexOf(null, 1) == -1;
|
|
|
|
+// s.indexOf(null, -1) == -1;
|
|
s.indexOf("foo") == 0;
|
|
s.indexOf("foo") == 0;
|
|
s.indexOf("oo") == 1;
|
|
s.indexOf("oo") == 1;
|
|
-//s.indexOf("bart") == -1;
|
|
|
|
-//s.indexOf("r", -1) == -1;
|
|
|
|
-//s.indexOf("r", -10) == -1;
|
|
|
|
|
|
+// s.indexOf("bart") == -1;
|
|
s.indexOf("", 2) == 2;
|
|
s.indexOf("", 2) == 2;
|
|
s.indexOf("", 200) == s.length;
|
|
s.indexOf("", 200) == s.length;
|
|
s.indexOf("o", 1) == 1;
|
|
s.indexOf("o", 1) == 1;
|
|
s.indexOf("o", 2) == 2;
|
|
s.indexOf("o", 2) == 2;
|
|
s.indexOf("o", 3) == -1;
|
|
s.indexOf("o", 3) == -1;
|
|
-//s.indexOf("", -10) == 0;
|
|
|
|
-//s.indexOf("", 7) == 7; // see #8117
|
|
|
|
-//s.indexOf("", 8) == -1; // see #8117
|
|
|
|
s.indexOf("r", 7) == -1;
|
|
s.indexOf("r", 7) == -1;
|
|
s.indexOf("r", 8) == -1;
|
|
s.indexOf("r", 8) == -1;
|
|
-
|
|
|
|
// lastIndexOf
|
|
// lastIndexOf
|
|
var s = "foofoofoobarbar";
|
|
var s = "foofoofoobarbar";
|
|
s.lastIndexOf("") == s.length;
|
|
s.lastIndexOf("") == s.length;
|
|
@@ -95,9 +111,9 @@ s.lastIndexOf("barb") == 9;
|
|
s.lastIndexOf("barb", 12) == 9;
|
|
s.lastIndexOf("barb", 12) == 9;
|
|
s.lastIndexOf("barb", 13) == 9;
|
|
s.lastIndexOf("barb", 13) == 9;
|
|
s.lastIndexOf("z") == -1;
|
|
s.lastIndexOf("z") == -1;
|
|
-//s.lastIndexOf(null) == -1;
|
|
|
|
-//s.lastIndexOf(null, 1) == -1;
|
|
|
|
-//s.lastIndexOf(null, 14) == -1;
|
|
|
|
|
|
+// s.lastIndexOf(null) == -1;
|
|
|
|
+// s.lastIndexOf(null, 1) == -1;
|
|
|
|
+// s.lastIndexOf(null, 14) == -1;
|
|
s.lastIndexOf("", 2) == 2;
|
|
s.lastIndexOf("", 2) == 2;
|
|
s.lastIndexOf("", 200) == s.length;
|
|
s.lastIndexOf("", 200) == s.length;
|
|
s.lastIndexOf("r", 14) == 14;
|
|
s.lastIndexOf("r", 14) == 14;
|
|
@@ -111,14 +127,14 @@ s.lastIndexOf("bar", 9) == 9;
|
|
s.lastIndexOf("bar", 8) == -1;
|
|
s.lastIndexOf("bar", 8) == -1;
|
|
s.lastIndexOf("a", s.length) == 13;
|
|
s.lastIndexOf("a", s.length) == 13;
|
|
s.lastIndexOf("a", s.length + 9000) == 13;
|
|
s.lastIndexOf("a", s.length + 9000) == 13;
|
|
-
|
|
|
|
// split
|
|
// split
|
|
var s = "xfooxfooxxbarxbarxx";
|
|
var s = "xfooxfooxxbarxbarxx";
|
|
-s.split("x") == ["", "foo", "foo", "", "bar", "bar", "",""];
|
|
|
|
-s.split("xx") == ["xfooxfoo","barxbar",""];
|
|
|
|
-s.split("") == ["x", "f", "o", "o", "x", "f", "o", "o", "x", "x", "b", "a", "r", "x", "b", "a", "r", "x", "x"];
|
|
|
|
|
|
+s.split("x") == ["", "foo", "foo", "", "bar", "bar", "", ""];
|
|
|
|
+s.split("xx") == ["xfooxfoo", "barxbar", ""];
|
|
|
|
+s.split("") == [
|
|
|
|
+ "x", "f", "o", "o", "x", "f", "o", "o", "x", "x", "b", "a", "r", "x", "b", "a", "r", "x", "x"
|
|
|
|
+];
|
|
s.split("z") == ["xfooxfooxxbarxbarxx"];
|
|
s.split("z") == ["xfooxfooxxbarxbarxx"];
|
|
-
|
|
|
|
// substr
|
|
// substr
|
|
var s = "xfooxfooxxbarxbarxx";
|
|
var s = "xfooxfooxxbarxbarxx";
|
|
s.substr(0) == "xfooxfooxxbarxbarxx";
|
|
s.substr(0) == "xfooxfooxxbarxbarxx";
|
|
@@ -130,17 +146,16 @@ s.substr(-1) == "x";
|
|
s.substr(-2) == "xx";
|
|
s.substr(-2) == "xx";
|
|
s.substr(-18) == "fooxfooxxbarxbarxx";
|
|
s.substr(-18) == "fooxfooxxbarxbarxx";
|
|
s.substr(-19) == "xfooxfooxxbarxbarxx";
|
|
s.substr(-19) == "xfooxfooxxbarxbarxx";
|
|
-s.substr( -100) == "xfooxfooxxbarxbarxx";
|
|
|
|
|
|
+s.substr(-100) == "xfooxfooxxbarxbarxx";
|
|
s.substr(0, 0) == "";
|
|
s.substr(0, 0) == "";
|
|
s.substr(0, 1) == "x";
|
|
s.substr(0, 1) == "x";
|
|
s.substr(0, 2) == "xf";
|
|
s.substr(0, 2) == "xf";
|
|
s.substr(0, 100) == "xfooxfooxxbarxbarxx";
|
|
s.substr(0, 100) == "xfooxfooxxbarxbarxx";
|
|
s.substr(0, -1) == "xfooxfooxxbarxbarx";
|
|
s.substr(0, -1) == "xfooxfooxxbarxbarx";
|
|
s.substr(0, -2) == "xfooxfooxxbarxbar";
|
|
s.substr(0, -2) == "xfooxfooxxbarxbar";
|
|
-//s.substr(1, -2) == "fooxfooxxbarxbar";
|
|
|
|
-//s.substr(2, -2) == "ooxfooxxbarxbar";
|
|
|
|
|
|
+// s.substr(1, -2) == "fooxfooxxbarxbar";
|
|
|
|
+// s.substr(2, -2) == "ooxfooxxbarxbar";
|
|
s.substr(0, -100) == "";
|
|
s.substr(0, -100) == "";
|
|
-
|
|
|
|
// substring
|
|
// substring
|
|
var s = "xfooxfooxxbarxbarxx";
|
|
var s = "xfooxfooxxbarxbarxx";
|
|
s.substring(0, 0) == "";
|
|
s.substring(0, 0) == "";
|
|
@@ -165,31 +180,25 @@ s.substring(100, 0) == "xfooxfooxxbarxbarxx";
|
|
s.substring(120, 100) == "";
|
|
s.substring(120, 100) == "";
|
|
s.substring(5, 8) == "foo";
|
|
s.substring(5, 8) == "foo";
|
|
s.substring(8, 5) == "foo";
|
|
s.substring(8, 5) == "foo";
|
|
-
|
|
|
|
// fromCharCode
|
|
// fromCharCode
|
|
String.fromCharCode(65) == "A";
|
|
String.fromCharCode(65) == "A";
|
|
-
|
|
|
|
// ensure int strings compared as strings, not parsed ints (issue #3734)
|
|
// ensure int strings compared as strings, not parsed ints (issue #3734)
|
|
("3" > "11") == true;
|
|
("3" > "11") == true;
|
|
(" 3" < "3") == true;
|
|
(" 3" < "3") == true;
|
|
-
|
|
|
|
// string comparison (see #8332)
|
|
// string comparison (see #8332)
|
|
("a" < "b") == true;
|
|
("a" < "b") == true;
|
|
("a" <= "b") == true;
|
|
("a" <= "b") == true;
|
|
("a" > "b") == false;
|
|
("a" > "b") == false;
|
|
("a" >= "b") == false;
|
|
("a" >= "b") == false;
|
|
-
|
|
|
|
#if target.unicode
|
|
#if target.unicode
|
|
("𠜎zя" > "abя") == true;
|
|
("𠜎zя" > "abя") == true;
|
|
("𠜎zя" >= "abя") == true;
|
|
("𠜎zя" >= "abя") == true;
|
|
("𠜎zя" < "abя") == false;
|
|
("𠜎zя" < "abя") == false;
|
|
("𠜎zя" <= "abя") == false;
|
|
("𠜎zя" <= "abя") == false;
|
|
-
|
|
|
|
#if target.utf16
|
|
#if target.utf16
|
|
// since U+10002 in UTF16 is D800 DC02
|
|
// since U+10002 in UTF16 is D800 DC02
|
|
("\u{FF61}" < "\u{10002}") == false;
|
|
("\u{FF61}" < "\u{10002}") == false;
|
|
#else
|
|
#else
|
|
("\u{FF61}" < "\u{10002}") == true;
|
|
("\u{FF61}" < "\u{10002}") == true;
|
|
#end
|
|
#end
|
|
-
|
|
|
|
#end
|
|
#end
|