[JSCRIPT_WINETEST]

* Sync with Wine 1.5.26.

svn path=/trunk/; revision=58664
This commit is contained in:
Amine Khaldi 2013-04-03 21:20:05 +00:00
parent 357c11eb16
commit 27a7122a84
11 changed files with 3481 additions and 217 deletions

View file

@ -41,15 +41,25 @@ ok(m.index === 1, "m.index = " + m.index);
ok(m.input === " aabaaa", "m.input = " + m.input);
ok(m.length === 1, "m.length = " + m.length);
ok(m[0] === "aa", "m[0] = " + m[0]);
ok(m.propertyIsEnumerable("0"), "m.0 is not enumerable");
ok(m.propertyIsEnumerable("input"), "m.input is not enumerable");
ok(m.propertyIsEnumerable("index"), "m.index is not enumerable");
ok(m.propertyIsEnumerable("lastIndex"), "m.lastIndex is not enumerable");
ok(m.propertyIsEnumerable("length") === false, "m.length is not enumerable");
ok(RegExp.leftContext === " ", "RegExp.leftContext = " + RegExp.leftContext);
ok(RegExp.rightContext === "baaa", "RegExp.rightContext = " + RegExp.rightContext);
m = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/.exec(
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
ok(m === null, "m is not null");
re = /a+/g;
ok(re.lastIndex === 0, "re.lastIndex = " + re.lastIndex);
m = re.exec(" aabaaa");
ok(re.lastIndex === 3, "re.lastIndex = " + re.lastIndex);
ok(m.index === 1, "m.index = " + m.index);
ok(m.lastIndex == 3, "m.lastIndex = " + m.lastIndex);
ok(m.input === " aabaaa", "m.input = " + m.input);
ok(m.length === 1, "m.length = " + m.length);
ok(m[0] === "aa", "m[0] = " + m[0]);
@ -194,6 +204,9 @@ ok(typeof(m) === "object", "typeof m is not object");
ok(m.length === 2, "m.length is not 2");
ok(m["0"] === "ab", "m[0] is not \"ab\"");
ok(m["1"] === "ab", "m[1] is not \"ab\"");
ok(m.index === 3, "m.index = " + m.index);
ok(m.input === "abcabc", "m.input = " + m.input);
ok(m.lastIndex === 5, "m.lastIndex = " + m.lastIndex);
m = "abcabcg".match("ab", "g");
ok(typeof(m) === "object", "typeof m is not object");
@ -370,6 +383,19 @@ ok(r[2] === "3", "r[2] = " + r[2]);
ok(RegExp.leftContext === "1,,2", "RegExp.leftContext = " + RegExp.leftContext);
ok(RegExp.rightContext === "3", "RegExp.rightContext = " + RegExp.rightContext);
r = "1,,2,3".split(/,+/g, 2);
ok(r.length === 2, "r.length = " + r.length);
ok(r[0] === "1", "r[0] = " + r[0]);
ok(r[1] === "2", "r[1] = " + r[1]);
ok(RegExp.leftContext === "1,,2", "RegExp.leftContext = " + RegExp.leftContext);
ok(RegExp.rightContext === "3", "RegExp.rightContext = " + RegExp.rightContext);
r = "1,,2,3".split(/,+/g, 1);
ok(r.length === 1, "r.length = " + r.length);
ok(r[0] === "1", "r[0] = " + r[0]);
ok(RegExp.leftContext === "1", "RegExp.leftContext = " + RegExp.leftContext);
ok(RegExp.rightContext === "2,3", "RegExp.rightContext = " + RegExp.rightContext);
r = "1,,2,3".split(/,+/);
ok(r.length === 3, "r.length = " + r.length);
ok(r[0] === "1", "r[0] = " + r[0]);
@ -403,6 +429,15 @@ r = "123".split(re = /\s+/).join(";");
ok(r === "123", "r = " + r);
ok(re.lastIndex === 0, "re.lastIndex = " + re.lastIndex);
r = "1ab2aab3".split(/(a+)b/);
ok(r.length === 3, "r.length = " + r.length);
ok(r[0] === "1", "r[0] = " + r[0]);
ok(r[1] === "2", "r[1] = " + r[1]);
ok(r[2] === "3", "r[2] = " + r[2]);
r = "A<B>bold</B>and<CODE>coded</CODE>".split(/<(\/)?([^<>]+)>/) ;
ok(r.length === 4, "r.length = " + r.length);
/* another standard violation */
r = "1 12 \t3".split(re = /(\s)+/g).join(";");
ok(r === "1;12;3", "r = " + r);
@ -572,4 +607,45 @@ ok(i === 1, "String.prototype.seatch.apply(obj, 'b') = " + i);
i = " undefined ".search();
ok(i === null, "' undefined '.search() = " + i);
tmp = "=)".replace(/=/, "?");
ok(tmp === "?)", "'=)'.replace(/=/, '?') = " + tmp);
tmp = " ".replace(/^\s*|\s*$/g, "y");
ok(tmp === "yy", '" ".replace(/^\s*|\s*$/g, "y") = ' + tmp);
tmp = "xxx".replace(/^\s*|\s*$/g, "");
ok(tmp === "xxx", '"xxx".replace(/^\s*|\s*$/g, "y") = ' + tmp);
tmp = "xxx".replace(/^\s*|\s*$/g, "y");
ok(tmp === "yxxxy", '"xxx".replace(/^\s*|\s*$/g, "y") = ' + tmp);
tmp = "x/y".replace(/[/]/, "*");
ok(tmp === "x*y", '"x/y".replace(/[/]/, "*") = ' + tmp);
tmp = "x/y".replace(/[xy/]/g, "*");
ok(tmp === "***", '"x/y".replace(/[xy/]/, "*") = ' + tmp);
/(b)/.exec("abc");
ok(RegExp.$1 === "b", "RegExp.$1 = " + RegExp.$1);
ok("$2" in RegExp, "RegExp.$2 doesn't exist");
ok(RegExp.$2 === "", "RegExp.$2 = " + RegExp.$2);
ok(RegExp.$9 === "", "RegExp.$9 = " + RegExp.$9);
ok(!("$10" in RegExp), "RegExp.$10 exists");
/(b)(b)(b)(b)(b)(b)(b)(b)(b)(b)(b)/.exec("abbbbbbbbbbbc");
ok(RegExp.$1 === "b", "RegExp.$1 = " + RegExp.$1);
ok(RegExp.$2 === "b", "[2] RegExp.$2 = " + RegExp.$2);
ok(RegExp.$9 === "b", "RegExp.$9 = " + RegExp.$9);
ok(!("$10" in RegExp), "RegExp.$10 exists");
/(b)/.exec("abc");
ok(RegExp.$1 === "b", "RegExp.$1 = " + RegExp.$1);
ok("$2" in RegExp, "RegExp.$2 doesn't exist");
ok(RegExp.$2 === "", "RegExp.$2 = " + RegExp.$2);
ok(RegExp.$9 === "", "RegExp.$9 = " + RegExp.$9);
ok(!("$10" in RegExp), "RegExp.$10 exists");
RegExp.$1 = "a";
ok(RegExp.$1 === "b", "RegExp.$1 = " + RegExp.$1);
reportSuccess();