Skip to content

Upstream Merge#14

Merged
Aeshus merged 36 commits intoVRIG-RITSEC:mainfrom
Aeshus:main
Oct 8, 2025
Merged

Upstream Merge#14
Aeshus merged 36 commits intoVRIG-RITSEC:mainfrom
Aeshus:main

Conversation

@Aeshus
Copy link
Copy Markdown

@Aeshus Aeshus commented Oct 5, 2025

No description provided.

Manishearth and others added 30 commits September 16, 2025 02:45
Most of these APIs take in a timezone string or a zoned datetime.

I plan to make timezone strings something that can be generated in a
future CL.

I think with this the Temporal API surface is fully covered.

Bug: 439921647
Change-Id: I6a6a6964d8ecaa0c4f2f828a254387488b8f49ab
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8593480
Auto-Submit: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
The Operation.Attributes.isPure option was removed as part of
commit a2a7e95.

Change-Id: I7e6e293d48f99804b03c579f8cc0eb0765d0b0c4
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8598616
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Dominik Klemba <tacet@google.com>
Reviewed-by: Dominik Klemba <tacet@google.com>
This adds a new concept: "named strings", which are string-typed objects
that are expected to have greater structure. Like options bags,
producing generators can be registered for these.

Unfortunately I don't have a good way of testing this since I can't see
any way to trawl through the generated code other than parsing the
output of dumpCurrentProgram(). Seems to work, though.

Change-Id: I6a6a6964fef394af4595f0302d785a9c6da27de3
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8593716
Reviewed-by: Carl Smith <cffsmith@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
This is the very first step in allowing "full" wasm-gc signatures with
indexed reference types as parameters and output types.
This only adds an option to define such signatures inside a Wasm type
group and use them in a few selected statements like `ref.null` but
doesn't adapt any of the complex statements like wasm function
definitions, blocks, loops, ...

It also doesn't add code generators for signature types, so as a first
step they are "ProgramBuilder vaporware" for writing test cases.

Bug: 445356784
Change-Id: I5b9d2ff4791fcb09c4c41d4685949d2b6b460685
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8595216
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Manos Koukoutos <manoskouk@google.com>
Enums are now tagged with a name. If they are registered on the
environment, their type info can even be recovered.

This does not make the mutator attempt to stick within the enum. Worth
experimenting with separately.

Change-Id: I6a6a696493e097d348b58fada0a850881269d064
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8603428
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
This adds the necessary logic to resolve self and forward references
inside Wasm signatures. Due to the missing usages of these signature
types, there aren't great ways to test these features, yet.

Bug: 445356784
Change-Id: Icb5b99eff1872d301e6775a64546004d07b046fb
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8602557
Reviewed-by: Manos Koukoutos <manoskouk@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
CodeGenerators are now annotated with the types they produce and the
Contexts they provide. This allows us to pick an (almost) arbitrary
CodeGenerator and nest it in others such that we can definitely execute
it. Add a ContextGraph that makes this assembly possible. Because we now
have explicit yield points in CodeGenerators we can remove the
buildRecursive method.

Bug: 408966832
Change-Id: I0320bdd5fa64bd687cea87075b6607ceb61d779d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8386801
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Carl Smith <cffsmith@google.com>
These contexts were never required by anything,
as such we can just remove them.

Change-Id: Ied21ed55ef8c4a0cf860b635fdb2b9b1ea448d86
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8570516
Reviewed-by: Samuel Groß <saelo@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Carl Smith <cffsmith@google.com>
Custom enumerations in Profiles are now registered on the Environment at
startup.

Change-Id: Id95da20c7ef81a7d1f7377f87c408df27ab086c0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8609376
Commit-Queue: Carl Smith <cffsmith@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
The BuildLog in the ProgramBuilder needs to be initialized in the
initializer.

Change-Id: I236abcea185b89de3df09abdc777914e7dd8f619
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8609377
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Carl Smith <cffsmith@google.com>
Commit-Queue: Carl Smith <cffsmith@google.com>
This enables parsing and importing some of the syntax provided by the
explicit-resource-management feature.

The first stage is to parse `using` and `await using` statements
and add them to the AST for the fuzzIL compiler.

The second stage is to represent them with named variables, similar
to other (const, let, var) named variables.

We cannot just extend the existing named variables with a few more
declaration types, since (async) disposable variables are also
separate instructions, to enforce their respective syntactic
constraints.

This does not yet enable many useful examples though. We do not
yet support disposable variables in loops. Nor does the fuzzIL
compiler support computed properties yet, which are typically used
in conjunction with disposable variables.

Bug: 441669678
Change-Id: I63bcf8a8e2ed250c23a3017aab396d777ef9c900
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8552137
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
After a discussion, we are adjusting the flag probabilities.

The stable version of Turbolev (--turbolev) is now enabled with a 50% probability. In 82% of those cases, the future version (--turbolev-future) is also enabled, as a result it is never used alone.

Change-Id: I8b19b0f16414fd7928040020c9b4045820ef6b41
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8609477
Commit-Queue: Dominik Klemba <tacet@google.com>
Auto-Submit: Dominik Klemba <tacet@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Darius Mercadier <dmercadier@google.com>
…ed strings

Not quite sure if this is the best way to do it. For custom strings we
might want to register string-producing generators that can be used
here.

Change-Id: I6a6a69642074dbd56b8ea52c9d8fe6fab07cf514
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8603432
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
With all of the Temporal work done, Intl becomes much, much easier to
implement following a similar pattern.

Intl generally has more complicated options bags, but relatively simple
APIs. Most other Intl APIs can be expected to look like DateTimeFormat:
a constructor that takes a locale and an options bag, with a small
handful of APIs that return simple things like strings and arrays. These
types do not have the annoying cyclic generation problems like Temporal.

