tor-browser

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

window-opener-unconfigurable.window.js (872B)


      1 test(t => {
      2  let desc = Object.getOwnPropertyDescriptor(self, "opener");
      3  assert_true(!!desc.get, "Initially {get: function}");
      4  assert_true(!!desc.set, "Initially {set: function}");
      5  assert_true(desc.configurable, "Initially {configurable: true}");
      6  assert_true(desc.enumerable, "Initially {enumerable: true}");
      7 
      8  Object.defineProperty(self, "opener", {configurable: false});
      9 
     10  desc = Object.getOwnPropertyDescriptor(self, "opener");
     11  assert_true(!!desc.get, "Still has {get: function}");
     12  assert_true(!!desc.set, "Still has {set: function}");
     13  assert_false(desc.configurable, "Changed to {configurable: false}");
     14  assert_true(desc.enumerable, "Still has {enumerable: true}");
     15 
     16  assert_throws_js(TypeError, () => self.opener = "something", "Throws a TypeError due to {configurable: false}");
     17 }, "Corner case: self.opener is set while it's not configurable");