1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/tests/ecma_5/String/replace-updates-global-lastIndex.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,38 @@ 1.4 +/* 1.5 + * Any copyright is dedicated to the Public Domain. 1.6 + * http://creativecommons.org/licenses/publicdomain/ 1.7 + */ 1.8 + 1.9 +var BUGNUMBER = 501739; 1.10 +var summary = 1.11 + "String.prototype.relace should zero the .lastIndex when called with a " + 1.12 + "global RegExp"; 1.13 + 1.14 +print(BUGNUMBER + ": " + summary); 1.15 + 1.16 +/************** 1.17 + * BEGIN TEST * 1.18 + **************/ 1.19 + 1.20 +var s = '0x2x4x6x8'; 1.21 + 1.22 +var p1 = /x/g; 1.23 +p1.lastIndex = 3; 1.24 +s.replace(p1, ''); 1.25 +assertEq(p1.lastIndex, 0); 1.26 + 1.27 +var p2 = /x/g; 1.28 +p2.lastIndex = 3; 1.29 +var c = 0; 1.30 +s.replace(p2, function(s) { 1.31 + assertEq(p2.lastIndex++, c++); 1.32 + return 'y'; 1.33 +}); 1.34 +assertEq(p2.lastIndex, 4); 1.35 + 1.36 +/******************************************************************************/ 1.37 + 1.38 +if (typeof reportCompare === "function") 1.39 + reportCompare(true, true); 1.40 + 1.41 +print("Tests complete");