tor-browser

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

using-in-class.js (1071B)


      1 // |jit-test| skip-if: !getBuildConfiguration("explicit-resource-management"); --enable-explicit-resource-management
      2 
      3 load(libdir + "asserts.js");
      4 
      5 const disposedInClassStatic = [];
      6 class staticBlockClass {
      7  static {
      8    using x = {
      9      value: 1,
     10      [Symbol.dispose]() {
     11        disposedInClassStatic.push(42);
     12      }
     13    };
     14  }
     15 }
     16 function testDisposalsInClassStatic() {
     17  const example = new staticBlockClass();
     18  disposedInClassStatic.push(43);
     19 }
     20 testDisposalsInClassStatic();
     21 assertArrayEq(disposedInClassStatic, [42, 43]);
     22 
     23 const disposedInDerivedCtor = [];
     24 class baseClass {
     25  constructor() {
     26    disposedInDerivedCtor.push(43);
     27  }
     28 }
     29 class subClass extends baseClass {
     30  constructor() {
     31    try {
     32      using x = {
     33        value: 1,
     34        [Symbol.dispose]() {
     35          disposedInDerivedCtor.push(42);
     36        }
     37      };
     38    } finally {
     39      super();
     40    }
     41  }
     42 }
     43 function testDisposalsInDerivedCtor() {
     44  const example = new subClass();
     45  disposedInDerivedCtor.push(44);
     46 }
     47 testDisposalsInDerivedCtor();
     48 assertArrayEq(disposedInDerivedCtor, [42, 43, 44]);