js/src/jit-test/tests/ion/nativeElementAccesses.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.

     2 function testOverwritingSparseHole()
     3 {
     4   var x = [];
     5   for (var i = 0; i < 50; i++)
     6     x[i] = i;
     7   var hit = false;
     8   Object.defineProperty(x, 40, {set: function() { hit = true; }});
     9   for (var i = 0; i < 50; i++)
    10     x[i] = 10;
    11   assertEq(hit, true);
    12 }
    13 testOverwritingSparseHole();
    15 function testReadingSparseHole()
    16 {
    17   var x = [];
    18   for (var i = 5; i < 50; i++)
    19     x[i] = i;
    20   var hit = false;
    21   Object.defineProperty(x, 40, {get: function() { hit = true; return 5.5; }});
    22   var res = 0;
    23   for (var i = 0; i < 50; i++) {
    24     res += x[i];
    25     if (i == 10)
    26       res = 0;
    27   }
    28   assertEq(res, 1135.5);
    29   assertEq(hit, true);
    30 }
    31 testReadingSparseHole();
    33 function testInSparseHole()
    34 {
    35   var x = [];
    36   for (var i = 5; i < 50; i++)
    37     x[i] = i;
    38   Object.defineProperty(x, 40, {get: function() {}});
    39   var res = 0;
    40   for (var i = 0; i < 50; i++)
    41     res += (i in x) ? 1 : 0;
    42   assertEq(res, 45);
    43 }
    44 testInSparseHole();

mercurial