This commit updates our decoding/validation for the removal of runtime
types. This means that instructions that produce rtt values are now
removed. Instructions that consumed rtt values, such as struct.new_with_rtt
are renamed and no longer take rtt values. There is no agreed upon
spec for the renames, but the validation of the instructions is generally
agreed upon.
Most churn comes from the removal of ValType::Rtt. Tests are updated in
a later commit.
This commit depends on a pending change in upstream wasm-tools [1]. A
commit to update our vendored version will be added before this lands.
[1] https://github.com/bytecodealliance/wasm-tools/pull/677
Differential Revision: https://phabricator.services.mozilla.com/D151405
Previously, we could end up in situations where nsMultiplexInputStream
would receive a callback for a previously notified stream after it had
already advanced to the next stream due to the async nature of
notifications. This could cause us to skip a stream accidentally. This
changes the logic to re-call AsyncWait in that situation on the correct
stream rather than skipping streams.
Differential Revision: https://phabricator.services.mozilla.com/D152930
Addresses a coverity warning. The problem looks very benign but the work around is simple and it's good to keep the volume static analysis warnings in check.
Differential Revision: https://phabricator.services.mozilla.com/D152525
This covers the gc stats' JSONPrinter changes, and would trigger the
verifyJSONStringIsCompact assertion (see next patch) without these changes.
Differential Revision: https://phabricator.services.mozilla.com/D152844
These were the last remaining JSON whitespace characters, so we can now our
regression tests can check that there are non of these left.
Differential Revision: https://phabricator.services.mozilla.com/D152607
JSON whitespace comprises all spaces and newlines that are not inside strings,
and which could be removed without changing the decoded contents.
This tests the current state of affairs, where JSON whitespace in profiles may
account for up to 25% of the full length.
Differential Revision: https://phabricator.services.mozilla.com/D152601
* Use contentTheme.js to dynamically update text and background colors in response to
theme changes, including from colorways modal
Differential Revision: https://phabricator.services.mozilla.com/D151043
This adds a shell function 'clearModules' to clear all loaded modules, so that
tests can be insulated from one another.
Depends on D151834
Differential Revision: https://phabricator.services.mozilla.com/D151835
As per the lastest spec this now stays true after evaluation.
This patch keeps a very similar implemenatation and resets the field after
evaluation, except that we now report this special value as true rather than
false. We assert if we try and use get the sort order after this has happened.
We also reset the runtime counter in the same way as before.
Differential Revision: https://phabricator.services.mozilla.com/D151833
This lets us replace relatively slow TLS lookups with a simple dereference.
This also removes the realm from `JitContext`. The runtime still has a few uses
in the MIR backend.
Depends on D152849
Differential Revision: https://phabricator.services.mozilla.com/D152850
`MacroAssembler` now has a single constructor, instead of three different ones
before this patch stack.
Depends on D152847
Differential Revision: https://phabricator.services.mozilla.com/D152848
This follows the Wasm code and prepares for (a) removing the second `MacroAssembler`
constructor and (b) removing the allocator from `JitContext`.
Depends on D152846
Differential Revision: https://phabricator.services.mozilla.com/D152847
This removes some old code to tag debug spew with an ID per assembler, based on a
counter stored in `JitContext`. Usually there's only one assembler per `JitContext` and
we were also not using this for Wasm compilations (it always used id 0), so this
patch removes it.
Depends on D152766
Differential Revision: https://phabricator.services.mozilla.com/D152846