tor-browser

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

redeclaring-global-properties.js (1254B)


      1 // |reftest| skip-if(!xulRuntime.shell) -- needs evaluate
      2 // Any copyright is dedicated to the Public Domain.
      3 // http://creativecommons.org/licenses/publicdomain/
      4 
      5 // Attempting to lexically redefine a var is a syntax error.
      6 evaluate("var a;");
      7 assertThrowsInstanceOf(() => evaluate("let a;"), SyntaxError);
      8 
      9 // Attempting to lexically redefine a configurable global property that's not a
     10 // var is okay.
     11 this.b = 42;
     12 assertEq(b, 42);
     13 evaluate("let b = 17;");
     14 assertEq(b, 17);
     15 
     16 
     17 // Attempting to lexically redefine a var added by eval code is okay.
     18 assertEq(typeof d, "undefined");
     19 eval("var d = 33;");
     20 assertEq(d, 33);
     21 
     22 // Attempting to lexically redefine a var added by eval code, then deleted *as a
     23 // name*, is okay.
     24 assertEq(typeof e, "undefined");
     25 eval("var e = 'ohia';");
     26 assertEq(e, "ohia");
     27 delete e;
     28 assertEq(this.hasOwnProperty("e"), false);
     29 evaluate("let e = 3.141592654;");
     30 assertEq(e, 3.141592654);
     31 
     32 // Attempting to lexically redefine a var added by eval code, then deleted *as a
     33 // property*, is okay.
     34 assertEq(typeof f, "undefined");
     35 eval("var f = 8675309;");
     36 assertEq(f, 8675309);
     37 delete this.f;
     38 assertEq(this.hasOwnProperty("f"), false);
     39 
     40 if (typeof reportCompare === "function")
     41  reportCompare(true, true);
     42 
     43 print("Tests complete");