Compiling ogg on Solaris no longer requires solaris-types.patch because
the ogg typedefs defined using std int types in os_types.h are adequate.
Differential Revision: https://phabricator.services.mozilla.com/D191265
When colors are converted to sRGB to render onto the display, make sure
that they are within sRGB gamut limits.
Gamut mapping is implemented according to:
https://drafts.csswg.org/css-color-4/#gamut-mapping
The color-mix-non-srgb-001 test is checking the expected result in
sRGB, which happens to be out of gamut limits, but because the test
is for color-mix and not gamut mapping, I changed the expected
results to the color space of the mix.
Differential Revision: https://phabricator.services.mozilla.com/D191083
Initial implementation for <iframe loading=lazy>
Also cleaned up some image lazy loading to be generalised
(sharing an intersection observer and some enums/funcs in Element).
Unimplemented details:
- Window load should not wait for in view lazy loading iframes.
Unplanned for this patch and ship for now.
(Chromium fail, WebKit pass)
We also pass some other WPTs other engines do not too already too.
Also added a WPT to ensure using parse-time base URI for lazy -> eager iframes.
Differential Revision: https://phabricator.services.mozilla.com/D190662
On arm32, MacroAssembler::wasmBoundsCheck32 routes the load directly to
`ma_ldr`, but that can't handle an offset of more than 4095. This patch
routes it via `ma_dataTransferN` instead, which can handle any offset.
For the small-offset case, the generated code remains unchanged.
Differential Revision: https://phabricator.services.mozilla.com/D191280
Even if ASCII, old line segmenter rules aren't compatible with UAX#14.
`layout/reftests/line-breaking/markup-src-1.html` runs on old segmenter prefs,
so we should use old non-breaking conditions for it with old segmenter.
Also, if word-break is break-all, we might have break opportunity for AL, NU,
IS, and QU combinations. So we should use ICU4X segmenter if break-all.
Differential Revision: https://phabricator.services.mozilla.com/D191144
`mCurrentWordContainsComplexChar` and `wordHasComplexChar` seem to be used
whether a word has breakable character. I would like to rename it for clean
up.
Also, `nsLineBreaker` has a fast path if character is ASCII, alphabet (AL) and
number (NU). But IS and QU are also unbreakable. So we should add it by using
simple table.
Differential Revision: https://phabricator.services.mozilla.com/D190379
For trailer blocks whose owning Wasm{Struct,Array}Objects make it into the
tenured heap, we have to tell the tenured heap how big those trailers are in
order to get major GCs to happen sufficiently frequently. If we don't do
that, programs that allocate many such objects with big trailers can end up
with wildly excessive space use, because the tenured heap's when-to-GC
heuristics are unaware that each (relatively small) Wasm{Struct,Array}Object
is "shadowed" by a large amount of malloc'd space, and so major collection
happens far too infrequently.
The changes are simple -- they just notify the the tenured heap's accounting
system by calling `AddCellMemory` when an object enters the tenured heap and
`GCContext::removeCellMemory` when an object leaves the tenured heap (is
finalized).
Some comments have been updated.
As a ridealong, the bizarrely-misnamed `MallocedBlockCache::allowSlow` has
been renamed to `::allocSlow`.
Differential Revision: https://phabricator.services.mozilla.com/D191093
Spawned nodejs servers sometimes print output to stdout or stderr.
While it's not strictly necessary to display, it's sometimes useful for
debugging, but it's problematic that we only dump the output when killing
the node server.
After landing D189212 this becomes even more problematic, as killing the
process via os.killpg means the file descriptors are already closed.
This patch makes it so for each started server we also spawn a new thread
that reads from stdout and stderr. This way the output is present in the
logs at the correct time.
Depends on D189212
Differential Revision: https://phabricator.services.mozilla.com/D189213
Added the start_new_session=True argument to Popen so that the node instance gets its own pgid.
On POSIX platforms the server shutdown will now be done using os.killpg() instead of process.terminate()
Differential Revision: https://phabricator.services.mozilla.com/D189212
This lets us generate a bit more compact code for VMFunction wrappers on
64-bit platforms. It also makes it easier to bake those stubs into the binary
in the future.
Differential Revision: https://phabricator.services.mozilla.com/D191170
Computing the expression would involve calling Babel's `generate` method on the AST node,
which is expansive. But we rarely read this attribute.
Differential Revision: https://phabricator.services.mozilla.com/D190179
We were creating them and later filtering them out.
Also `getUniqueIdentifiers` was duplicating a possibly 100M+ large array...
Differential Revision: https://phabricator.services.mozilla.com/D190177
On bug 1843454 STR, symbols.identifiers is a 100M large array.
So all these intermediate array cause a serious amount of short-lived arrays.
Differential Revision: https://phabricator.services.mozilla.com/D190176
As `callExpressions` are only used for knowing if that's a react module...
We could avoid a bunch of intermediate objects by computing right away if we have a react import.
Differential Revision: https://phabricator.services.mozilla.com/D190782
As `imports` are only used for knowing if that's a react module...
We could avoid a bunch of intermediate objects by computing right away if we have a react import.
Differential Revision: https://phabricator.services.mozilla.com/D190781
This was vendored without any reference of the vendored version, no
update script and a patch bundled into a README.
Vendor it using mach vendor, updating to the latest version.
Differential Revision: https://phabricator.services.mozilla.com/D190584
distutils have been removed from Python 3.12, so replace it:
Sometimes using packaging's Version, sometimes providing our own in the
case of mozrelease/versions.py. Add more tests for the latter.
Differential Revision: https://phabricator.services.mozilla.com/D190540