The motivation of introducing the structs is to use 64-bit integer
arithmetic to prevent 32-bit integer overflow. One application is to fix
the integer overflow when resolving flex item's main size in Bug 1469649.
The structs can be a start point to add more useful methods to explore
saturation arithmetic.
Differential Revision: https://phabricator.services.mozilla.com/D123266
For whatever reason, ./mach doc is sourcing rewrite_mozbuild.py
causing the ast.get_source_segment function to get redefined.
(We do this redefinition because it is very easy to accidently
use get_source_segment in this code and forget it doesn't
work on Taskcluster.)
So add an exemption for sphinx to pass through to the original
function, but also fix an inifnite loop where we weren't calling
the original function.
Differential Revision: https://phabricator.services.mozilla.com/D123487
This is most commonly as a result of CU.evalInSandbox which
allows an arbitrary filename but when omitted will default
to the filename of the test, which is a filesystem path
and thus is disallowed.
Differential Revision: https://phabricator.services.mozilla.com/D122246
```
2021-08-17 Robert Relyea <rrelyea@redhat.com>
* lib/softoken/lowpbe.c:
Bug 1726022 Cache additional PBE entries
Firefox password manager is slow to load (22s for 361 passwords on
an i7), using 100% CPU and causing laptop fans to spin up
Possible solution based on increasing the number of cache entries
used by the PKCS5v2 values as the current code thrashes the cache as
we use 2 pbe's per read operation.
This patch is tested for correctness, but not fixing the issue. New
test cases are needed.
[fe82761e35aa] [tip]
```
Differential Revision: https://phabricator.services.mozilla.com/D123442
Move class fields to fixed slots. I was originally going to remove the function
alloc kinds but they are used to iterate all functions for relazification.
Another complication is that the JIT assumes that the prototype property for
function constructors is always stored in the first dynamic slot, which
requires extended functions have a special size class with six fixed slots.
Differential Revision: https://phabricator.services.mozilla.com/D123094
Functions can now have one of two classes so it's best if JSFunction::class_
doesn't exist or people may use that without thinking.
Differential Revision: https://phabricator.services.mozilla.com/D123232
GetClonedSelfHostedFunctionNameOffMainThread doesn't seem to be used any more,
so the JSFunction methods it used can go too.
Differential Revision: https://phabricator.services.mozilla.com/D123088
In preparation for storing this in a slot, store it as a JS::Value.
All values including JSScript pointers are stored as private values becuase the
JIT assumes it can access SelfHostedLazyScript pointers and JSScript pointers
in the same way. This means we will still need a trace hook when we store this
data in slots.
Differential Revision: https://phabricator.services.mozilla.com/D123085
In preparation for storing this in a slot, store it as a Value.
The native function is stored as a private value. This requires casting it to
void* which AFAIU only conditionally supported in the C++ spec but in practice
supported everwhere. We used to do this in other places, although we have
removed them now.
Differential Revision: https://phabricator.services.mozilla.com/D123084
This is useful later on so we can update a function's flags with a single
expression rather than reading, updating and setting the flags separately.
Differential Revision: https://phabricator.services.mozilla.com/D123081
We now no longer allocate the object. We also don't allocate intermediate shapes for
each property because we first fill the map and then allocate the final shape.
Differential Revision: https://phabricator.services.mozilla.com/D123096
If these properties will be dense elements, there's no reason to define them on the
template object (or template shape with later patches).
If they're sparse elements, we now don't include them in the object's shape, but
it should be okay to rely on InitElem ops to define them later on.
Differential Revision: https://phabricator.services.mozilla.com/D123095
We still allocate the object in the Stencil instantiation code, and then only
use its shape. This will be fixed in a later patch to allocate only the shape.
Differential Revision: https://phabricator.services.mozilla.com/D123093
The XDR and cloning code is the most complicated part unfortunately. This is based on
what we do for plain objects. Hopefully this can all be removed at some point.
Differential Revision: https://phabricator.services.mozilla.com/D123092
I tried to keep the changes minimal in this case.
We may need some more changes to Document::UnsuppressEventHandlingAndFireEvents to make it work
well with Fission (but that Fission work is totally unrelated to this fix).
Differential Revision: https://phabricator.services.mozilla.com/D123389