This patch adds a prefix field to the mozperftest perfherder data. This is a non-standard data field so the performance-artifact-schema.json file isn't modified to include it.
Differential Revision: https://phabricator.services.mozilla.com/D79296
Update existing tests to run with `SharedArrayBuffer` and `ArrayBuffer`.
Also add new tests for cases which weren't previously possible (detached
buffers and TypedArrays using inline storage).
Differential Revision: https://phabricator.services.mozilla.com/D76322
We no longer need to guard against non-shared TypedArrays when inlining
`Atomics` functions.
The `MemoryBarrierRequirement` changes for `M(Load|Store)UnboxedScalar` were
made to keep at least some users for `TypedArraySharedness`. In practice this
code won't be used anyway, because `TemporaryTypeSet::getTypedArraySharedness`
always returns `UnknownSharedness`. Also see bug 1225025.
Differential Revision: https://phabricator.services.mozilla.com/D76320
The TypedArray data extraction had to be moved from `AtomicAccess` into the
actual operation to account for the case when a TypedArray using inline data
is moved by the GC due to side-effects triggered by type conversions within
the operation. Part 4 contains tests to cover this case.
Because the TypedArray data is no longer passed to the operation, we can't use
it anymore to determine the data type from the `SharedMem<T>` parameter. Instead
pass an `ArrayOps<T>` instance to the operation, so we can determine `T` within
the lambda function. (Templated lambda functions are only available starting
with C++20!) The compiler should be able to optimise away the stack allocation
for this instance, so this won't incur any performance costs.
Differential Revision: https://phabricator.services.mozilla.com/D76319
These days, FunctionBox can be created without a JSFunction which is also
suitable for the asm.js dummyFunction case. Remove the function and pass name
and flags directly to the FunctionBox.
We set flags to INTERPRETED_NORMAL since that is only type of function
allowed at this point in the asm.js context.
Differential Revision: https://phabricator.services.mozilla.com/D78802
Avoid allocating the JSFunction / WasmModuleObject for asm.js during parsing,
but continue to generate the JS::WasmModule (which does not use GC). Add a
map to the CompilationInfo to keep track of these modules until stencils are
being instantiated.
Differential Revision: https://phabricator.services.mozilla.com/D78089
Simple implementation of skipping SyncObjectD3D11Host::Synchronize(). More optimization could be done in Bug 1635629.
Differential Revision: https://phabricator.services.mozilla.com/D75781
This basically undoes D77842, but it was better done on top than just
removing the patch from the stack. I could squash them if desired.
The previous patch to respect caching headers makes tests much much more
happy, to the point where I'm not sure whether we really need this or
not. Your call whether we should keep it or not.
Differential Revision: https://phabricator.services.mozilla.com/D78660
Make the stylesheet cache respect the same headers as the image cache
does. This makes no-cache stylesheets work as they do now, which is
useful for developers that want to develop sites locally, and for
shift-reloads, etc.
Differential Revision: https://phabricator.services.mozilla.com/D78659
This patch implements a per-process cache of parsed stylesheets for
non-inline sheets. The entries are evicted when the document gets
destroyed and there's no other document with the same principal around.
This works fine in practice even when navigating because CC happens
pretty late, but we could add an extra timer if we deem it worth it.
I had to adapt some tests so that they keep passing. They were already
clearing various image / network caches so it seems fine to also clear
this one.
Note that there's a very subtle change in the load data key: We only
miss the cache if the referrer _policy_ is different, not if the
referrer is different. While that is slightly dubious, that is the only
think that makes this effort somewhat worth it. Otherwise stylesheets
would have to be re-fetched if the referrer is different, which
effectively would mean to re-parse it if the document URI is different,
which is bad.
It seems like the network cache only keys on the referrer policy, so it
seems fine to do the same.
Differential Revision: https://phabricator.services.mozilla.com/D77457
Those methods have two sources to check after call: the return value and the pointer. This can be confusing as a caller may think they should check both when they don't need to. Since the two always behaves together (a valid pointer + NS_OK, or nullptr + NS_ERROR_FAILURE), this replaces the return value with the pointer.
Differential Revision: https://phabricator.services.mozilla.com/D79196
This patch adds a ResizeObserver to the input node, which when triggered
refreshes the codeMirror instance.
This is needed because codeMirror draws specific elements, like the cursor
and selection blocks, and they need to be re-computed if the editor size
changed (the line might have wrapped, and the cursor need to be in a new
position now).
Depends on D78649
Differential Revision: https://phabricator.services.mozilla.com/D78661
CodeMirror does not have an option to automatically remove
the selection when the editor is blurred, which means there
can be a kind-of weird visual glitch when there was a selection
and the user does another selection.
This patch listen for the blur event on the editor, and if there
was a selection, removes it.
The blur event need to be piped down from the sourceeditor.
A test is added to ensure this works as expected.
Differential Revision: https://phabricator.services.mozilla.com/D78649
This changes the test to be much more specific.
It adds a way of making gcslice only trigger a slice during an incremental collection, without which the collection loop can loop forever.
Differential Revision: https://phabricator.services.mozilla.com/D79136