tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

non-extensible-elements3.js (1300B)


      1 function testAdd() {
      2    var a = [];
      3    Object.preventExtensions(a);
      4    for (var i = 0; i < 20; i++)
      5        a[i] = i;
      6    assertEq(a.length, 0);
      7 
      8    a = [];
      9    Object.seal(a);
     10    for (var i = 0; i < 20; i++)
     11        a[i] = i;
     12    assertEq(a.length, 0);
     13 
     14    a = [];
     15    Object.freeze(a);
     16    for (var i = 0; i < 20; i++)
     17        a[i] = i;
     18    assertEq(a.length, 0);
     19 }
     20 testAdd();
     21 testAdd();
     22 
     23 function testSet() {
     24    var a = [1, 2, 3];
     25    Object.preventExtensions(a);
     26    for (var i = 0; i < 20; i++)
     27        a[2] = i;
     28    assertEq(a.toString(), "1,2,19");
     29 
     30    a = [1, 2, 3];
     31    Object.seal(a);
     32    for (var i = 0; i < 20; i++)
     33        a[0] = i;
     34    assertEq(a.toString(), "19,2,3");
     35 
     36    a = [1, 2, 3];
     37    Object.freeze(a);
     38    for (var i = 0; i < 20; i++)
     39        a[1] = i;
     40    assertEq(a.toString(), "1,2,3");
     41 }
     42 testSet();
     43 testSet();
     44 
     45 function testSetHole() {
     46    var a = [1, , 3];
     47    Object.preventExtensions(a);
     48    for (var i = 0; i < 30; i++)
     49        a[1] = i;
     50    assertEq(a.toString(), "1,,3");
     51 
     52    a = [1, , 3];
     53    Object.seal(a);
     54    for (var i = 0; i < 30; i++)
     55        a[1] = i;
     56    assertEq(a.toString(), "1,,3");
     57 
     58    a = [1, , 3];
     59    Object.freeze(a);
     60    for (var i = 0; i < 30; i++)
     61        a[1] = i;
     62    assertEq(a.toString(), "1,,3");
     63 }
     64 testSetHole();
     65 testSetHole();