regexp-removed-dot-star.js (1335B)
1 // Test that removal of leading or trailing .* from RegExp test() calls 2 // does not affect lastMatch or other RegExpStatics info. 3 4 function first(input) { 5 var re = /.*b(cd)/; 6 for (var i = 0; i < 10; i++) 7 re.test(input); 8 } 9 10 first("1234\nabcdefg\n1234"); 11 assertEq(RegExp.lastMatch, "abcd"); 12 assertEq(RegExp.$1, "cd"); 13 assertEq(RegExp.input, "1234\nabcdefg\n1234"); 14 assertEq(RegExp.leftContext, "1234\n"); 15 assertEq(RegExp.rightContext, "efg\n1234"); 16 assertEq(RegExp.lastParen, "cd"); 17 18 19 // Test that removal of leading or trailing .* from RegExp test() calls 20 // does not affect lastMatch or other RegExpStatics info. 21 22 function second(input) { 23 var re = /bcd.*/; 24 for (var i = 0; i < 10; i++) 25 re.test(input); 26 } 27 28 second("1234\nabcdefg\n1234"); 29 assertEq(RegExp.lastMatch, "bcdefg"); 30 assertEq(RegExp.$1, ""); 31 assertEq(RegExp.input, "1234\nabcdefg\n1234"); 32 assertEq(RegExp.leftContext, "1234\na"); 33 assertEq(RegExp.rightContext, "\n1234"); 34 assertEq(RegExp.lastParen, ""); 35 36 function third(input) { 37 var re = /.*bcd.*/; 38 for (var i = 0; i < 10; i++) 39 re.test(input); 40 } 41 42 third("1234\nabcdefg\n1234"); 43 assertEq(RegExp.lastMatch, "abcdefg"); 44 assertEq(RegExp.$1, ""); 45 assertEq(RegExp.input, "1234\nabcdefg\n1234"); 46 assertEq(RegExp.leftContext, "1234\n"); 47 assertEq(RegExp.rightContext, "\n1234"); 48 assertEq(RegExp.lastParen, "");