tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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, "");