This patch uses the Windows.System.Profile.WindowsIntegrityPolicy class to determine whether or not Windows is in S mode. This class is only available beginning with SDK 17763 (newer than what we use right now), so we need to fetch it at runtime with some magic.
This is a completely no-op for Windows versions older than 1810, where the WindowsIntegrityPolicy class is not available.
Differential Revision: https://phabricator.services.mozilla.com/D130397
These logs have been added to help with the investigation of shutdown issues. But it turned out to not be that helpful. Lets get it removed from wdspec jobs to lesser clutter the logs.
Differential Revision: https://phabricator.services.mozilla.com/D130974
This is a pointer-sized value, so there's no need to pass it by
value. All of the SpiderMonkey places that pass GCCellPtr are doing
it by value, so this is aligning with that.
In addition, I removed a NoteJSChild() overload that is no longer
used.
Differential Revision: https://phabricator.services.mozilla.com/D131163
For running in FIPS mode, NSS needs to check /proc/sys/crypto/fips_enabled, to be able to tell whether FIPS is enabled or not.
FIPS also mandates using /dev/random instead of /dev/urandom.
Differential Revision: https://phabricator.services.mozilla.com/D129126
After the preparations from the preceding patches, we can now simply enable
transpiling `SpreadNew` and `SpreadSuperCall`.
Differential Revision: https://phabricator.services.mozilla.com/D130490
Adds `MConstructArray::needsThisCheck` so we can pass this flag to `MakeCall()`
in `ArrayMemoryView::visitConstructArray()`. This is needed because the next
patch will change `MConstructArray` to store a single caller in
`MConstructArray::target_` and we have assertions in place which disallow to
emit a `this`-check when we know it's unnecessary (because the target function
is known).
Differential Revision: https://phabricator.services.mozilla.com/D130494
No change in behaviour, only changes `build_SpreadNew()` to call `makeSpreadCall()`
in preparation for the next patches in this stack.
Additionally moves the `MCreateThis::New` call from `WarpBuilder::buildCallOp()`
into a new method `WarpBuilder::buildCreateThis()`.
Differential Revision: https://phabricator.services.mozilla.com/D130489
Adds a copy of `ApplyArgs` to handle constructor calls. This new instruction is
then used to scalar replace rest arrays in `new` and `super` spread calls.
With this patch applied, we can scalar replace rest parameters in derived class
constructors:
```
class Derived extends Base {
constructor(...args) {
super(...args);
}
}
```
Differential Revision: https://phabricator.services.mozilla.com/D130485
This follows the existing scalar replacement support for `arguments`. When the
rest array isn't modified, we can read the rest array elements from the frame.
And the rest array length can be computed through `max(numActuals - numFormals, 0)`.
There isn't yet support for scalar replacing rest arrays in `MApplyArray` when
additional formals are present, because `MApplyArgs` doesn't yet cover this case.
Differential Revision: https://phabricator.services.mozilla.com/D130484
Add recover support for `MRest`. When rest arguments are present, the `arguments`
object isn't mapped, so the rest array can be directly recovered from the frame.
Differential Revision: https://phabricator.services.mozilla.com/D130483
Otherwise the origin of the rect might not be correctly converted.
We have a supposed test for something like this:
layout/reftests/forms/input/number/spinner-overflow-vertical.html
But in practice it doesn't work, because I removed the "overflowing
descendants inflate outlines" behavior (bug 1739894), and even with that
pref it doesn't seem to cut it... So repurpose that test to test both.
Differential Revision: https://phabricator.services.mozilla.com/D131175
Annotating each test individually lets us avoid introducing new failing tests
while we go through the backlog of failing tests.
Depends on D129162
Differential Revision: https://phabricator.services.mozilla.com/D129163
Introduce a command line jit option that allows codegen functions that
emit debug code to know when to emit less of it. I'm currently using
this only in one place but it would be useful to use it more often, to
simplify whitebox testing of codegen.
Also give a better (and more typical) name to a function that
emits debug code.
Differential Revision: https://phabricator.services.mozilla.com/D130619
Current code is not explicit about device recreation before session re-creation. It is actually done by nsWindow::OnPaint() before OnInProcessDeviceReset() call. But it is not explicit.
gfxWindowsPlatform::HandleDeviceReset() does d3d device re-creation if it is necessary.
Differential Revision: https://phabricator.services.mozilla.com/D130957
This is always available and makes it more consistent for comparing print
settings.
Also change to round when converting back to DEVMODE for better accuracy.
Depends on D99810
Differential Revision: https://phabricator.services.mozilla.com/D99811
This means that more precise values can be stored, so that they match what we
actually retrieve from the printer and use in layout.
Depends on D99806
Differential Revision: https://phabricator.services.mozilla.com/D99807