tor-browser

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

non-extensible-elements7.js (1109B)


      1 // Test array.length setter on non-extensible/sealed/frozen arrays.
      2 "use strict";
      3 
      4 load(libdir + "asserts.js");
      5 
      6 function testNonExtensible() {
      7    var a = [1, 2, 3, , ,];
      8    Object.preventExtensions(a);
      9    for (var i = 0; i < 10; i++)
     10        a.length = 10;
     11    assertEq(a.length, 10);
     12    for (var i = 0; i < 10; i++)
     13        a.length = 0;
     14    assertEq(a.length, 0);
     15    assertEq(a.toString(), "");
     16 }
     17 testNonExtensible();
     18 
     19 function testSealed() {
     20    var a = [1, 2, 3, , ,];
     21    Object.seal(a);
     22    for (var i = 0; i < 10; i++)
     23        a.length = 10;
     24    assertEq(a.length, 10);
     25    for (var i = 0; i < 10; i++)
     26        assertThrowsInstanceOf(() => a.length = 0, TypeError);
     27    assertEq(a.length, 3);
     28    assertEq(a.toString(), "1,2,3");
     29 }
     30 testSealed();
     31 
     32 function testFrozen() {
     33    var a = [1, 2, 3, , ,];
     34    Object.freeze(a);
     35    for (var i = 0; i < 10; i++)
     36        assertThrowsInstanceOf(() => a.length = 10, TypeError);
     37    for (var i = 0; i < 10; i++)
     38        assertThrowsInstanceOf(() => a.length = 0, TypeError);
     39    assertEq(a.length, 5);
     40    assertEq(a.toString(), "1,2,3,,");
     41 }
     42 testFrozen();