tor-browser

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

reporterror.any.js (1281B)


      1 setup({ allow_uncaught_exception:true });
      2 
      3 [
      4  1,
      5  new TypeError(),
      6  undefined
      7 ].forEach(throwable => {
      8  test(t => {
      9    let happened = false;
     10    self.addEventListener("error", t.step_func(e => {
     11      assert_true(e.message !== "");
     12      assert_equals(e.filename, new URL("reporterror.any.js", location.href).href);
     13      assert_greater_than(e.lineno, 0);
     14      assert_greater_than(e.colno, 0);
     15      assert_equals(e.error, throwable);
     16      happened = true;
     17    }), { once:true });
     18    self.reportError(throwable);
     19    assert_true(happened);
     20  }, `self.reportError(${throwable})`);
     21 });
     22 
     23 test(() => {
     24  assert_throws_js(TypeError, () => self.reportError());
     25 }, `self.reportError() (without arguments) throws`);
     26 
     27 test(() => {
     28  // Workaround for https://github.com/web-platform-tests/wpt/issues/32105
     29  let invoked = false;
     30  self.reportError({
     31    get name() {
     32      invoked = true;
     33      assert_unreached('get name')
     34    },
     35    get message() {
     36      invoked = true;
     37      assert_unreached('get message');
     38    },
     39    get fileName() {
     40      invoked = true;
     41      assert_unreached('get fileName');
     42    },
     43    get lineNumber() {
     44      invoked = true;
     45      assert_unreached('get lineNumber');
     46    }
     47  });
     48  assert_false(invoked);
     49 }, `self.reportError() doesn't invoke getters`);