match-indices-dictionary-duplicate-groups.js (742B)
1 // |jit-test| skip-if: getBuildConfiguration("wasi") 2 var s = ""; 3 var input = ""; 4 for (var i = 0; i < 500; ++i) { 5 s += "((?<a" + i + ">a)?|(?<a" + i + ">A)?)?"; 6 s += "(?<b" + i + ">b)?"; 7 if (i % 2) { 8 input += "a"; 9 } else { 10 input += "A"; 11 } 12 } 13 14 try { 15 var r = RegExp(s, "d"); 16 var e = r.exec(input); 17 18 for (var i = 0; i < 500; i++) { 19 if (i % 2) { 20 assertEq(e.groups["a" + i], "a"); 21 } else { 22 assertEq(e.groups["a" + i], "A"); 23 } 24 assertEq(e.groups["b" + i], undefined); 25 26 assertEq(e.indices.groups["a" + i][0], i) 27 assertEq(e.indices.groups["a" + i][1], i + 1) 28 assertEq(e.indices.groups["b" + i], undefined) 29 } 30 } catch (err) { 31 assertEq(err.message, "too much recursion"); 32 }