js/src/jit-test/tests/baseline/setcall.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 var calls = 0;
     2 function g() {
     3     calls++;
     4 };
     5 function test1() {
     6     for (var i=0; i<20; i++) {
     7 	if (i > 18)
     8 	    g() = 2;
     9     }
    10 }
    11 try {
    12     test1();
    13     assertEq(0, 1);
    14 } catch(e) {
    15     assertEq(e instanceof ReferenceError, true);
    16 }
    18 assertEq(calls, 1);
    20 function test2() {
    21     for (var i=0; i<20; i++) {
    22 	if (i > 18)
    23 	    g()++;
    24     }
    25 }
    26 try {
    27     test2();
    28     assertEq(0, 1);
    29 } catch(e) {
    30     assertEq(e instanceof ReferenceError, true);
    31 }
    32 assertEq(calls, 2);
    34 function test3() {
    35     var v1, v2, v3;
    36     var z = [1, 2, 3];
    37     for (var i=0; i<15; i++) {
    38        if (i > 12)
    39            [v1, v2, g(), v3] = z
    40     }
    41 }
    42 try {
    43     test3();
    44     assertEq(0, 1);
    45 } catch(e) {
    46     assertEq(e instanceof ReferenceError, true);
    47 }
    48 assertEq(calls, 3);
    50 function test4() {
    51     for (var i=0; i<20; i++) {
    52 	if (i > 18)
    53 	    g() >>= 2;
    54     }
    55 }
    56 try {
    57     test4();
    58     assertEq(0, 1);
    59 } catch(e) {
    60     assertEq(e instanceof ReferenceError, true);
    61 }
    63 assertEq(calls, 4);

mercurial