js/src/jit-test/tests/parallel/closure-nested-branch.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 load(libdir + "parallelarray-helpers.js");
     3 function testClosureCreationAndInvocation() {
     4   var a = range(0, 64);
     5   function makeaddv(v) {
     6     var u = 1;
     7     var t = 2;
     8     var s = 3;
     9     var r = 4;
    10     var q = 5;
    11     var p = 6;
    12     var o = 7;
    13     var n = 8;
    14     var m = 9;
    15     var l = 10;
    16     var k = 11;
    17     var j = 12;
    18     var i = 13;
    19     var h = 14;
    20     var g = 15;
    21     var f = 16;
    22     var e = 17;
    23     var d = 18;
    24     var c = 19;
    25     var b = 20;
    26     var a = 21;
    27     return ((v % 2 == 0)
    28             ? function (x) { return a; }
    29             : function (x) {
    30               switch (x) {
    31               case 0: return a; case 1: return b;
    32               case 2: return c; case 3: return d;
    33               case 4: return e; case 5: return f;
    34               case 6: return g; case 7: return h;
    35               case 8: return i; case 9: return j;
    36               case 10: return k; case 11: return l;
    37               case 12: return m; case 13: return n;
    38               case 14: return o; case 15: return p;
    39               case 16: return q; case 17: return r;
    40               case 18: return s; case 19: return t;
    41               case 20: return u;
    42               }
    43             });
    44   }
    45   var m;
    46   for (var i in MODES) m = a.mapPar(makeaddv, MODES[i]);
    47   assertEq(m[21](1), 20); // v == 21; x == 1 ==> inner function returns b == 20
    49   var n = a.mapPar(function (v) { return function (x) { return v; }});
    50   assertEq(n[21](1), 21); // v == 21
    51 }
    53 if (getBuildConfiguration().parallelJS)
    54   testClosureCreationAndInvocation();

mercurial