tor-browser

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

bug-888002-3.js (660B)


      1 // Constant folding doesn't affect strict delete either.
      2 // In particular, it doesn't affect whether |delete x| is a strict error.
      3 
      4 load(libdir + "asserts.js");
      5 
      6 (function (x) {
      7    "use strict";
      8 
      9    // These senseless delete-expressions are legal even in strict mode.
     10    // Per ES5.1 11.4.1 step 2, each one does nothing and returns true.
     11    assertEq(delete (1 ? x : x), true);
     12    assertEq(delete (0 || x), true);
     13    assertEq(delete (1 && x), true);
     14 
     15    // Plain `delete x` is a SyntaxError though.
     16    assertThrowsInstanceOf(() => eval('delete x'), SyntaxError);
     17    assertThrowsInstanceOf(() => Function('"use strict"; delete x'), SyntaxError);
     18 }());