|
1 /* |
|
2 * Any copyright is dedicated to the Public Domain. |
|
3 * http://creativecommons.org/licenses/publicdomain/ |
|
4 */ |
|
5 |
|
6 var BUGNUMBER = 501739; |
|
7 var summary = |
|
8 "String.prototype.relace should zero the .lastIndex when called with a " + |
|
9 "global RegExp"; |
|
10 |
|
11 print(BUGNUMBER + ": " + summary); |
|
12 |
|
13 /************** |
|
14 * BEGIN TEST * |
|
15 **************/ |
|
16 |
|
17 var s = '0x2x4x6x8'; |
|
18 |
|
19 var p1 = /x/g; |
|
20 p1.lastIndex = 3; |
|
21 s.replace(p1, ''); |
|
22 assertEq(p1.lastIndex, 0); |
|
23 |
|
24 var p2 = /x/g; |
|
25 p2.lastIndex = 3; |
|
26 var c = 0; |
|
27 s.replace(p2, function(s) { |
|
28 assertEq(p2.lastIndex++, c++); |
|
29 return 'y'; |
|
30 }); |
|
31 assertEq(p2.lastIndex, 4); |
|
32 |
|
33 /******************************************************************************/ |
|
34 |
|
35 if (typeof reportCompare === "function") |
|
36 reportCompare(true, true); |
|
37 |
|
38 print("Tests complete"); |