js/src/jit-test/tests/parallel/closure-nested-compute.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     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 function (x) {
    28       switch (x) {
    29       case 0: return a; case 1: return b;
    30       case 2: return c; case 3: return d;
    31       case 4: return e; case 5: return f;
    32       case 6: return g; case 7: return h;
    33       case 8: return i; case 9: return j;
    34       case 10: return k; case 11: return l;
    35       case 12: return m; case 13: return n;
    36       case 14: return o; case 15: return p;
    37       case 16: return q; case 17: return r;
    38       case 18: return s; case 19: return t;
    39       case 20: return u;
    40       }
    41     };
    42   };
    43   for (var i in MODES) {
    44     var m = a.mapPar(makeaddv, MODES[i]);
    45     assertEq(m[21](1), 20); // v == 21; x == 1 ==> inner function returns b == 20
    46   }
    47 }
    49 if (getBuildConfiguration().parallelJS)
    50   testClosureCreationAndInvocation();

mercurial