Jacek Caban : jscript: Added lastIndex tests.

Alexandre Julliard julliard at winehq.org
Tue Dec 1 09:19:41 CST 2009


Module: wine
Branch: master
Commit: 35b2ca947c9fd2ed41f0bd881a7a224d25cb8306
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=35b2ca947c9fd2ed41f0bd881a7a224d25cb8306

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Nov 30 21:12:29 2009 +0100

jscript: Added lastIndex tests.

---

 dlls/jscript/tests/regexp.js |   66 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 66 insertions(+), 0 deletions(-)

diff --git a/dlls/jscript/tests/regexp.js b/dlls/jscript/tests/regexp.js
index ff98b48..bcc9aba 100644
--- a/dlls/jscript/tests/regexp.js
+++ b/dlls/jscript/tests/regexp.js
@@ -298,4 +298,70 @@ ok(re === RegExp(re, undefined), "re !== RegExp(re, undefined)");
 re = /abc/;
 ok(re === RegExp(re, undefined, 1), "re !== RegExp(re, undefined, 1)");
 
+re = /a/g;
+ok(re.lastIndex === 0, "re.lastIndex = " + re.lastIndex + " expected 0");
+
+m = re.exec(" a   ");
+ok(re.lastIndex === 2, "re.lastIndex = " + re.lastIndex + " expected 2");
+ok(m.index === 1, "m.index = " + m.index + " expected 1");
+
+m = re.exec(" a   ");
+ok(re.lastIndex === 0, "re.lastIndex = " + re.lastIndex + " expected 0");
+ok(m === null, "m = " + m + " expected null");
+
+re.lastIndex = 2;
+m = re.exec(" a a ");
+ok(re.lastIndex === 4, "re.lastIndex = " + re.lastIndex + " expected 4");
+ok(m.index === 3, "m.index = " + m.index + " expected 3");
+
+re.lastIndex = "2";
+ok(re.lastIndex === "2", "re.lastIndex = " + re.lastIndex + " expected '2'");
+m = re.exec(" a a ");
+ok(re.lastIndex === 4, "re.lastIndex = " + re.lastIndex + " expected 4");
+ok(m.index === 3, "m.index = " + m.index + " expected 3");
+
+var li = 0;
+var obj = new Object();
+obj.valueOf = function() { return li; };
+
+re.lastIndex = obj;
+ok(re.lastIndex === obj, "re.lastIndex = " + re.lastIndex + " expected obj");
+li = 2;
+m = re.exec(" a a ");
+ok(re.lastIndex === 2, "re.lastIndex = " + re.lastIndex + " expected 2");
+ok(m.index === 1, "m.index = " + m.index + " expected 1");
+
+re.lastIndex = 3;
+re.lastIndex = "test";
+ok(re.lastIndex === "test", "re.lastIndex = " + re.lastIndex + " expected 'test'");
+m = re.exec(" a a ");
+ok(re.lastIndex === 2, "re.lastIndex = " + re.lastIndex + " expected 2");
+ok(m.index === 1, "m.index = " + m.index + " expected 1");
+
+re.lastIndex = 0;
+re.lastIndex = 3.9;
+ok(re.lastIndex === 3.9, "re.lastIndex = " + re.lastIndex + " expected 3.9");
+m = re.exec(" a a ");
+ok(re.lastIndex === 4, "re.lastIndex = " + re.lastIndex + " expected 4");
+ok(m.index === 3, "m.index = " + m.index + " expected 3");
+
+obj.valueOf = function() { throw 0; }
+re.lastIndex = obj;
+ok(re.lastIndex === obj, "unexpected re.lastIndex");
+m = re.exec(" a a ");
+ok(re.lastIndex === 2, "re.lastIndex = " + re.lastIndex + " expected 2");
+ok(m.index === 1, "m.index = " + m.index + " expected 1");
+
+re.lastIndex = -3;
+ok(re.lastIndex === -3, "re.lastIndex = " + re.lastIndex + " expected -3");
+m = re.exec(" a a ");
+ok(re.lastIndex === 0, "re.lastIndex = " + re.lastIndex + " expected 0");
+ok(m === null, "m = " + m + " expected null");
+
+re.lastIndex = -1;
+ok(re.lastIndex === -1, "re.lastIndex = " + re.lastIndex + " expected -1");
+m = re.exec("  ");
+ok(re.lastIndex === 0, "re.lastIndex = " + re.lastIndex + " expected 0");
+ok(m === null, "m = " + m + " expected null");
+
 reportSuccess();




More information about the wine-cvs mailing list