lastIndex-valueOf.js (439B)
1 function test() { 2 var re = /abc.+de/g; 3 var c = 0; 4 var weird = {valueOf() { c++; return 0; }}; 5 for (var i = 0; i < 100; i++) { 6 re.lastIndex = (i > 60) ? weird : 0; 7 assertEq(typeof re.exec("abcXdef"), "object"); 8 assertEq(re.lastIndex, 6); 9 10 re.lastIndex = (i > 60) ? weird : 0; 11 assertEq(re.test("abcXdef"), true); 12 assertEq(re.lastIndex, 6); 13 } 14 assertEq(c, 78); 15 } 16 test();