As usual I added a codegenerator for this since by default it takes a
couple steps for ApiMethodCallGenerator to figure out how to find these
"namespaced" builtins.

Change-Id: I6a6a6964c3995facc844c82dbfa69e03da573c2f
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8601526
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 340777103
Change-Id: I0946794f9517b4839db6f8a303c63bd8ceea3ad3
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8614796
Auto-Submit: Omer Katz <omerkatz@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Omer Katz <omerkatz@google.com>
Change-Id: I6a6a69646624421925b8d0af081e41b41b3676c1
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8613470
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Change-Id: I6a6a6964caab8ab9a9c97b37949bd90cd5bb1561
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8613471
Auto-Submit: Manish Goregaokar <manishearth@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Change-Id: I6a6a696400523afcfcd69f958b9b4c80e624abd2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8613685
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Manish Goregaokar <manishearth@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
MinorMS is on hold for the foreseeable future, there is no active
work on it, and the fuzzers haven't found a new issue in it in a
ling time. Therefore MinorMS no longer requires extensive fuzzer
coverage.

Change-Id: I35743813569287ae2bf3fbd52443aadff64ee884
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8620756
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Omer Katz <omerkatz@google.com>
Commit-Queue: Omer Katz <omerkatz@google.com>
Change-Id: I6a6a6964954f0f5cf274273760551698663c2b7b
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8616123
Auto-Submit: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Change-Id: I6a6a69649cf1fd43510fa9a501bf0addb27c2414
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8616124
Auto-Submit: Manish Goregaokar <manishearth@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Change-Id: I6a6a696485ee44adbbbe1b5c7e137e7164d477f9
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8616074
Auto-Submit: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
After this we just need to do DisplayNames, which unfortunately needs
another custom string generator so I saved it for last.

Change-Id: I6a6a69642b4316bd94ea39e92a675bf517202b48
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8616075
Auto-Submit: Manish Goregaokar <manishearth@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Change-Id: I0ed4abed4a3ef0c7e150971ec58f0aae7e5b0982
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8591236
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Carl Smith <cffsmith@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This reverts commit 80ad045.

Reason for revert: Crashes when compiling with -c release on 6.0.3.
Passes with 6.1.2, so this is likely a swift compiler bug.
Reverting for now.

Original change's description:
> Simplify constrained string generation in code generators
>
> Change-Id: I0ed4abed4a3ef0c7e150971ec58f0aae7e5b0982
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8591236
> Auto-Submit: Matthias Liedtke <mliedtke@google.com>
> Reviewed-by: Carl Smith <cffsmith@google.com>
> Commit-Queue: Matthias Liedtke <mliedtke@google.com>

No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I9a247d5e37c858633ba02d3a540de42853f68a53
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8632856
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
This introduces the PretenureAllocationSiteGenerator to stress V8's
garbage collector.

The new generator calls the %PretenureAllocationSite intrinsic which
promotes the passed object into the old generation heap.

Bug: 441469179
Change-Id: Ie764c7e9d2391f319b138c6f0f4f4f8eff529bd9
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8633736
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Dominik Klemba <tacet@google.com>
This adds support for computed class method (static and instance)
to fuzzIL and to the compiler for imports.

Supporting computed getters/setters and indexed methods + indexed
getters/setters is still future work. However, this adds a compiler
test file with the full array of cases that we could support,
not-yet-supported cases commented out for now.

This slightly refactors the compiler AST and shares property keys
for methods and properties, which can have the same structure.

In general, most of the boiler-plate code is similar to the existing
code for BeginClass{Instance|Static}Method with changes for computed
properties similar to BeginClassComputedProperty or
BeginObjectLiteralComputedMethod.

Similar to computed object methods, a caveat is that the typer might
not be able to compute available method names to be called.

Bug: 446634535
BYPASS_LARGE_CHANGE_WARNING: tests for completeness are large
Change-Id: I30a85eadbc0fe466a9fbc7dbfa3bb7aad5b51f7d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8614819
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Some stack-limit-sensitive issues might also run into timeouts more
likely. This reduces the stack limit in 10% of the runs to tickle
out these situations faster.

Change-Id: I5e7c2d4b52a71d34055bb77ce55d8112bc960fdd
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8635956
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 446634535
Change-Id: I74620e37096f98a1fc9d9e0e71d5ec1d2fd8baca
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8634697
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Liedtke and others added 5 commits October 2, 2025 01:40
Change-Id: I899267f93d6eefc6fe77de094987c5ce091816fb
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8634698
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
and document those globals that aren't registered, yet.

Change-Id: Iea9be27be5f2f7cdeebb1621d98fe3949ab7b7c5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8635957
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Also upgrade necesary dependencies.

Change-Id: I814feab19cf152bef72fe2f71694d4139eaa76f7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8636576
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
@Aeshus
Copy link
Copy Markdown
Author

Aeshus commented Oct 5, 2025

(Force pushed to force it to run GitHub actions, as they weren't enabled until after)

@Aeshus
Copy link
Copy Markdown
Author

Aeshus commented Oct 5, 2025

ALL GREEN :-)

@Aeshus Aeshus changed the title (WIP) Merge Upstream Upstream Merge Oct 6, 2025
@Aeshus Aeshus assigned Aeshus and Dudcom and unassigned Aeshus Oct 6, 2025
@Aeshus Aeshus requested a review from Dudcom October 6, 2025 14:24
@Aeshus Aeshus assigned Aeshus and unassigned Dudcom Oct 6, 2025
@Aeshus Aeshus merged commit af1c312 into VRIG-RITSEC:main Oct 8, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants