Existing uses of OriginMetadata (with only mGroup and mOrigin) have been
adapted and they now always initialize mSuffix to an empty string.
Following patches will change it to real suffix if there's any.
Differential Revision: https://phabricator.services.mozilla.com/D104971
In bug 1688017 we blocked webrender on Mali-G76 devices due to reports
of crashes when playing video. Based on more reports by users and
further investigation of the crash data, it appears that Mali-G72 GPUs
are also affected by the same bug, but only on Android 11 (for both
GPUs). Crashes on other Mali GPUs and earlier android versions do
exist, but in much lower numbers.
Update the block to include G72 as well as G76, but only for Android
11.
Differential Revision: https://phabricator.services.mozilla.com/D105047
Because of conflicts between gcov_flush from gcc and the one from llvm, we renamed llvm one into ___custom_llvm_gcov_flush.
Since we switched to clang for linux ccov builds, this workaround is now useless.
Differential Revision: https://phabricator.services.mozilla.com/D104990
Bug 1690930 added sysroots that can be bootstrapped. With this change,
we allow --enable-bootstrap=install to pull the right sysroot for the
configured target, and --enable-bootstrap to update it if it was already
there.
Differential Revision: https://phabricator.services.mozilla.com/D104797
The original version of this patch only recovered CreateArgumentsObject on bailout if it didn't escape, but I removed that code based on discussion in #warpbuilder.
This code is tested by `/ion/dce-with-rinstructions.js`. Prior to this patch, it failed with `--scalar-replace-arguments`.
Differential Revision: https://phabricator.services.mozilla.com/D104489
As much as possible, I based `LApplyArgsObj` on `LApplyArrayGeneric`.
I wrote the tests here by looking at existing `apply` testcases in `jit-tests/tests/arguments` and writing similar test cases where the arguments object escapes.
Differential Revision: https://phabricator.services.mozilla.com/D104488
Pushing the contents of the `args` array in an ArgumentsData (after we have guaranteed that there are no forwarded arguments) is almost the same as pushing the contents of an elements array, but with an additional offset. In preparation for the next patch, this patch refactors PushElementsAsArguments to take an offset, and changes names/comments accordingly.
Differential Revision: https://phabricator.services.mozilla.com/D104487
Instead of adding `GuardArgumentsObjectNotOverriddenElement` and `GuardArgumentsObjectNotForwardedArgument` to go with `GuardArgumentsObjectNotOverriddenIterator`, I collapsed them into a single op.
This may also be useful in the future for supporting `arguments.callee`.
Depends on D104484
Differential Revision: https://phabricator.services.mozilla.com/D104485
Being able to test whether an ArgumentsObject has closed-over arguments by checking a flag instead of testing each argument makes future patches significantly simpler.
I considered just making closed-over arguments set ELEMENT_OVERRIDDEN_BIT, but this would make ArgumentsObjectArg fail if *any* argument was closed over, even if the specific argument we are loading is not.
Depends on D104483
Differential Revision: https://phabricator.services.mozilla.com/D104484
The only places we check ELEMENT_OVERRIDDEN_BIT are in `GetPropIRGenerator::tryAttachArgumentsObjectArg` and `MacroAssembler::loadArgumentsObjectElement`. In both cases, we subsequently also check for deleted elements. We can remove the redundant check.
This is consistent with ArgumentsObject::obj_delProperty, which sets the other overridden bits when deleting the corresponding property.
Depends on D104482
Differential Revision: https://phabricator.services.mozilla.com/D104483
Subsequent patches will introduce FunApplyArgsObj. I'm renaming FunApplyArgs to FunApplyMagicArgs in most places to make it easier to distinguish the two cases. (The exception is MApplyArgs/LApplyArgsGeneric, which I didn't rename because they can be produced by scalar replacement.)
Depends on D104481
Differential Revision: https://phabricator.services.mozilla.com/D104482
Unlike JS_OPTIMIZED_ARGUMENTS, which is not allowed to escape its own frame, an ArgumentsObject can be passed into a different function and cause us to attach a specialized stub. In general, this all works out well. However, it does mean that some assertions in `ArgumentsReplacer` are too conservative: even before we support inlining functions that use `arguments`, it is valid to have ArgumentsObject-specific MIR that does not use the `CreateArgumentsObject` we are replacing.
This patch fixes those assertions and adds some test coverage.
Differential Revision: https://phabricator.services.mozilla.com/D104481
Instead of snprintf.
Because some standalone code uses those functions directly or indirectly,
and PrintfTarget lives in mozglue, they now need to depend on mozglue
instead of mfbt. Except logalloc/replay, which cherry-picks what it
uses.
Differential Revision: https://phabricator.services.mozilla.com/D103730
Upon the construction of `eventCounts`, a wrapper of it will be created
because we set the initial values to 0. This exposes the interface
despite the pref is not set.
Differential Revision: https://phabricator.services.mozilla.com/D104872
Bug 1583610 modified the cipher suite ordering on ARM devices to prefer
ChaCha20/Poly1305 with the assumption that hardware support for AES wouldn't be
available. However, because there are ARM devices with hardware support for
AES, this patch makes this only happen when that support isn't available.
Differential Revision: https://phabricator.services.mozilla.com/D104897
I couldn't come up with a way to effectively cause this effect with
regular CSS I could put in marquee.css... But this matches the legacy
xul behavior and the chrome behavior, which should be compatible.
This undoes a reftest expectation change I included in bug 1618584. Our
behavior in those tests before this patch matches Safari, but Safari
passes the test I'm adding on this bug, so it is somewhat inconsistent.
Differential Revision: https://phabricator.services.mozilla.com/D105045
Now that we delay the load event for pdf.js, the pagerendered event listener
was being added too late and we were catching the second page rendered event.
Also, add a check to ensure the page rendered is the first page.
Differential Revision: https://phabricator.services.mozilla.com/D104866