Kris Maglione 14dea7d7a6 Bug 1651436: Wrap exceptions thrown by WrapPrivileged getters. r=mccr8
When a privileged exception object is thrown by a function exported via
`exportFunction`, it is reported to the console, and a generic unprivileged
exception is re-thrown in its place. This is a problem for test harness code
which tests for getters throwing exceptions by catching them and then setting
a flag. The re-thrown exception is hidden, but the original is still reported,
and becomes a red herring for people debugging tests.

This patch catches exceptions thrown by getters (and setters, and other proxy
hooks previously overlooked), checks if they're readable by the global the
privileged object is wrapped for, wraps them if they are not, and then
re-throws them.

Differential Revision: https://phabricator.services.mozilla.com/D82782
2020-07-08 22:55:11 +00:00

An explanation of the Mozilla Source Code Directory Structure and links to
project pages with documentation can be found at:

    https://firefox-source-docs.mozilla.org/contributing/directory_structure.html

For information on how to build Mozilla from the source code and create the patch see:

    https://firefox-source-docs.mozilla.org/contributing/how_to_contribute_firefox.html

If you have a question about developing Mozilla, and can't find the solution
on https://developer.mozilla.org, you can try asking your question on Matrix at chat.mozilla.org in `Introduction` (https://chat.mozilla.org/#/room/#introduction:mozilla.org) channel.


Nightly development builds can be downloaded from:

    https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/
            - or -
    https://www.mozilla.org/firefox/channel/desktop/#nightly

Keep in mind that nightly builds, which are used by Mozilla developers for
testing, may be buggy.
Description
Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
Readme 6.1 GiB
Languages
JavaScript 32.3%
C++ 25.4%
HTML 21.1%
C 10.8%
Python 2.8%
Other 7.1%