This script handles all the mechanical steps of importing irregexp from v8:
1. Acquire the source: either from github, or optionally from a local copy of v8.
2. Copy the contents of v8/src/regexp into js/src/new-regexp
- Exclude files that we have chosen not to import.
3. While doing so, update #includes:
- Change "src/regexp/*" to "new-regexp/*".
- Remove other v8-specific headers completely.
(This subsumes the previous "update-headers.py" script.)
4. Add '#include "new-regexp/regexp-shim.h" in the necessary places.
5. Update the VERSION file to include the correct git hash.
The only remaining task is to try compiling the code and see whether any of the shim code needs to be updated.
Differential Revision: https://phabricator.services.mozilla.com/D67716
--HG--
extra : moz-landing-system : lando
A `ProfileBufferChunk` represents a single chunk of memory, with an optional
link to the next chunk.
In the new Fission-compatible profiler storage, chunks will be allocated by a
chunk manager, filled with data by the profiler, and then released back to the
chunk manager.
The chunk manager may decide to destroy or recycle old chunks based on memory
limits (per process, or for the entire Firefox app).
Differential Revision: https://phabricator.services.mozilla.com/D67272
--HG--
extra : moz-landing-system : lando
This is no longer as important, with picture caching. Removing it
will simplify the planned changes to switch to a simpler segment
model based on nine-patch rectangles during scene building.
Differential Revision: https://phabricator.services.mozilla.com/D67792
--HG--
extra : moz-landing-system : lando
Also fix two other installer problems that were getting missed because of this:
one build error in PostUpdate and one use of an uninitialized value in the
installer, causing it to record that it had not registered the task when it had.
Differential Revision: https://phabricator.services.mozilla.com/D67915
--HG--
extra : moz-landing-system : lando
This patch adds the boilerplate necessary to support a new regexp flag. Externally visible changes (parsing the flag, the dotAll property on the prototype) are guarded behind ENABLE_NEW_REGEXP. Note: RegExpFlagsGetter turns out to be externally visible because it can be called on a non-regexp object with the dotAll property defined.
The actual implementation of dotAll comes for free with the fresh import of irregexp (bug 1367105).
There are two tests (tests/non262/RegExp/prototype.js and tests/non262/RegExp/flags.js) that need to be updated when this is turned on to add s/dotAll to the list of expected properties on the RegExp prototype. I will attach those changes to my patch that flips ENABLE_NEW_REGEXP to be on by default.
Differential Revision: https://phabricator.services.mozilla.com/D66844
--HG--
extra : moz-landing-system : lando
Previously, we kept the object IDs managed on content side only.
The GPU side would work with given indices.
When an object is destroyed, we'd free the ID on the content side and signal the GPU to delete the object.
Problem is that on the GPU process the object may still be kept alive for as long as any dependants are alive.
What this change is doing - hooking up the callbacks to the *actual* freeing of IDs on the GPU side.
These callbacks end up in messages from WebGPUParent to WebGPUChild, and only then the IDs are freed
on the content side and able to be reused.
Differential Revision: https://phabricator.services.mozilla.com/D67211
--HG--
extra : moz-landing-system : lando
Clamping of the blur radius depends on transform scale factors. This info is not available until later in the WebRender pipeline, so we need to delegate blur radius clamping to WebRender.
Differential Revision: https://phabricator.services.mozilla.com/D65804
--HG--
extra : moz-landing-system : lando
To avoid extra copy operations, we directly construct new FlexItem at
the end of current FlexLine, and we move the item to the next line if
the previous line needs to wrap.
Differential Revision: https://phabricator.services.mozilla.com/D67266
--HG--
extra : moz-landing-system : lando
Rather than inserting FlexLines and FlexItems at the front of the array,
which is inefficient, we reverse them after they are fully constructed.
nsTArray::Reverse() (or std::reverse()) is implemented by std::swap.In
order for FlexItem to be swappable, it needs to have an assignment
operator, which needs to be able to modify FlexItem's member variables.
To achieve this, we must drop the const qualifiers for the member
variables. And conveniently, this results in a compiler-generated
assignment operator which will do the right thing.
Differential Revision: https://phabricator.services.mozilla.com/D67587
--HG--
extra : moz-landing-system : lando
Notable changes in this part.
* FirstItem() and LastItem() now returns a reference to the FlexItem (if
such an item exists). The caller is required to ensure the FlexLine is
non-empty before calling the two methods.
* Deploy range-based for-loop to iterate all FlexItem in a FlexLine via
a new Items() method.
* The bookkeeping mNumItems is no longer needed as nsTArray::Length() is
sufficient.
* Use "." instead "->" because we now store FlexItem in an nsTArray.
Differential Revision: https://phabricator.services.mozilla.com/D67264
--HG--
extra : moz-landing-system : lando
In a later part, we are going to change nsFlexLine::mItems to store in
nsTArray and remove mNumItems.
Differential Revision: https://phabricator.services.mozilla.com/D67262
--HG--
extra : moz-landing-system : lando
By and large, this change accomplishes two things:
1. Run db.close() in finally clauses so that even if db access fails, we close
our connections. It also tries to avoid waiting on other, non-DB operations
before calling close, to avoid the DB connection needlessly hanging around.
2. Intercept all async database operations from the remote settings client to
kinto and ensuring they complete before the end of `profile-before-change`.
Any operations started after Services.startup.isShuttingDown (so after
quit/restart is initiated by the user) will throw. Operations started
beforehand are put in a set of operations, and remove themselves once
complete. We AsyncShutdown block on that set of operations completing.
Differential Revision: https://phabricator.services.mozilla.com/D66995
--HG--
extra : moz-landing-system : lando
This commit includes all the changes needed to get 'wasm/regress/' passing
jit-tests.
Differential Revision: https://phabricator.services.mozilla.com/D67259
--HG--
extra : moz-landing-system : lando
This commit includes all the changes necessary to get 'wasm/gc' jit-tests
passing.
Differential Revision: https://phabricator.services.mozilla.com/D67257
--HG--
extra : moz-landing-system : lando
This commit includes all the manual changes needed to get 'wasm/bigint'
jit-tests passing.
Differential Revision: https://phabricator.services.mozilla.com/D67256
--HG--
extra : moz-landing-system : lando
This commit includes all the manual changes needed to get 'wasm/' jit-tests
passing.
Differential Revision: https://phabricator.services.mozilla.com/D67255
--HG--
extra : moz-landing-system : lando
This commit uses a regex to automatically switch
(block $label valtype ...
with
(block $label (result valtype ...
This should have been combined with the earlier 'block' commit, but was not
realised until too late.
Differential Revision: https://phabricator.services.mozilla.com/D67254
--HG--
extra : moz-landing-system : lando
This commit uses a regex to automatically switch
(loop valtype ...
with
(loop (result valtype ...
Differential Revision: https://phabricator.services.mozilla.com/D67253
--HG--
extra : moz-landing-system : lando
This commit uses a regex to automatically switch the export syntax for table.
Differential Revision: https://phabricator.services.mozilla.com/D67252
--HG--
extra : moz-landing-system : lando
This commit uses a regex to automatically switch the export syntax
for memory.
Differential Revision: https://phabricator.services.mozilla.com/D67251
--HG--
extra : moz-landing-system : lando
This commit uses a regex to automatically change exports of indices
to specify that they are exporting functions.
Differential Revision: https://phabricator.services.mozilla.com/D67250
--HG--
extra : moz-landing-system : lando
This commit uses a regex to automatically switch call_indirect type signature
immediates to use an explicit '(type $id)' wrapper.
This has a negative interaction with the gc/ tests which use an identifier
immediately after call_indirect to specify the table and not the signature. A
later commit fixes this.
Differential Revision: https://phabricator.services.mozilla.com/D67249
--HG--
extra : moz-landing-system : lando
This commit uses a regex to automatically replace uses of
if valtype
with
if (result valtype)
Differential Revision: https://phabricator.services.mozilla.com/D67248
--HG--
extra : moz-landing-system : lando
This commit uses a regex to automatically replace uses of
block valtype
with
block (result valtype)
Differential Revision: https://phabricator.services.mozilla.com/D67247
--HG--
extra : moz-landing-system : lando
This commit removes the old WasmTextToBinary implementation and replaces
it with a stub that calls into the rust wat implementation.
The old wasmTextToBinary function took an optional boolean parameter to
indicate that additional metadata was desired. This extra metadata was
a list of offsets of instructions in the code section. I'm not sure if
this was intentional or not, but it looks like it only includes root
expressions of nested s-exprs.
These offsets were used in two tests, debug/wasm-breakpoints.js and a
wasm/regress test. Adding this functionality into 'wat' proved to be a large
change for a function that didn't seem to have much use cases. A new
wasmCodeOffsets function was added to replicate this feature. It's implemented
in rust using the 'wasmparser' crate that cranelift uses. When cranelift is
compiled, this shouldn't result in an increased binary size. If the compile
time or binary size proves to be an issue in non-cranelift builds, I think
we can make this a conditional feature for JS-shells only.
Differential Revision: https://phabricator.services.mozilla.com/D67245
--HG--
extra : moz-landing-system : lando