Because the .xdata format on ARM64 can only encode sizes up to 1M (much too small for our JIT code regions), we register a function table callback to provide RUNTIME_FUNCTIONs at runtime. Windows doesn't seem to care about the size fields on RUNTIME_FUNCTIONs that are created in this way, so the same RUNTIME_FUNCTION can work for any address in the region. We'll set up a generic one in RegisterExecutableMemory and the callback can just return a pointer to it.
Differential Revision: https://phabricator.services.mozilla.com/D16261
--HG--
extra : moz-landing-system : lando
This patch removes the StopWatch code that was used in the first version of
about:performance, and not being used anymore.
Differential Revision: https://phabricator.services.mozilla.com/D7453
--HG--
extra : moz-landing-system : lando
These tests mostly use either the debugger (requires separate compartemnts for
debugger/debuggee) or require a new compartment for things like nukeAllCCWs().
Differential Revision: https://phabricator.services.mozilla.com/D16172
--HG--
extra : moz-landing-system : lando
I added this optimization in bug 1299107 to share more shapes across
compartments. Unfortunately this doesn't play well with same-compartment
realms (ICs can misbehave) because it relies on compartments being isolated
from each other.
I think we should remove this optimization:
* Fixing the IC issue is impossible without deoptimizing everything.
* I added it mainly for chrome globals. The shared-JSM-global work has eliminated
the need for this there.
* Same-compartment realms win memory back by eliminating CCWs etc.
* It's quite a lot of complicated code.
Differential Revision: https://phabricator.services.mozilla.com/D16170
--HG--
extra : moz-landing-system : lando
We want to use this shell flag in automation. Some globals really need their
own compartment so tests can use newGlobal({newCompartment: true}) to opt-out.
Differential Revision: https://phabricator.services.mozilla.com/D16166
--HG--
extra : moz-landing-system : lando
Bindgen is only used when building js or toolkit, so we only need to
include the configure part in js/moz.configure, which is included in
both cases.
Depends on D16293
Differential Revision: https://phabricator.services.mozilla.com/D16294
--HG--
extra : moz-landing-system : lando
This patch was intended to be a pure refactoring of existing code with
no side-effects, moving the logic for handling for-of/for-of-iterclose
trynotes inside TryNoteIter to avoid duplicating logic in all users of
TryNoteIter. However, it turns out that there was a subtle preexisting
bug in TryNoteIter that is fixed by the refactoring. Specifically, the
logic to skip from a for-of-iterclose to its enclosing for-of must run
before the logic to skip trynotes based on stack depth. Otherwise, the
stack depth code may filter out the enclosing for-of (see the attached
test case for an example) and we will skip too many try-notes.
Differential Revision: https://phabricator.services.mozilla.com/D14783
--HG--
extra : moz-landing-system : lando
This also adds a GetVariablesObject helper so we don't have to duplicate the
logic there.
Differential Revision: https://phabricator.services.mozilla.com/D13698
--HG--
extra : moz-landing-system : lando
Only attempt to add breakpoints for the current source in Thread._addSource(),
reducing the number of costly Debugger::findScripts() calls made when loading a
page.
In addition, speed up findScripts() itself by moving the cheaper URL/source
checks in commonFilter() ahead of the line number checks.
Differential Revision: https://phabricator.services.mozilla.com/D15534
--HG--
extra : moz-landing-system : lando