js/src/tests/ecma_5/String/replace-updates-global-lastIndex.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 /*
     2  * Any copyright is dedicated to the Public Domain.
     3  * http://creativecommons.org/licenses/publicdomain/
     4  */
     6 var BUGNUMBER = 501739;
     7 var summary =
     8   "String.prototype.relace should zero the .lastIndex when called with a " +
     9   "global RegExp";
    11 print(BUGNUMBER + ": " + summary);
    13 /**************
    14  * BEGIN TEST *
    15  **************/
    17 var s = '0x2x4x6x8';
    19 var p1 = /x/g;
    20 p1.lastIndex = 3;
    21 s.replace(p1, '');
    22 assertEq(p1.lastIndex, 0);
    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);
    33 /******************************************************************************/
    35 if (typeof reportCompare === "function")
    36   reportCompare(true, true);
    38 print("Tests complete");

mercurial