js/src/jit-test/tests/basic/testMissingProperties.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 function isnan(n) { return n !== n }
     3 function f(x) {
     4     var sum = 0;
     5     for (var i = 0; i < 100; ++i)
     6         sum += x.x;
     7     return sum;
     8 }
     9 var o = {};
    10 assertEq(isnan(f(o)), true);
    11 o.x = 1;
    12 assertEq(f(o), 100);
    13 var o = {a:1, b:2};
    14 assertEq(isnan(f(o)), true);
    15 o.x = 2;
    16 assertEq(f(o), 200);
    18 function g(x) {
    19     var sum = 0;
    20     for (var i = 0; i < 100; ++i)
    21         sum += x.x;
    22     return sum;
    23 }
    24 var o = {c:1, x:1};
    25 assertEq(g(o), 100);
    26 var o = {};
    27 assertEq(isnan(g(o)), true);
    29 function h(x) {
    30     var sum = 0;
    31     for (var i = 0; i < 100; ++i)
    32         sum += x.x;
    33     return sum;
    34 }
    36 var proto1 = {};
    37 var proto2 = Object.create(proto1);
    38 var o = Object.create(proto2);
    39 assertEq(isnan(f(o)), true);
    40 assertEq(isnan(g(o)), true);
    41 assertEq(isnan(h(o)), true);
    42 proto2.x = 2;
    43 assertEq(f(o), 200);
    44 assertEq(g(o), 200);
    45 assertEq(h(o), 200);
    46 var o = {}
    47 assertEq(isnan(f(o)), true);
    48 assertEq(isnan(g(o)), true);
    49 assertEq(isnan(h(o)), true);

mercurial