js/src/jit-test/tests/basic/string-contains.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 assertEq("abc".contains("a"), true);
     2 assertEq("abc".contains("b"), true);
     3 assertEq("abc".contains("abc"), true);
     4 assertEq("abc".contains("bc"), true);
     5 assertEq("abc".contains("d"), false);
     6 assertEq("abc".contains("abcd"), false);
     7 assertEq("abc".contains("ac"), false);
     8 assertEq("abc".contains("abc", 0), true);
     9 assertEq("abc".contains("bc", 0), true);
    10 assertEq("abc".contains("de", 0), false);
    11 assertEq("abc".contains("bc", 1), true);
    12 assertEq("abc".contains("c", 1), true);
    13 assertEq("abc".contains("a", 1), false);
    14 assertEq("abc".contains("abc", 1), false);
    15 assertEq("abc".contains("c", 2), true);
    16 assertEq("abc".contains("d", 2), false);
    17 assertEq("abc".contains("dcd", 2), false);
    18 assertEq("abc".contains("a", 42), false);
    19 assertEq("abc".contains("a", Infinity), false);
    20 assertEq("abc".contains("ab", -43), true);
    21 assertEq("abc".contains("cd", -42), false);
    22 assertEq("abc".contains("ab", -Infinity), true);
    23 assertEq("abc".contains("cd", -Infinity), false);
    24 assertEq("abc".contains("ab", NaN), true);
    25 assertEq("abc".contains("cd", NaN), false);
    26 var myobj = {toString : (function () "abc"), contains : String.prototype.contains};
    27 assertEq(myobj.contains("abc"), true);
    28 assertEq(myobj.contains("cd"), false);
    29 var gotStr = false, gotPos = false;
    30 myobj = {toString : (function () {
    31     assertEq(gotPos, false);
    32     gotStr = true;
    33     return "xyz";
    34 }),
    35 contains : String.prototype.contains};
    36 var idx = {valueOf : (function () {
    37     assertEq(gotStr, true);
    38     gotPos = true;
    39     return 42;
    40 })};
    41 myobj.contains("elephant", idx);
    42 assertEq(gotPos, true);
    43 assertEq("xyzzy".contains("zy\0", 2), false);
    44 var dots = Array(10000).join('.');
    45 assertEq(dots.contains("\x01", 10000), false);
    46 assertEq(dots.contains("\0", 10000), false);

mercurial