Skip to content

base fuzzili update - #52

Open
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main
Open

base fuzzili update #52
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main

Conversation

@Dudcom

Copy link
Copy Markdown

updating with head

@Dudcom

Copy link
Copy Markdown
Author

we are in hell

Liedtkeand others added 29 commits May 19, 2026 04:20
Bug: 447125167
Change-Id: I694c2feac0d42f1afb47f3ec2e9c94b2401382fe
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9279080
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bug: 447125167
Change-Id: Ifa7899b5e12a30718f64ccac36e693aa91020e5d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9288582
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
This flag used to be always set in fuzzers due to the implication from
`--fuzzing`, but the implication is removed now (crrev.com/c/7845199).
Hence randomize it with high probability (still not 100% to avoid having
blind spots), except for sandbox fuzzers where it'd not bring any benefit
due to them ignoring CHECKs.
Bug: 475707969
Change-Id: Ia8a495af600acc40dcd188fc1726e1e039237c79
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310081
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Add support for handling CreateArray operations with the
`elementGroupName` property set in OperationMutator and
MinimizationPostProcessor.
Bug: 503429420
Change-Id: I29170419cda15d9a73d0a9ad43aaa2ebd0322081
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9293280
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Add randomized addition of --no-flush-bytecode, to occasionally test
this non-production scenario.
Don't explicitly add --flush-bytecode: it's the default value anyway,
and it didn't help to reenable it when flag implications (--jit-fuzzing
to --no-flush-bytecode) disable it.
Bug: 475707969
Change-Id: Ia2c2141430f222f6c3d7c4cb946762c725c65204
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9278461
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I5b818576409d654a039edac6dbcfa959352018aa
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296863
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 514576448
Change-Id: I4f0236055f21611a582fef526a721e13f58ca2f9
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310040
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 445356784
Change-Id: I3a07fe4d292dd5b988c655936e0abd889338cbe8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310720
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This CL adds the `selectionMode` property to the `OptionsBag` struct to
configure how `OptionsBag` selects the properties for the object literal
it generates. The default behavior is preserved with the `anySubset`
case. The new `exactlyOne` case configures `OptionsBag` to select
exactly one property for the object literal.
This CL also makes `OptionsBag` easily usable in profiles by adding an
`additionalOptionsBag` property to the `Profile` struct and by removing
the strict assert on the supported `OptionsBag` properties array.
Bug: 512875834
Change-Id: I6b6348f515cc736ee281af9c9e384ac93eaf762c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9311541
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I7d2b1580b49211e1ec184f78798588eb7b4ea6ca
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313600
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514906333
Change-Id: Ib94a058c73bab07f1b9292e102439af847593006
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310083
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
…tions
TAG=agy
CONV=0a8bad59-c896-4fbd-925a-620838620623
Change-Id: I82d1eafe22df70aa455b98d0de8795820398a08c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320640
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
BUG=515494290
TAG=agy
CONV=3987abe0-de45-4002-95ae-4f62b5e0cf10
Change-Id: I0324d4ef618f2bae310eb392ddff5aa3b71b9c0d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320641
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 515363087
Change-Id: I06060612d8eee9bf783a849352435c5b4bf9c893
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317280
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
1) Hide variables outside the worker function so that the function
doesn't use them.
2) Make the main thread wait for the worker to finish.
Fixed: 497549860
Change-Id: If3b22fae7e61cca33b1c55fbfab3fcf9f5f6abaf
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9282445
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
Previously, randomWasmTypeDef() would only return type definitions
of non-ad-hoc signatures.
With this fix, it should also return array and struct type definitions.
Bug: 445356784
Change-Id: I6b131c42e61c17771fa211c213d64456b964bdb5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320520
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
This CL adds support for the br_on_cast instruction.
Bug: 474940922
Change-Id: Iadb552b42b1c721d0b5c462afda75aff91bb4791
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9300280
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Support for "import * as ns" import syntax, including the deferred
import variant. Other imports (named, default, etc.) are future
work.
https://github.com/tc39/proposal-defer-import-eval
Bug: 398218423
Change-Id: If0e691054f0668cd4eed2bbdc9532b0c520fec4a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313400
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
This CL adds support for the br_on_cast_fail instruction.
Bug: 474940922
Change-Id: Icacbd109fff843179f69806769437322f14326c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9299601
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 515363087
Change-Id: I41e4b487ee08dbf7da22959c6c1d08e4099a6ad4
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317282
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
This was staged for V8 in https://crrev.com/c/7845195.
Bug: 465715798
Change-Id: I1b01eea17c3c1049d66251de6a025747aef43bb7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333500
Reviewed-by: Olivier Flückiger <olivf@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Node.js v26 branched, the new nightly version is v27.
we need to stay up-to-date to be able to test new V8 features.
Change-Id: I4eea87f24cfff0e2cb48cb21904d6c0c5bb97421
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317781
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This CL adapts WasmReturnCallDirectGenerator and
WasmReturnCallIndirectGenerator to use `subsumes()` instead of
equality to find functions with compatible output types.
Bug: 445356784
Change-Id: I7c3113c54b7752809320e9d58fbbb11eaca10d4f
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9318221
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL adds support for the ref.func instruction.
Bug: 474940922
Change-Id: I885b966598a9d72c161d2ef7bee910032576a53d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296864
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
The table type can be easily inferred by the input table, so the
table.get doesn't need a type immediate. For fuzzilli however, the input
table can also come from JS (created by CreateWasmTable). Later on, the
fuzzer can replace that table input with an arbitrary other input.
This means that we need to encode the element type in the table.get
operation, so that the JSTyper always knows the correct result type.
I removed this in commit 7e5724c (among
other things that are indeed unnecessary).
Bug: 430171132
Change-Id: Icffc95fadb79979d7125a33d797868c5a6ad50e5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9337021
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
This allows fuzzilli to use the same handler object in different proxy objects. Helps testing upcoming proxy ICs.
Bug: 516717223
Change-Id: Ia5c47196a9233e3696b81d0b31c63a728c57fa50
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336380
Commit-Queue: Olivier Flückiger <olivf@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Olivier Flückiger <olivf@google.com>
- Add support for i31ref in JavaScriptLifter for CreateWasmTable.
- Update WasmDefineTableGenerator to randomly use funcref, externref, and i31ref.
- Add missing WasmTableGenerator to generate JS-side WebAssembly.Table objects.
Bug: 430171132
Change-Id: I4a435276d6e7a2d602738ae0b1b3f4c45788e0a7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333760
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Bug: 430171132
Change-Id: I4697952c9cef237c2cb9339343d6fec127d2c347
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333860
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
The test is executed only when generating bundles, since it requires
passing --bundles to d8 to run.
TAG=agy
CONV=5588ce4d-a98f-415f-b04b-5c6a9c3508b7
Change-Id: I7eb330ea3ce547f96fc55892c961a49515721546
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336701
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Liedtkeand others added 30 commits August 13, 2026 02:02
In JavaScript, optional chaining (`?.`) on the left-hand side of an
assignment is disallowed by static early error rules:
https://tc39.es/ecma262/#sec-static-semantics-assignmenttargettype
Previously, lifting a guarded SetPrivateProperty instruction emitted
`obj?.#prop = val;`, producing an uncatchable parse-time SyntaxError.
This change aligns SetPrivateProperty with SetProperty and
UpdatePrivateProperty to always emit standard member access
(`obj.#prop = val;`) on the assignment target.
Change-Id: Ibf8b83d2442dfe5b538e450c05fad9ce00f359d6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672675
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Change-Id: I3b0d3d55b213aecc94cb0e12843b7c2572a26cd5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672975
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/JavaScript_interface/validate_static#return_value
Change-Id: I413cd116d66f3f2912f87f9e83bdc0440931006d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673596
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
.. and enable acquire-release-atomics flag.
Bug: 498924945
Fixed: 535260641
Change-Id: Id4f863c74b540d1879bb324e10a1cca8939588d2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673715
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Change-Id: I90e62d7e7d6805e98ad869d746967682dd421c7a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678017
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
- Fix empty method name in Duration construction ("from")
- Fix argument count for PlainYearMonth and PlainMonthDay constructors
- Fix malformed subsecond separator in UTC offset strings
- Fix PlainMonthDay.prototype.with returning PlainYearMonth instead of
PlainMonthDay
- Fix PlainMonthDay.prototype.equals accepting PlainYearMonth parameters
- Fix Duration.prototype.total return type to number instead of Duration
- Fix ZonedDateTime.prototype.getTimeZoneTransition returning
Instant | nullish
- Remove duplicate "auto" entry in jsTemporalUnitEnum
Change-Id: If94ec911e1966d97cb7bd64c9c9533429081f958
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678375
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Manish Goregaokar <manishearth@google.com>
In JSTyper, async class and object literal methods previously
defaulted to returning .jsPromise() (resolvingTo: .jsAnything).
This change aligns async methods with standalone async functions by
inferring the promise resolving type from the method's return value:
`.jsPromise(resolvingTo: resultType.returnType.promiseResolvingTo)`.
TAG=agy
Change-Id: I9ab1e4dace9a9d04d7dc6c7fb915a3a18b2558a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9676859
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
1. Fix String.prototype.trim return type to .jsString.
2. Register missing OptionsBag.jsTemporalDurationCompareSettings in
init().
3. Fix Object.entries return type to .jsArray.
4. Fix Intl.Locale numeric property to .boolean, and getTextInfo return
type to .object(withProperties: ["direction"]).
5. Update constructor callabilities: Function to .functionAndConstructor
and Temporal / Intl constructors to .constructor.
6. Make parameter optionality conform to spec for Object.create,
Array.prototype.sort, Array.prototype.join, and Date.prototype.set*.
7. Synchronize globalThis property registration with
globalThisGroup.instanceType in finalizeGlobalThisGroup().
8. Fix duplicate enum assertion message in registerObjectGroup().
9. Make TypedArray.prototype.join and TypedArray.prototype.sort
parameter optionality conform to spec.
10. Update Date.prototype.setHours and Date.prototype.setUTCHours to
support optional 4th milliseconds argument.
TAG=agy
Change-Id: I4b787be0ae8a82c71290452d9ac3466b87b03635
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9677317
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
and mark one more "join" method's separator parameter as optional.
Change-Id: I253e9d0f50fc7f63b27a2d57c885c12acedd51a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9682955
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This reverts commit 60a81c6.
Reason for revert: experiment finished
Original change's description:
> [v8] Introduce unsafe flag for binaryen integration evaluation
>
> Fuzzilli itself doesn't generate ref.cast_desc_eq instructions, so
> this can only be found by the Binaryen integration.
>
> Corresponding V8 change: https://crrev.com/c/8236732
>
> Bug: 498924945
> Change-Id: Ibb9b6e66efacc283ef68288024acedfbeb909a01
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9666335
> Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
> Commit-Queue: Matthias Liedtke <mliedtke@google.com>
> Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945, 546884393
Bug: 498924945
Change-Id: Ic89faeef0e298c5ee9daa9598c723ae774b7aa22
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9686395
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
…e mutation
Before this change, private property generators had ~0.19% invocation success rate because referencing an undeclared private field (#foo) inside a class is a SyntaxError that cannot be caught by runtime try-catch blocks. Hence, rather than emitting invalid code, the Generators were returning without generating any instruction.
1. Extended ILType.object(...) to track privateProperties and privateMethods
2. When private member generators run inside a class method before properties are declared, referenced names are recorded and automatically emitted at EndClassDefinition(). This eliminates syntax errors and raises private generator success rates to 100.00%.
3. Updated OperationMutator selecting valid private members from scope for mutations.
Bug: 534650967
Bug: 522217077
Change-Id: I6c1ce14c58559c959866ecafab050435f76f44c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9614016
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
- Temporal.Instant.from and Temporal.Duration.from do not accept an
options bag. Update temporalFromSignature to emit 1-parameter
signatures when settingsArg is nil.
- Explicitly pass settingsArg: jsTemporalOverflowSettings for PlainTime,
PlainYearMonth, PlainMonthDay, and PlainDate from() overloads.
Change-Id: I4dfbf7cddf10c99d35abc436dc8d4e3203f5d9df
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678376
Reviewed-by: Manish Goregaokar <manishearth@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Bug: 529283573
Change-Id: I894b4391d2465421b44e3a0d277c5e4015a2b84e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9694915
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945
Change-Id: I5da4f0dfc050d389bdc5168bc45d67f3d530b262
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9699455
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Currently, only --wasm-features=custom-descriptors is supported.
This will allow to enable custom descriptors related code, including
lifting "exactness", selectively.
Bug: 502246833
Change-Id: I4272a7e06555303ccd134c74c6121ee236ab19f6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9680135
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL makes the output of the existing instructions
wasmArrayNewFixed
wasmArrayNewDefault
wasmStructNew
wasmStructNewDefault
wasmRefFunc
wasmRefNull
exact, depending on the “enableCustomDescriptors” config.
It also adds support for lifting the “exact” property to Wasm Code, adjusts subtyping for exact types, and supports exact index-typed globals.
Bug: 502246833
Change-Id: I7098977f0b16d6372e5d3106d7c711ea8a1fa410
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9665935
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
However, they won't get generated by the fuzzer yet because
`WasmCustomDescriptorsStructTypesGenerator` is not enabled until
all instructions and generators are implemented and adapted.
Bug: 502246833
Change-Id: Iee0d7d179a9fbf6d6ac0484eb0fc3dbba5df892c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9670676
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
This CL makes the `indexTypes` parameter of `wasmDefineStructType()`
default to []. This cleans up the code a bit.
Change-Id: I492c2802041afeb4432293c5a4a27e84db51bc6a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673597
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Bug: 515363087
Change-Id: I044310fb22e58953207c45e1b160e2719e639f4e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9691916
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…er operations is not redundant
Bug: 552300848
Change-Id: Ic384c15945970e6b835f20be8864c3600e54e5b8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723615
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 552300848
Change-Id: I90609f3fad2a9b0a7e55c838af13b55c0d5567fb
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723675
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…tionAndCompilation
testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
unrelated CLs
Bug: 553335553
Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
For running shorter experiments that measure any statistics, it is
useful to start worker threads with a deterministic delay as it
otherwise creates too much variance in measurements.
It is still useful to start workers later for the commented reasons,
but now they can be started in an experiment setup with e.g. a delay
of 120 seconds each. This is particularly useful when running
experiments with a low `--corpusGenerationIterations` parameter.
Bug: 476974566
Change-Id: If90d92c7b1d777281408561a9828f14357cc023b
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9739195
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Add `ILType.namedInteger(ofName:)` and `namedInteger` generator support,
mirroring the existing `namedString` design.
This feature is introduced with various `namedInteger`s for generating
bounded integer types (e.g., uint8, int16, uint32).
Bug: 553587894
Change-Id: I87b835d3148449539451983bebea038c88530135
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9734538
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
TAG=agy
Bug: 498924945, 535260641
Change-Id: I73479be7306782db26ae19e8353fda18cf876ba7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729009
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
…deGenerationAndCompilation"
This reverts commit e154660.
Reason for revert: Fixed the Binaryen versioning
Fix Link: https://chrome-internal-review.git.corp.google.com/c/v8/fuzzilli/+/9729009
Original change's description:
> [test] Increase failure rate tolerance for testBinaryenWasmCodeGenerationAndCompilation
>
> testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
> unrelated CLs
>
> Bug: 553335553
> Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
> Reviewed-by: Michael Achenbach <machenbach@google.com>
> Reviewed-by: Matthias Liedtke <mliedtke@google.com>
> Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 553335553
Change-Id: If4018be5108a742944b1e9698a8cd34a7eda2ed0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9738219
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
- Decouple `isGuarded` (try-catch) and `isOptional` (optional chaining `?.`) across operations in `operations.proto`, `JsOperations.swift`, and `ProgramBuilder.swift`
- Add `isOptional` to operations that support optional chaining in JavaScript syntax
- Add `isGuarded` to `UpdateProperty` and `UpdatePrivateProperty` to allow them to be wrapped in try-catch
- Update FuzzIL `JavaScriptLifter.swift` to rely on `isOptional` for `?.` and decouple it from `haveSpecialHandlingForGuardedOp`
- Regenerate Protobuf swift bindings
- Update `LifterTest.swift` expectations and builder syntax to correctly test combinations of `isOptional` and `isGuarded`
Bug: 537236612
Change-Id: I6374de16ad742566a1cdd243ada1b5ac44ae13a1
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729375
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 476974566
Change-Id: I21cfcffec9b6ed20cf38bb224d44df5638d2d754
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9748516
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Change-Id: Idaa2f824303a4a6c6062affcbb3d68a345fd2605
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672936
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This is too slow to be convenient, the CI is already reasonably slow for
testing both d8 + Node.js + presubmit-checks on Linux debug.
Bug: 498924945
Change-Id: I9ea5e9797d7dcb391d83965304c523fee2099793
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9752235
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Sign up for freeto 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.

13 participants

@Dudcom@Liedtke@emaxx-google@tbantikyan@rherouart-collab@marjakh@leonbett@o-@nickie@rmahdav@mi-ac@lebe-g@omerktz
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
base fuzzili update by Dudcom · Pull Request #52 · VRIG-RITSEC/fuzzillai · GitHub
Skip to content

base fuzzili update - #52

Open
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main
Open

base fuzzili update #52
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main

Conversation

@Dudcom

Copy link
Copy Markdown

updating with head

@Dudcom

Copy link
Copy Markdown
Author

we are in hell

Liedtkeand others added 29 commits May 19, 2026 04:20
Bug: 447125167
Change-Id: I694c2feac0d42f1afb47f3ec2e9c94b2401382fe
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9279080
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bug: 447125167
Change-Id: Ifa7899b5e12a30718f64ccac36e693aa91020e5d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9288582
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
This flag used to be always set in fuzzers due to the implication from
`--fuzzing`, but the implication is removed now (crrev.com/c/7845199).
Hence randomize it with high probability (still not 100% to avoid having
blind spots), except for sandbox fuzzers where it'd not bring any benefit
due to them ignoring CHECKs.
Bug: 475707969
Change-Id: Ia8a495af600acc40dcd188fc1726e1e039237c79
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310081
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Add support for handling CreateArray operations with the
`elementGroupName` property set in OperationMutator and
MinimizationPostProcessor.
Bug: 503429420
Change-Id: I29170419cda15d9a73d0a9ad43aaa2ebd0322081
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9293280
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Add randomized addition of --no-flush-bytecode, to occasionally test
this non-production scenario.
Don't explicitly add --flush-bytecode: it's the default value anyway,
and it didn't help to reenable it when flag implications (--jit-fuzzing
to --no-flush-bytecode) disable it.
Bug: 475707969
Change-Id: Ia2c2141430f222f6c3d7c4cb946762c725c65204
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9278461
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I5b818576409d654a039edac6dbcfa959352018aa
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296863
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 514576448
Change-Id: I4f0236055f21611a582fef526a721e13f58ca2f9
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310040
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 445356784
Change-Id: I3a07fe4d292dd5b988c655936e0abd889338cbe8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310720
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This CL adds the `selectionMode` property to the `OptionsBag` struct to
configure how `OptionsBag` selects the properties for the object literal
it generates. The default behavior is preserved with the `anySubset`
case. The new `exactlyOne` case configures `OptionsBag` to select
exactly one property for the object literal.
This CL also makes `OptionsBag` easily usable in profiles by adding an
`additionalOptionsBag` property to the `Profile` struct and by removing
the strict assert on the supported `OptionsBag` properties array.
Bug: 512875834
Change-Id: I6b6348f515cc736ee281af9c9e384ac93eaf762c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9311541
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I7d2b1580b49211e1ec184f78798588eb7b4ea6ca
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313600
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514906333
Change-Id: Ib94a058c73bab07f1b9292e102439af847593006
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310083
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
…tions
TAG=agy
CONV=0a8bad59-c896-4fbd-925a-620838620623
Change-Id: I82d1eafe22df70aa455b98d0de8795820398a08c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320640
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
BUG=515494290
TAG=agy
CONV=3987abe0-de45-4002-95ae-4f62b5e0cf10
Change-Id: I0324d4ef618f2bae310eb392ddff5aa3b71b9c0d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320641
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 515363087
Change-Id: I06060612d8eee9bf783a849352435c5b4bf9c893
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317280
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
1) Hide variables outside the worker function so that the function
doesn't use them.
2) Make the main thread wait for the worker to finish.
Fixed: 497549860
Change-Id: If3b22fae7e61cca33b1c55fbfab3fcf9f5f6abaf
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9282445
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
Previously, randomWasmTypeDef() would only return type definitions
of non-ad-hoc signatures.
With this fix, it should also return array and struct type definitions.
Bug: 445356784
Change-Id: I6b131c42e61c17771fa211c213d64456b964bdb5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320520
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
This CL adds support for the br_on_cast instruction.
Bug: 474940922
Change-Id: Iadb552b42b1c721d0b5c462afda75aff91bb4791
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9300280
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Support for "import * as ns" import syntax, including the deferred
import variant. Other imports (named, default, etc.) are future
work.
https://github.com/tc39/proposal-defer-import-eval
Bug: 398218423
Change-Id: If0e691054f0668cd4eed2bbdc9532b0c520fec4a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313400
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
This CL adds support for the br_on_cast_fail instruction.
Bug: 474940922
Change-Id: Icacbd109fff843179f69806769437322f14326c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9299601
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 515363087
Change-Id: I41e4b487ee08dbf7da22959c6c1d08e4099a6ad4
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317282
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
This was staged for V8 in https://crrev.com/c/7845195.
Bug: 465715798
Change-Id: I1b01eea17c3c1049d66251de6a025747aef43bb7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333500
Reviewed-by: Olivier Flückiger <olivf@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Node.js v26 branched, the new nightly version is v27.
we need to stay up-to-date to be able to test new V8 features.
Change-Id: I4eea87f24cfff0e2cb48cb21904d6c0c5bb97421
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317781
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This CL adapts WasmReturnCallDirectGenerator and
WasmReturnCallIndirectGenerator to use `subsumes()` instead of
equality to find functions with compatible output types.
Bug: 445356784
Change-Id: I7c3113c54b7752809320e9d58fbbb11eaca10d4f
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9318221
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL adds support for the ref.func instruction.
Bug: 474940922
Change-Id: I885b966598a9d72c161d2ef7bee910032576a53d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296864
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
The table type can be easily inferred by the input table, so the
table.get doesn't need a type immediate. For fuzzilli however, the input
table can also come from JS (created by CreateWasmTable). Later on, the
fuzzer can replace that table input with an arbitrary other input.
This means that we need to encode the element type in the table.get
operation, so that the JSTyper always knows the correct result type.
I removed this in commit 7e5724c (among
other things that are indeed unnecessary).
Bug: 430171132
Change-Id: Icffc95fadb79979d7125a33d797868c5a6ad50e5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9337021
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
This allows fuzzilli to use the same handler object in different proxy objects. Helps testing upcoming proxy ICs.
Bug: 516717223
Change-Id: Ia5c47196a9233e3696b81d0b31c63a728c57fa50
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336380
Commit-Queue: Olivier Flückiger <olivf@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Olivier Flückiger <olivf@google.com>
- Add support for i31ref in JavaScriptLifter for CreateWasmTable.
- Update WasmDefineTableGenerator to randomly use funcref, externref, and i31ref.
- Add missing WasmTableGenerator to generate JS-side WebAssembly.Table objects.
Bug: 430171132
Change-Id: I4a435276d6e7a2d602738ae0b1b3f4c45788e0a7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333760
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Bug: 430171132
Change-Id: I4697952c9cef237c2cb9339343d6fec127d2c347
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333860
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
The test is executed only when generating bundles, since it requires
passing --bundles to d8 to run.
TAG=agy
CONV=5588ce4d-a98f-415f-b04b-5c6a9c3508b7
Change-Id: I7eb330ea3ce547f96fc55892c961a49515721546
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336701
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Liedtkeand others added 30 commits August 13, 2026 02:02
In JavaScript, optional chaining (`?.`) on the left-hand side of an
assignment is disallowed by static early error rules:
https://tc39.es/ecma262/#sec-static-semantics-assignmenttargettype
Previously, lifting a guarded SetPrivateProperty instruction emitted
`obj?.#prop = val;`, producing an uncatchable parse-time SyntaxError.
This change aligns SetPrivateProperty with SetProperty and
UpdatePrivateProperty to always emit standard member access
(`obj.#prop = val;`) on the assignment target.
Change-Id: Ibf8b83d2442dfe5b538e450c05fad9ce00f359d6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672675
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Change-Id: I3b0d3d55b213aecc94cb0e12843b7c2572a26cd5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672975
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/JavaScript_interface/validate_static#return_value
Change-Id: I413cd116d66f3f2912f87f9e83bdc0440931006d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673596
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
.. and enable acquire-release-atomics flag.
Bug: 498924945
Fixed: 535260641
Change-Id: Id4f863c74b540d1879bb324e10a1cca8939588d2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673715
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Change-Id: I90e62d7e7d6805e98ad869d746967682dd421c7a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678017
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
- Fix empty method name in Duration construction ("from")
- Fix argument count for PlainYearMonth and PlainMonthDay constructors
- Fix malformed subsecond separator in UTC offset strings
- Fix PlainMonthDay.prototype.with returning PlainYearMonth instead of
PlainMonthDay
- Fix PlainMonthDay.prototype.equals accepting PlainYearMonth parameters
- Fix Duration.prototype.total return type to number instead of Duration
- Fix ZonedDateTime.prototype.getTimeZoneTransition returning
Instant | nullish
- Remove duplicate "auto" entry in jsTemporalUnitEnum
Change-Id: If94ec911e1966d97cb7bd64c9c9533429081f958
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678375
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Manish Goregaokar <manishearth@google.com>
In JSTyper, async class and object literal methods previously
defaulted to returning .jsPromise() (resolvingTo: .jsAnything).
This change aligns async methods with standalone async functions by
inferring the promise resolving type from the method's return value:
`.jsPromise(resolvingTo: resultType.returnType.promiseResolvingTo)`.
TAG=agy
Change-Id: I9ab1e4dace9a9d04d7dc6c7fb915a3a18b2558a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9676859
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
1. Fix String.prototype.trim return type to .jsString.
2. Register missing OptionsBag.jsTemporalDurationCompareSettings in
init().
3. Fix Object.entries return type to .jsArray.
4. Fix Intl.Locale numeric property to .boolean, and getTextInfo return
type to .object(withProperties: ["direction"]).
5. Update constructor callabilities: Function to .functionAndConstructor
and Temporal / Intl constructors to .constructor.
6. Make parameter optionality conform to spec for Object.create,
Array.prototype.sort, Array.prototype.join, and Date.prototype.set*.
7. Synchronize globalThis property registration with
globalThisGroup.instanceType in finalizeGlobalThisGroup().
8. Fix duplicate enum assertion message in registerObjectGroup().
9. Make TypedArray.prototype.join and TypedArray.prototype.sort
parameter optionality conform to spec.
10. Update Date.prototype.setHours and Date.prototype.setUTCHours to
support optional 4th milliseconds argument.
TAG=agy
Change-Id: I4b787be0ae8a82c71290452d9ac3466b87b03635
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9677317
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
and mark one more "join" method's separator parameter as optional.
Change-Id: I253e9d0f50fc7f63b27a2d57c885c12acedd51a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9682955
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This reverts commit 60a81c6.
Reason for revert: experiment finished
Original change's description:
> [v8] Introduce unsafe flag for binaryen integration evaluation
>
> Fuzzilli itself doesn't generate ref.cast_desc_eq instructions, so
> this can only be found by the Binaryen integration.
>
> Corresponding V8 change: https://crrev.com/c/8236732
>
> Bug: 498924945
> Change-Id: Ibb9b6e66efacc283ef68288024acedfbeb909a01
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9666335
> Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
> Commit-Queue: Matthias Liedtke <mliedtke@google.com>
> Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945, 546884393
Bug: 498924945
Change-Id: Ic89faeef0e298c5ee9daa9598c723ae774b7aa22
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9686395
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
…e mutation
Before this change, private property generators had ~0.19% invocation success rate because referencing an undeclared private field (#foo) inside a class is a SyntaxError that cannot be caught by runtime try-catch blocks. Hence, rather than emitting invalid code, the Generators were returning without generating any instruction.
1. Extended ILType.object(...) to track privateProperties and privateMethods
2. When private member generators run inside a class method before properties are declared, referenced names are recorded and automatically emitted at EndClassDefinition(). This eliminates syntax errors and raises private generator success rates to 100.00%.
3. Updated OperationMutator selecting valid private members from scope for mutations.
Bug: 534650967
Bug: 522217077
Change-Id: I6c1ce14c58559c959866ecafab050435f76f44c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9614016
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
- Temporal.Instant.from and Temporal.Duration.from do not accept an
options bag. Update temporalFromSignature to emit 1-parameter
signatures when settingsArg is nil.
- Explicitly pass settingsArg: jsTemporalOverflowSettings for PlainTime,
PlainYearMonth, PlainMonthDay, and PlainDate from() overloads.
Change-Id: I4dfbf7cddf10c99d35abc436dc8d4e3203f5d9df
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678376
Reviewed-by: Manish Goregaokar <manishearth@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Bug: 529283573
Change-Id: I894b4391d2465421b44e3a0d277c5e4015a2b84e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9694915
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945
Change-Id: I5da4f0dfc050d389bdc5168bc45d67f3d530b262
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9699455
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Currently, only --wasm-features=custom-descriptors is supported.
This will allow to enable custom descriptors related code, including
lifting "exactness", selectively.
Bug: 502246833
Change-Id: I4272a7e06555303ccd134c74c6121ee236ab19f6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9680135
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL makes the output of the existing instructions
wasmArrayNewFixed
wasmArrayNewDefault
wasmStructNew
wasmStructNewDefault
wasmRefFunc
wasmRefNull
exact, depending on the “enableCustomDescriptors” config.
It also adds support for lifting the “exact” property to Wasm Code, adjusts subtyping for exact types, and supports exact index-typed globals.
Bug: 502246833
Change-Id: I7098977f0b16d6372e5d3106d7c711ea8a1fa410
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9665935
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
However, they won't get generated by the fuzzer yet because
`WasmCustomDescriptorsStructTypesGenerator` is not enabled until
all instructions and generators are implemented and adapted.
Bug: 502246833
Change-Id: Iee0d7d179a9fbf6d6ac0484eb0fc3dbba5df892c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9670676
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
This CL makes the `indexTypes` parameter of `wasmDefineStructType()`
default to []. This cleans up the code a bit.
Change-Id: I492c2802041afeb4432293c5a4a27e84db51bc6a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673597
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Bug: 515363087
Change-Id: I044310fb22e58953207c45e1b160e2719e639f4e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9691916
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…er operations is not redundant
Bug: 552300848
Change-Id: Ic384c15945970e6b835f20be8864c3600e54e5b8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723615
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 552300848
Change-Id: I90609f3fad2a9b0a7e55c838af13b55c0d5567fb
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723675
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…tionAndCompilation
testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
unrelated CLs
Bug: 553335553
Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
For running shorter experiments that measure any statistics, it is
useful to start worker threads with a deterministic delay as it
otherwise creates too much variance in measurements.
It is still useful to start workers later for the commented reasons,
but now they can be started in an experiment setup with e.g. a delay
of 120 seconds each. This is particularly useful when running
experiments with a low `--corpusGenerationIterations` parameter.
Bug: 476974566
Change-Id: If90d92c7b1d777281408561a9828f14357cc023b
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9739195
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Add `ILType.namedInteger(ofName:)` and `namedInteger` generator support,
mirroring the existing `namedString` design.
This feature is introduced with various `namedInteger`s for generating
bounded integer types (e.g., uint8, int16, uint32).
Bug: 553587894
Change-Id: I87b835d3148449539451983bebea038c88530135
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9734538
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
TAG=agy
Bug: 498924945, 535260641
Change-Id: I73479be7306782db26ae19e8353fda18cf876ba7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729009
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
…deGenerationAndCompilation"
This reverts commit e154660.
Reason for revert: Fixed the Binaryen versioning
Fix Link: https://chrome-internal-review.git.corp.google.com/c/v8/fuzzilli/+/9729009
Original change's description:
> [test] Increase failure rate tolerance for testBinaryenWasmCodeGenerationAndCompilation
>
> testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
> unrelated CLs
>
> Bug: 553335553
> Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
> Reviewed-by: Michael Achenbach <machenbach@google.com>
> Reviewed-by: Matthias Liedtke <mliedtke@google.com>
> Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 553335553
Change-Id: If4018be5108a742944b1e9698a8cd34a7eda2ed0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9738219
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
- Decouple `isGuarded` (try-catch) and `isOptional` (optional chaining `?.`) across operations in `operations.proto`, `JsOperations.swift`, and `ProgramBuilder.swift`
- Add `isOptional` to operations that support optional chaining in JavaScript syntax
- Add `isGuarded` to `UpdateProperty` and `UpdatePrivateProperty` to allow them to be wrapped in try-catch
- Update FuzzIL `JavaScriptLifter.swift` to rely on `isOptional` for `?.` and decouple it from `haveSpecialHandlingForGuardedOp`
- Regenerate Protobuf swift bindings
- Update `LifterTest.swift` expectations and builder syntax to correctly test combinations of `isOptional` and `isGuarded`
Bug: 537236612
Change-Id: I6374de16ad742566a1cdd243ada1b5ac44ae13a1
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729375
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 476974566
Change-Id: I21cfcffec9b6ed20cf38bb224d44df5638d2d754
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9748516
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Change-Id: Idaa2f824303a4a6c6062affcbb3d68a345fd2605
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672936
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This is too slow to be convenient, the CI is already reasonably slow for
testing both d8 + Node.js + presubmit-checks on Linux debug.
Bug: 498924945
Change-Id: I9ea5e9797d7dcb391d83965304c523fee2099793
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9752235
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Sign up for freeto 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.

13 participants

@Dudcom@Liedtke@emaxx-google@tbantikyan@rherouart-collab@marjakh@leonbett@o-@nickie@rmahdav@mi-ac@lebe-g@omerktz
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' base fuzzili update by Dudcom · Pull Request #52 · VRIG-RITSEC/fuzzillai · GitHub
Skip to content

base fuzzili update - #52

Open
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main
Open

base fuzzili update #52
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main

Conversation

@Dudcom

Copy link
Copy Markdown

updating with head

@Dudcom

Copy link
Copy Markdown
Author

we are in hell

Liedtkeand others added 29 commits May 19, 2026 04:20
Bug: 447125167
Change-Id: I694c2feac0d42f1afb47f3ec2e9c94b2401382fe
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9279080
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bug: 447125167
Change-Id: Ifa7899b5e12a30718f64ccac36e693aa91020e5d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9288582
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
This flag used to be always set in fuzzers due to the implication from
`--fuzzing`, but the implication is removed now (crrev.com/c/7845199).
Hence randomize it with high probability (still not 100% to avoid having
blind spots), except for sandbox fuzzers where it'd not bring any benefit
due to them ignoring CHECKs.
Bug: 475707969
Change-Id: Ia8a495af600acc40dcd188fc1726e1e039237c79
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310081
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Add support for handling CreateArray operations with the
`elementGroupName` property set in OperationMutator and
MinimizationPostProcessor.
Bug: 503429420
Change-Id: I29170419cda15d9a73d0a9ad43aaa2ebd0322081
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9293280
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Add randomized addition of --no-flush-bytecode, to occasionally test
this non-production scenario.
Don't explicitly add --flush-bytecode: it's the default value anyway,
and it didn't help to reenable it when flag implications (--jit-fuzzing
to --no-flush-bytecode) disable it.
Bug: 475707969
Change-Id: Ia2c2141430f222f6c3d7c4cb946762c725c65204
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9278461
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I5b818576409d654a039edac6dbcfa959352018aa
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296863
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 514576448
Change-Id: I4f0236055f21611a582fef526a721e13f58ca2f9
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310040
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 445356784
Change-Id: I3a07fe4d292dd5b988c655936e0abd889338cbe8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310720
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This CL adds the `selectionMode` property to the `OptionsBag` struct to
configure how `OptionsBag` selects the properties for the object literal
it generates. The default behavior is preserved with the `anySubset`
case. The new `exactlyOne` case configures `OptionsBag` to select
exactly one property for the object literal.
This CL also makes `OptionsBag` easily usable in profiles by adding an
`additionalOptionsBag` property to the `Profile` struct and by removing
the strict assert on the supported `OptionsBag` properties array.
Bug: 512875834
Change-Id: I6b6348f515cc736ee281af9c9e384ac93eaf762c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9311541
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I7d2b1580b49211e1ec184f78798588eb7b4ea6ca
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313600
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514906333
Change-Id: Ib94a058c73bab07f1b9292e102439af847593006
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310083
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
…tions
TAG=agy
CONV=0a8bad59-c896-4fbd-925a-620838620623
Change-Id: I82d1eafe22df70aa455b98d0de8795820398a08c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320640
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
BUG=515494290
TAG=agy
CONV=3987abe0-de45-4002-95ae-4f62b5e0cf10
Change-Id: I0324d4ef618f2bae310eb392ddff5aa3b71b9c0d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320641
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 515363087
Change-Id: I06060612d8eee9bf783a849352435c5b4bf9c893
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317280
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
1) Hide variables outside the worker function so that the function
doesn't use them.
2) Make the main thread wait for the worker to finish.
Fixed: 497549860
Change-Id: If3b22fae7e61cca33b1c55fbfab3fcf9f5f6abaf
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9282445
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
Previously, randomWasmTypeDef() would only return type definitions
of non-ad-hoc signatures.
With this fix, it should also return array and struct type definitions.
Bug: 445356784
Change-Id: I6b131c42e61c17771fa211c213d64456b964bdb5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320520
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
This CL adds support for the br_on_cast instruction.
Bug: 474940922
Change-Id: Iadb552b42b1c721d0b5c462afda75aff91bb4791
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9300280
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Support for "import * as ns" import syntax, including the deferred
import variant. Other imports (named, default, etc.) are future
work.
https://github.com/tc39/proposal-defer-import-eval
Bug: 398218423
Change-Id: If0e691054f0668cd4eed2bbdc9532b0c520fec4a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313400
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
This CL adds support for the br_on_cast_fail instruction.
Bug: 474940922
Change-Id: Icacbd109fff843179f69806769437322f14326c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9299601
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 515363087
Change-Id: I41e4b487ee08dbf7da22959c6c1d08e4099a6ad4
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317282
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
This was staged for V8 in https://crrev.com/c/7845195.
Bug: 465715798
Change-Id: I1b01eea17c3c1049d66251de6a025747aef43bb7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333500
Reviewed-by: Olivier Flückiger <olivf@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Node.js v26 branched, the new nightly version is v27.
we need to stay up-to-date to be able to test new V8 features.
Change-Id: I4eea87f24cfff0e2cb48cb21904d6c0c5bb97421
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317781
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This CL adapts WasmReturnCallDirectGenerator and
WasmReturnCallIndirectGenerator to use `subsumes()` instead of
equality to find functions with compatible output types.
Bug: 445356784
Change-Id: I7c3113c54b7752809320e9d58fbbb11eaca10d4f
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9318221
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL adds support for the ref.func instruction.
Bug: 474940922
Change-Id: I885b966598a9d72c161d2ef7bee910032576a53d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296864
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
The table type can be easily inferred by the input table, so the
table.get doesn't need a type immediate. For fuzzilli however, the input
table can also come from JS (created by CreateWasmTable). Later on, the
fuzzer can replace that table input with an arbitrary other input.
This means that we need to encode the element type in the table.get
operation, so that the JSTyper always knows the correct result type.
I removed this in commit 7e5724c (among
other things that are indeed unnecessary).
Bug: 430171132
Change-Id: Icffc95fadb79979d7125a33d797868c5a6ad50e5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9337021
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
This allows fuzzilli to use the same handler object in different proxy objects. Helps testing upcoming proxy ICs.
Bug: 516717223
Change-Id: Ia5c47196a9233e3696b81d0b31c63a728c57fa50
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336380
Commit-Queue: Olivier Flückiger <olivf@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Olivier Flückiger <olivf@google.com>
- Add support for i31ref in JavaScriptLifter for CreateWasmTable.
- Update WasmDefineTableGenerator to randomly use funcref, externref, and i31ref.
- Add missing WasmTableGenerator to generate JS-side WebAssembly.Table objects.
Bug: 430171132
Change-Id: I4a435276d6e7a2d602738ae0b1b3f4c45788e0a7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333760
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Bug: 430171132
Change-Id: I4697952c9cef237c2cb9339343d6fec127d2c347
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333860
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
The test is executed only when generating bundles, since it requires
passing --bundles to d8 to run.
TAG=agy
CONV=5588ce4d-a98f-415f-b04b-5c6a9c3508b7
Change-Id: I7eb330ea3ce547f96fc55892c961a49515721546
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336701
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Liedtkeand others added 30 commits August 13, 2026 02:02
In JavaScript, optional chaining (`?.`) on the left-hand side of an
assignment is disallowed by static early error rules:
https://tc39.es/ecma262/#sec-static-semantics-assignmenttargettype
Previously, lifting a guarded SetPrivateProperty instruction emitted
`obj?.#prop = val;`, producing an uncatchable parse-time SyntaxError.
This change aligns SetPrivateProperty with SetProperty and
UpdatePrivateProperty to always emit standard member access
(`obj.#prop = val;`) on the assignment target.
Change-Id: Ibf8b83d2442dfe5b538e450c05fad9ce00f359d6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672675
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Change-Id: I3b0d3d55b213aecc94cb0e12843b7c2572a26cd5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672975
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/JavaScript_interface/validate_static#return_value
Change-Id: I413cd116d66f3f2912f87f9e83bdc0440931006d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673596
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
.. and enable acquire-release-atomics flag.
Bug: 498924945
Fixed: 535260641
Change-Id: Id4f863c74b540d1879bb324e10a1cca8939588d2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673715
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Change-Id: I90e62d7e7d6805e98ad869d746967682dd421c7a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678017
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
- Fix empty method name in Duration construction ("from")
- Fix argument count for PlainYearMonth and PlainMonthDay constructors
- Fix malformed subsecond separator in UTC offset strings
- Fix PlainMonthDay.prototype.with returning PlainYearMonth instead of
PlainMonthDay
- Fix PlainMonthDay.prototype.equals accepting PlainYearMonth parameters
- Fix Duration.prototype.total return type to number instead of Duration
- Fix ZonedDateTime.prototype.getTimeZoneTransition returning
Instant | nullish
- Remove duplicate "auto" entry in jsTemporalUnitEnum
Change-Id: If94ec911e1966d97cb7bd64c9c9533429081f958
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678375
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Manish Goregaokar <manishearth@google.com>
In JSTyper, async class and object literal methods previously
defaulted to returning .jsPromise() (resolvingTo: .jsAnything).
This change aligns async methods with standalone async functions by
inferring the promise resolving type from the method's return value:
`.jsPromise(resolvingTo: resultType.returnType.promiseResolvingTo)`.
TAG=agy
Change-Id: I9ab1e4dace9a9d04d7dc6c7fb915a3a18b2558a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9676859
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
1. Fix String.prototype.trim return type to .jsString.
2. Register missing OptionsBag.jsTemporalDurationCompareSettings in
init().
3. Fix Object.entries return type to .jsArray.
4. Fix Intl.Locale numeric property to .boolean, and getTextInfo return
type to .object(withProperties: ["direction"]).
5. Update constructor callabilities: Function to .functionAndConstructor
and Temporal / Intl constructors to .constructor.
6. Make parameter optionality conform to spec for Object.create,
Array.prototype.sort, Array.prototype.join, and Date.prototype.set*.
7. Synchronize globalThis property registration with
globalThisGroup.instanceType in finalizeGlobalThisGroup().
8. Fix duplicate enum assertion message in registerObjectGroup().
9. Make TypedArray.prototype.join and TypedArray.prototype.sort
parameter optionality conform to spec.
10. Update Date.prototype.setHours and Date.prototype.setUTCHours to
support optional 4th milliseconds argument.
TAG=agy
Change-Id: I4b787be0ae8a82c71290452d9ac3466b87b03635
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9677317
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
and mark one more "join" method's separator parameter as optional.
Change-Id: I253e9d0f50fc7f63b27a2d57c885c12acedd51a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9682955
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This reverts commit 60a81c6.
Reason for revert: experiment finished
Original change's description:
> [v8] Introduce unsafe flag for binaryen integration evaluation
>
> Fuzzilli itself doesn't generate ref.cast_desc_eq instructions, so
> this can only be found by the Binaryen integration.
>
> Corresponding V8 change: https://crrev.com/c/8236732
>
> Bug: 498924945
> Change-Id: Ibb9b6e66efacc283ef68288024acedfbeb909a01
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9666335
> Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
> Commit-Queue: Matthias Liedtke <mliedtke@google.com>
> Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945, 546884393
Bug: 498924945
Change-Id: Ic89faeef0e298c5ee9daa9598c723ae774b7aa22
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9686395
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
…e mutation
Before this change, private property generators had ~0.19% invocation success rate because referencing an undeclared private field (#foo) inside a class is a SyntaxError that cannot be caught by runtime try-catch blocks. Hence, rather than emitting invalid code, the Generators were returning without generating any instruction.
1. Extended ILType.object(...) to track privateProperties and privateMethods
2. When private member generators run inside a class method before properties are declared, referenced names are recorded and automatically emitted at EndClassDefinition(). This eliminates syntax errors and raises private generator success rates to 100.00%.
3. Updated OperationMutator selecting valid private members from scope for mutations.
Bug: 534650967
Bug: 522217077
Change-Id: I6c1ce14c58559c959866ecafab050435f76f44c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9614016
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
- Temporal.Instant.from and Temporal.Duration.from do not accept an
options bag. Update temporalFromSignature to emit 1-parameter
signatures when settingsArg is nil.
- Explicitly pass settingsArg: jsTemporalOverflowSettings for PlainTime,
PlainYearMonth, PlainMonthDay, and PlainDate from() overloads.
Change-Id: I4dfbf7cddf10c99d35abc436dc8d4e3203f5d9df
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678376
Reviewed-by: Manish Goregaokar <manishearth@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Bug: 529283573
Change-Id: I894b4391d2465421b44e3a0d277c5e4015a2b84e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9694915
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945
Change-Id: I5da4f0dfc050d389bdc5168bc45d67f3d530b262
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9699455
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Currently, only --wasm-features=custom-descriptors is supported.
This will allow to enable custom descriptors related code, including
lifting "exactness", selectively.
Bug: 502246833
Change-Id: I4272a7e06555303ccd134c74c6121ee236ab19f6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9680135
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL makes the output of the existing instructions
wasmArrayNewFixed
wasmArrayNewDefault
wasmStructNew
wasmStructNewDefault
wasmRefFunc
wasmRefNull
exact, depending on the “enableCustomDescriptors” config.
It also adds support for lifting the “exact” property to Wasm Code, adjusts subtyping for exact types, and supports exact index-typed globals.
Bug: 502246833
Change-Id: I7098977f0b16d6372e5d3106d7c711ea8a1fa410
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9665935
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
However, they won't get generated by the fuzzer yet because
`WasmCustomDescriptorsStructTypesGenerator` is not enabled until
all instructions and generators are implemented and adapted.
Bug: 502246833
Change-Id: Iee0d7d179a9fbf6d6ac0484eb0fc3dbba5df892c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9670676
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
This CL makes the `indexTypes` parameter of `wasmDefineStructType()`
default to []. This cleans up the code a bit.
Change-Id: I492c2802041afeb4432293c5a4a27e84db51bc6a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673597
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Bug: 515363087
Change-Id: I044310fb22e58953207c45e1b160e2719e639f4e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9691916
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…er operations is not redundant
Bug: 552300848
Change-Id: Ic384c15945970e6b835f20be8864c3600e54e5b8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723615
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 552300848
Change-Id: I90609f3fad2a9b0a7e55c838af13b55c0d5567fb
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723675
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…tionAndCompilation
testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
unrelated CLs
Bug: 553335553
Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
For running shorter experiments that measure any statistics, it is
useful to start worker threads with a deterministic delay as it
otherwise creates too much variance in measurements.
It is still useful to start workers later for the commented reasons,
but now they can be started in an experiment setup with e.g. a delay
of 120 seconds each. This is particularly useful when running
experiments with a low `--corpusGenerationIterations` parameter.
Bug: 476974566
Change-Id: If90d92c7b1d777281408561a9828f14357cc023b
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9739195
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Add `ILType.namedInteger(ofName:)` and `namedInteger` generator support,
mirroring the existing `namedString` design.
This feature is introduced with various `namedInteger`s for generating
bounded integer types (e.g., uint8, int16, uint32).
Bug: 553587894
Change-Id: I87b835d3148449539451983bebea038c88530135
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9734538
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
TAG=agy
Bug: 498924945, 535260641
Change-Id: I73479be7306782db26ae19e8353fda18cf876ba7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729009
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
…deGenerationAndCompilation"
This reverts commit e154660.
Reason for revert: Fixed the Binaryen versioning
Fix Link: https://chrome-internal-review.git.corp.google.com/c/v8/fuzzilli/+/9729009
Original change's description:
> [test] Increase failure rate tolerance for testBinaryenWasmCodeGenerationAndCompilation
>
> testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
> unrelated CLs
>
> Bug: 553335553
> Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
> Reviewed-by: Michael Achenbach <machenbach@google.com>
> Reviewed-by: Matthias Liedtke <mliedtke@google.com>
> Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 553335553
Change-Id: If4018be5108a742944b1e9698a8cd34a7eda2ed0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9738219
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
- Decouple `isGuarded` (try-catch) and `isOptional` (optional chaining `?.`) across operations in `operations.proto`, `JsOperations.swift`, and `ProgramBuilder.swift`
- Add `isOptional` to operations that support optional chaining in JavaScript syntax
- Add `isGuarded` to `UpdateProperty` and `UpdatePrivateProperty` to allow them to be wrapped in try-catch
- Update FuzzIL `JavaScriptLifter.swift` to rely on `isOptional` for `?.` and decouple it from `haveSpecialHandlingForGuardedOp`
- Regenerate Protobuf swift bindings
- Update `LifterTest.swift` expectations and builder syntax to correctly test combinations of `isOptional` and `isGuarded`
Bug: 537236612
Change-Id: I6374de16ad742566a1cdd243ada1b5ac44ae13a1
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729375
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 476974566
Change-Id: I21cfcffec9b6ed20cf38bb224d44df5638d2d754
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9748516
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Change-Id: Idaa2f824303a4a6c6062affcbb3d68a345fd2605
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672936
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This is too slow to be convenient, the CI is already reasonably slow for
testing both d8 + Node.js + presubmit-checks on Linux debug.
Bug: 498924945
Change-Id: I9ea5e9797d7dcb391d83965304c523fee2099793
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9752235
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Sign up for freeto 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.

13 participants

@Dudcom@Liedtke@emaxx-google@tbantikyan@rherouart-collab@marjakh@leonbett@o-@nickie@rmahdav@mi-ac@lebe-g@omerktz
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' base fuzzili update by Dudcom · Pull Request #52 · VRIG-RITSEC/fuzzillai · GitHub
Skip to content

base fuzzili update - #52

Open
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main
Open

base fuzzili update #52
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main

Conversation

@Dudcom

Copy link
Copy Markdown

updating with head

@Dudcom

Copy link
Copy Markdown
Author

we are in hell

Liedtkeand others added 29 commits May 19, 2026 04:20
Bug: 447125167
Change-Id: I694c2feac0d42f1afb47f3ec2e9c94b2401382fe
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9279080
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bug: 447125167
Change-Id: Ifa7899b5e12a30718f64ccac36e693aa91020e5d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9288582
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
This flag used to be always set in fuzzers due to the implication from
`--fuzzing`, but the implication is removed now (crrev.com/c/7845199).
Hence randomize it with high probability (still not 100% to avoid having
blind spots), except for sandbox fuzzers where it'd not bring any benefit
due to them ignoring CHECKs.
Bug: 475707969
Change-Id: Ia8a495af600acc40dcd188fc1726e1e039237c79
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310081
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Add support for handling CreateArray operations with the
`elementGroupName` property set in OperationMutator and
MinimizationPostProcessor.
Bug: 503429420
Change-Id: I29170419cda15d9a73d0a9ad43aaa2ebd0322081
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9293280
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Add randomized addition of --no-flush-bytecode, to occasionally test
this non-production scenario.
Don't explicitly add --flush-bytecode: it's the default value anyway,
and it didn't help to reenable it when flag implications (--jit-fuzzing
to --no-flush-bytecode) disable it.
Bug: 475707969
Change-Id: Ia2c2141430f222f6c3d7c4cb946762c725c65204
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9278461
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I5b818576409d654a039edac6dbcfa959352018aa
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296863
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 514576448
Change-Id: I4f0236055f21611a582fef526a721e13f58ca2f9
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310040
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 445356784
Change-Id: I3a07fe4d292dd5b988c655936e0abd889338cbe8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310720
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This CL adds the `selectionMode` property to the `OptionsBag` struct to
configure how `OptionsBag` selects the properties for the object literal
it generates. The default behavior is preserved with the `anySubset`
case. The new `exactlyOne` case configures `OptionsBag` to select
exactly one property for the object literal.
This CL also makes `OptionsBag` easily usable in profiles by adding an
`additionalOptionsBag` property to the `Profile` struct and by removing
the strict assert on the supported `OptionsBag` properties array.
Bug: 512875834
Change-Id: I6b6348f515cc736ee281af9c9e384ac93eaf762c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9311541
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I7d2b1580b49211e1ec184f78798588eb7b4ea6ca
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313600
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514906333
Change-Id: Ib94a058c73bab07f1b9292e102439af847593006
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310083
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
…tions
TAG=agy
CONV=0a8bad59-c896-4fbd-925a-620838620623
Change-Id: I82d1eafe22df70aa455b98d0de8795820398a08c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320640
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
BUG=515494290
TAG=agy
CONV=3987abe0-de45-4002-95ae-4f62b5e0cf10
Change-Id: I0324d4ef618f2bae310eb392ddff5aa3b71b9c0d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320641
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 515363087
Change-Id: I06060612d8eee9bf783a849352435c5b4bf9c893
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317280
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
1) Hide variables outside the worker function so that the function
doesn't use them.
2) Make the main thread wait for the worker to finish.
Fixed: 497549860
Change-Id: If3b22fae7e61cca33b1c55fbfab3fcf9f5f6abaf
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9282445
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
Previously, randomWasmTypeDef() would only return type definitions
of non-ad-hoc signatures.
With this fix, it should also return array and struct type definitions.
Bug: 445356784
Change-Id: I6b131c42e61c17771fa211c213d64456b964bdb5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320520
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
This CL adds support for the br_on_cast instruction.
Bug: 474940922
Change-Id: Iadb552b42b1c721d0b5c462afda75aff91bb4791
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9300280
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Support for "import * as ns" import syntax, including the deferred
import variant. Other imports (named, default, etc.) are future
work.
https://github.com/tc39/proposal-defer-import-eval
Bug: 398218423
Change-Id: If0e691054f0668cd4eed2bbdc9532b0c520fec4a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313400
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
This CL adds support for the br_on_cast_fail instruction.
Bug: 474940922
Change-Id: Icacbd109fff843179f69806769437322f14326c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9299601
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 515363087
Change-Id: I41e4b487ee08dbf7da22959c6c1d08e4099a6ad4
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317282
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
This was staged for V8 in https://crrev.com/c/7845195.
Bug: 465715798
Change-Id: I1b01eea17c3c1049d66251de6a025747aef43bb7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333500
Reviewed-by: Olivier Flückiger <olivf@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Node.js v26 branched, the new nightly version is v27.
we need to stay up-to-date to be able to test new V8 features.
Change-Id: I4eea87f24cfff0e2cb48cb21904d6c0c5bb97421
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317781
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This CL adapts WasmReturnCallDirectGenerator and
WasmReturnCallIndirectGenerator to use `subsumes()` instead of
equality to find functions with compatible output types.
Bug: 445356784
Change-Id: I7c3113c54b7752809320e9d58fbbb11eaca10d4f
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9318221
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL adds support for the ref.func instruction.
Bug: 474940922
Change-Id: I885b966598a9d72c161d2ef7bee910032576a53d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296864
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
The table type can be easily inferred by the input table, so the
table.get doesn't need a type immediate. For fuzzilli however, the input
table can also come from JS (created by CreateWasmTable). Later on, the
fuzzer can replace that table input with an arbitrary other input.
This means that we need to encode the element type in the table.get
operation, so that the JSTyper always knows the correct result type.
I removed this in commit 7e5724c (among
other things that are indeed unnecessary).
Bug: 430171132
Change-Id: Icffc95fadb79979d7125a33d797868c5a6ad50e5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9337021
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
This allows fuzzilli to use the same handler object in different proxy objects. Helps testing upcoming proxy ICs.
Bug: 516717223
Change-Id: Ia5c47196a9233e3696b81d0b31c63a728c57fa50
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336380
Commit-Queue: Olivier Flückiger <olivf@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Olivier Flückiger <olivf@google.com>
- Add support for i31ref in JavaScriptLifter for CreateWasmTable.
- Update WasmDefineTableGenerator to randomly use funcref, externref, and i31ref.
- Add missing WasmTableGenerator to generate JS-side WebAssembly.Table objects.
Bug: 430171132
Change-Id: I4a435276d6e7a2d602738ae0b1b3f4c45788e0a7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333760
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Bug: 430171132
Change-Id: I4697952c9cef237c2cb9339343d6fec127d2c347
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333860
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
The test is executed only when generating bundles, since it requires
passing --bundles to d8 to run.
TAG=agy
CONV=5588ce4d-a98f-415f-b04b-5c6a9c3508b7
Change-Id: I7eb330ea3ce547f96fc55892c961a49515721546
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336701
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Liedtkeand others added 30 commits August 13, 2026 02:02
In JavaScript, optional chaining (`?.`) on the left-hand side of an
assignment is disallowed by static early error rules:
https://tc39.es/ecma262/#sec-static-semantics-assignmenttargettype
Previously, lifting a guarded SetPrivateProperty instruction emitted
`obj?.#prop = val;`, producing an uncatchable parse-time SyntaxError.
This change aligns SetPrivateProperty with SetProperty and
UpdatePrivateProperty to always emit standard member access
(`obj.#prop = val;`) on the assignment target.
Change-Id: Ibf8b83d2442dfe5b538e450c05fad9ce00f359d6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672675
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Change-Id: I3b0d3d55b213aecc94cb0e12843b7c2572a26cd5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672975
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/JavaScript_interface/validate_static#return_value
Change-Id: I413cd116d66f3f2912f87f9e83bdc0440931006d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673596
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
.. and enable acquire-release-atomics flag.
Bug: 498924945
Fixed: 535260641
Change-Id: Id4f863c74b540d1879bb324e10a1cca8939588d2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673715
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Change-Id: I90e62d7e7d6805e98ad869d746967682dd421c7a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678017
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
- Fix empty method name in Duration construction ("from")
- Fix argument count for PlainYearMonth and PlainMonthDay constructors
- Fix malformed subsecond separator in UTC offset strings
- Fix PlainMonthDay.prototype.with returning PlainYearMonth instead of
PlainMonthDay
- Fix PlainMonthDay.prototype.equals accepting PlainYearMonth parameters
- Fix Duration.prototype.total return type to number instead of Duration
- Fix ZonedDateTime.prototype.getTimeZoneTransition returning
Instant | nullish
- Remove duplicate "auto" entry in jsTemporalUnitEnum
Change-Id: If94ec911e1966d97cb7bd64c9c9533429081f958
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678375
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Manish Goregaokar <manishearth@google.com>
In JSTyper, async class and object literal methods previously
defaulted to returning .jsPromise() (resolvingTo: .jsAnything).
This change aligns async methods with standalone async functions by
inferring the promise resolving type from the method's return value:
`.jsPromise(resolvingTo: resultType.returnType.promiseResolvingTo)`.
TAG=agy
Change-Id: I9ab1e4dace9a9d04d7dc6c7fb915a3a18b2558a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9676859
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
1. Fix String.prototype.trim return type to .jsString.
2. Register missing OptionsBag.jsTemporalDurationCompareSettings in
init().
3. Fix Object.entries return type to .jsArray.
4. Fix Intl.Locale numeric property to .boolean, and getTextInfo return
type to .object(withProperties: ["direction"]).
5. Update constructor callabilities: Function to .functionAndConstructor
and Temporal / Intl constructors to .constructor.
6. Make parameter optionality conform to spec for Object.create,
Array.prototype.sort, Array.prototype.join, and Date.prototype.set*.
7. Synchronize globalThis property registration with
globalThisGroup.instanceType in finalizeGlobalThisGroup().
8. Fix duplicate enum assertion message in registerObjectGroup().
9. Make TypedArray.prototype.join and TypedArray.prototype.sort
parameter optionality conform to spec.
10. Update Date.prototype.setHours and Date.prototype.setUTCHours to
support optional 4th milliseconds argument.
TAG=agy
Change-Id: I4b787be0ae8a82c71290452d9ac3466b87b03635
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9677317
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
and mark one more "join" method's separator parameter as optional.
Change-Id: I253e9d0f50fc7f63b27a2d57c885c12acedd51a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9682955
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This reverts commit 60a81c6.
Reason for revert: experiment finished
Original change's description:
> [v8] Introduce unsafe flag for binaryen integration evaluation
>
> Fuzzilli itself doesn't generate ref.cast_desc_eq instructions, so
> this can only be found by the Binaryen integration.
>
> Corresponding V8 change: https://crrev.com/c/8236732
>
> Bug: 498924945
> Change-Id: Ibb9b6e66efacc283ef68288024acedfbeb909a01
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9666335
> Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
> Commit-Queue: Matthias Liedtke <mliedtke@google.com>
> Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945, 546884393
Bug: 498924945
Change-Id: Ic89faeef0e298c5ee9daa9598c723ae774b7aa22
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9686395
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
…e mutation
Before this change, private property generators had ~0.19% invocation success rate because referencing an undeclared private field (#foo) inside a class is a SyntaxError that cannot be caught by runtime try-catch blocks. Hence, rather than emitting invalid code, the Generators were returning without generating any instruction.
1. Extended ILType.object(...) to track privateProperties and privateMethods
2. When private member generators run inside a class method before properties are declared, referenced names are recorded and automatically emitted at EndClassDefinition(). This eliminates syntax errors and raises private generator success rates to 100.00%.
3. Updated OperationMutator selecting valid private members from scope for mutations.
Bug: 534650967
Bug: 522217077
Change-Id: I6c1ce14c58559c959866ecafab050435f76f44c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9614016
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
- Temporal.Instant.from and Temporal.Duration.from do not accept an
options bag. Update temporalFromSignature to emit 1-parameter
signatures when settingsArg is nil.
- Explicitly pass settingsArg: jsTemporalOverflowSettings for PlainTime,
PlainYearMonth, PlainMonthDay, and PlainDate from() overloads.
Change-Id: I4dfbf7cddf10c99d35abc436dc8d4e3203f5d9df
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678376
Reviewed-by: Manish Goregaokar <manishearth@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Bug: 529283573
Change-Id: I894b4391d2465421b44e3a0d277c5e4015a2b84e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9694915
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945
Change-Id: I5da4f0dfc050d389bdc5168bc45d67f3d530b262
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9699455
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Currently, only --wasm-features=custom-descriptors is supported.
This will allow to enable custom descriptors related code, including
lifting "exactness", selectively.
Bug: 502246833
Change-Id: I4272a7e06555303ccd134c74c6121ee236ab19f6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9680135
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL makes the output of the existing instructions
wasmArrayNewFixed
wasmArrayNewDefault
wasmStructNew
wasmStructNewDefault
wasmRefFunc
wasmRefNull
exact, depending on the “enableCustomDescriptors” config.
It also adds support for lifting the “exact” property to Wasm Code, adjusts subtyping for exact types, and supports exact index-typed globals.
Bug: 502246833
Change-Id: I7098977f0b16d6372e5d3106d7c711ea8a1fa410
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9665935
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
However, they won't get generated by the fuzzer yet because
`WasmCustomDescriptorsStructTypesGenerator` is not enabled until
all instructions and generators are implemented and adapted.
Bug: 502246833
Change-Id: Iee0d7d179a9fbf6d6ac0484eb0fc3dbba5df892c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9670676
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
This CL makes the `indexTypes` parameter of `wasmDefineStructType()`
default to []. This cleans up the code a bit.
Change-Id: I492c2802041afeb4432293c5a4a27e84db51bc6a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673597
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Bug: 515363087
Change-Id: I044310fb22e58953207c45e1b160e2719e639f4e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9691916
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…er operations is not redundant
Bug: 552300848
Change-Id: Ic384c15945970e6b835f20be8864c3600e54e5b8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723615
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 552300848
Change-Id: I90609f3fad2a9b0a7e55c838af13b55c0d5567fb
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723675
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…tionAndCompilation
testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
unrelated CLs
Bug: 553335553
Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
For running shorter experiments that measure any statistics, it is
useful to start worker threads with a deterministic delay as it
otherwise creates too much variance in measurements.
It is still useful to start workers later for the commented reasons,
but now they can be started in an experiment setup with e.g. a delay
of 120 seconds each. This is particularly useful when running
experiments with a low `--corpusGenerationIterations` parameter.
Bug: 476974566
Change-Id: If90d92c7b1d777281408561a9828f14357cc023b
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9739195
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Add `ILType.namedInteger(ofName:)` and `namedInteger` generator support,
mirroring the existing `namedString` design.
This feature is introduced with various `namedInteger`s for generating
bounded integer types (e.g., uint8, int16, uint32).
Bug: 553587894
Change-Id: I87b835d3148449539451983bebea038c88530135
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9734538
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
TAG=agy
Bug: 498924945, 535260641
Change-Id: I73479be7306782db26ae19e8353fda18cf876ba7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729009
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
…deGenerationAndCompilation"
This reverts commit e154660.
Reason for revert: Fixed the Binaryen versioning
Fix Link: https://chrome-internal-review.git.corp.google.com/c/v8/fuzzilli/+/9729009
Original change's description:
> [test] Increase failure rate tolerance for testBinaryenWasmCodeGenerationAndCompilation
>
> testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
> unrelated CLs
>
> Bug: 553335553
> Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
> Reviewed-by: Michael Achenbach <machenbach@google.com>
> Reviewed-by: Matthias Liedtke <mliedtke@google.com>
> Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 553335553
Change-Id: If4018be5108a742944b1e9698a8cd34a7eda2ed0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9738219
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
- Decouple `isGuarded` (try-catch) and `isOptional` (optional chaining `?.`) across operations in `operations.proto`, `JsOperations.swift`, and `ProgramBuilder.swift`
- Add `isOptional` to operations that support optional chaining in JavaScript syntax
- Add `isGuarded` to `UpdateProperty` and `UpdatePrivateProperty` to allow them to be wrapped in try-catch
- Update FuzzIL `JavaScriptLifter.swift` to rely on `isOptional` for `?.` and decouple it from `haveSpecialHandlingForGuardedOp`
- Regenerate Protobuf swift bindings
- Update `LifterTest.swift` expectations and builder syntax to correctly test combinations of `isOptional` and `isGuarded`
Bug: 537236612
Change-Id: I6374de16ad742566a1cdd243ada1b5ac44ae13a1
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729375
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 476974566
Change-Id: I21cfcffec9b6ed20cf38bb224d44df5638d2d754
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9748516
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Change-Id: Idaa2f824303a4a6c6062affcbb3d68a345fd2605
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672936
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This is too slow to be convenient, the CI is already reasonably slow for
testing both d8 + Node.js + presubmit-checks on Linux debug.
Bug: 498924945
Change-Id: I9ea5e9797d7dcb391d83965304c523fee2099793
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9752235
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Sign up for freeto 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.

13 participants

@Dudcom@Liedtke@emaxx-google@tbantikyan@rherouart-collab@marjakh@leonbett@o-@nickie@rmahdav@mi-ac@lebe-g@omerktz
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' base fuzzili update by Dudcom · Pull Request #52 · VRIG-RITSEC/fuzzillai · GitHub
Skip to content

base fuzzili update - #52

Open
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main
Open

base fuzzili update #52
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main

Conversation

@Dudcom

Copy link
Copy Markdown

updating with head

@Dudcom

Copy link
Copy Markdown
Author

we are in hell

Liedtkeand others added 29 commits May 19, 2026 04:20
Bug: 447125167
Change-Id: I694c2feac0d42f1afb47f3ec2e9c94b2401382fe
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9279080
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bug: 447125167
Change-Id: Ifa7899b5e12a30718f64ccac36e693aa91020e5d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9288582
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
This flag used to be always set in fuzzers due to the implication from
`--fuzzing`, but the implication is removed now (crrev.com/c/7845199).
Hence randomize it with high probability (still not 100% to avoid having
blind spots), except for sandbox fuzzers where it'd not bring any benefit
due to them ignoring CHECKs.
Bug: 475707969
Change-Id: Ia8a495af600acc40dcd188fc1726e1e039237c79
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310081
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Add support for handling CreateArray operations with the
`elementGroupName` property set in OperationMutator and
MinimizationPostProcessor.
Bug: 503429420
Change-Id: I29170419cda15d9a73d0a9ad43aaa2ebd0322081
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9293280
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Add randomized addition of --no-flush-bytecode, to occasionally test
this non-production scenario.
Don't explicitly add --flush-bytecode: it's the default value anyway,
and it didn't help to reenable it when flag implications (--jit-fuzzing
to --no-flush-bytecode) disable it.
Bug: 475707969
Change-Id: Ia2c2141430f222f6c3d7c4cb946762c725c65204
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9278461
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I5b818576409d654a039edac6dbcfa959352018aa
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296863
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 514576448
Change-Id: I4f0236055f21611a582fef526a721e13f58ca2f9
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310040
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 445356784
Change-Id: I3a07fe4d292dd5b988c655936e0abd889338cbe8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310720
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This CL adds the `selectionMode` property to the `OptionsBag` struct to
configure how `OptionsBag` selects the properties for the object literal
it generates. The default behavior is preserved with the `anySubset`
case. The new `exactlyOne` case configures `OptionsBag` to select
exactly one property for the object literal.
This CL also makes `OptionsBag` easily usable in profiles by adding an
`additionalOptionsBag` property to the `Profile` struct and by removing
the strict assert on the supported `OptionsBag` properties array.
Bug: 512875834
Change-Id: I6b6348f515cc736ee281af9c9e384ac93eaf762c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9311541
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I7d2b1580b49211e1ec184f78798588eb7b4ea6ca
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313600
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514906333
Change-Id: Ib94a058c73bab07f1b9292e102439af847593006
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310083
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
…tions
TAG=agy
CONV=0a8bad59-c896-4fbd-925a-620838620623
Change-Id: I82d1eafe22df70aa455b98d0de8795820398a08c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320640
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
BUG=515494290
TAG=agy
CONV=3987abe0-de45-4002-95ae-4f62b5e0cf10
Change-Id: I0324d4ef618f2bae310eb392ddff5aa3b71b9c0d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320641
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 515363087
Change-Id: I06060612d8eee9bf783a849352435c5b4bf9c893
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317280
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
1) Hide variables outside the worker function so that the function
doesn't use them.
2) Make the main thread wait for the worker to finish.
Fixed: 497549860
Change-Id: If3b22fae7e61cca33b1c55fbfab3fcf9f5f6abaf
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9282445
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
Previously, randomWasmTypeDef() would only return type definitions
of non-ad-hoc signatures.
With this fix, it should also return array and struct type definitions.
Bug: 445356784
Change-Id: I6b131c42e61c17771fa211c213d64456b964bdb5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320520
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
This CL adds support for the br_on_cast instruction.
Bug: 474940922
Change-Id: Iadb552b42b1c721d0b5c462afda75aff91bb4791
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9300280
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Support for "import * as ns" import syntax, including the deferred
import variant. Other imports (named, default, etc.) are future
work.
https://github.com/tc39/proposal-defer-import-eval
Bug: 398218423
Change-Id: If0e691054f0668cd4eed2bbdc9532b0c520fec4a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313400
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
This CL adds support for the br_on_cast_fail instruction.
Bug: 474940922
Change-Id: Icacbd109fff843179f69806769437322f14326c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9299601
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 515363087
Change-Id: I41e4b487ee08dbf7da22959c6c1d08e4099a6ad4
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317282
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
This was staged for V8 in https://crrev.com/c/7845195.
Bug: 465715798
Change-Id: I1b01eea17c3c1049d66251de6a025747aef43bb7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333500
Reviewed-by: Olivier Flückiger <olivf@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Node.js v26 branched, the new nightly version is v27.
we need to stay up-to-date to be able to test new V8 features.
Change-Id: I4eea87f24cfff0e2cb48cb21904d6c0c5bb97421
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317781
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This CL adapts WasmReturnCallDirectGenerator and
WasmReturnCallIndirectGenerator to use `subsumes()` instead of
equality to find functions with compatible output types.
Bug: 445356784
Change-Id: I7c3113c54b7752809320e9d58fbbb11eaca10d4f
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9318221
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL adds support for the ref.func instruction.
Bug: 474940922
Change-Id: I885b966598a9d72c161d2ef7bee910032576a53d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296864
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
The table type can be easily inferred by the input table, so the
table.get doesn't need a type immediate. For fuzzilli however, the input
table can also come from JS (created by CreateWasmTable). Later on, the
fuzzer can replace that table input with an arbitrary other input.
This means that we need to encode the element type in the table.get
operation, so that the JSTyper always knows the correct result type.
I removed this in commit 7e5724c (among
other things that are indeed unnecessary).
Bug: 430171132
Change-Id: Icffc95fadb79979d7125a33d797868c5a6ad50e5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9337021
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
This allows fuzzilli to use the same handler object in different proxy objects. Helps testing upcoming proxy ICs.
Bug: 516717223
Change-Id: Ia5c47196a9233e3696b81d0b31c63a728c57fa50
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336380
Commit-Queue: Olivier Flückiger <olivf@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Olivier Flückiger <olivf@google.com>
- Add support for i31ref in JavaScriptLifter for CreateWasmTable.
- Update WasmDefineTableGenerator to randomly use funcref, externref, and i31ref.
- Add missing WasmTableGenerator to generate JS-side WebAssembly.Table objects.
Bug: 430171132
Change-Id: I4a435276d6e7a2d602738ae0b1b3f4c45788e0a7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333760
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Bug: 430171132
Change-Id: I4697952c9cef237c2cb9339343d6fec127d2c347
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333860
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
The test is executed only when generating bundles, since it requires
passing --bundles to d8 to run.
TAG=agy
CONV=5588ce4d-a98f-415f-b04b-5c6a9c3508b7
Change-Id: I7eb330ea3ce547f96fc55892c961a49515721546
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336701
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Liedtkeand others added 30 commits August 13, 2026 02:02
In JavaScript, optional chaining (`?.`) on the left-hand side of an
assignment is disallowed by static early error rules:
https://tc39.es/ecma262/#sec-static-semantics-assignmenttargettype
Previously, lifting a guarded SetPrivateProperty instruction emitted
`obj?.#prop = val;`, producing an uncatchable parse-time SyntaxError.
This change aligns SetPrivateProperty with SetProperty and
UpdatePrivateProperty to always emit standard member access
(`obj.#prop = val;`) on the assignment target.
Change-Id: Ibf8b83d2442dfe5b538e450c05fad9ce00f359d6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672675
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Change-Id: I3b0d3d55b213aecc94cb0e12843b7c2572a26cd5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672975
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/JavaScript_interface/validate_static#return_value
Change-Id: I413cd116d66f3f2912f87f9e83bdc0440931006d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673596
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
.. and enable acquire-release-atomics flag.
Bug: 498924945
Fixed: 535260641
Change-Id: Id4f863c74b540d1879bb324e10a1cca8939588d2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673715
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Change-Id: I90e62d7e7d6805e98ad869d746967682dd421c7a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678017
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
- Fix empty method name in Duration construction ("from")
- Fix argument count for PlainYearMonth and PlainMonthDay constructors
- Fix malformed subsecond separator in UTC offset strings
- Fix PlainMonthDay.prototype.with returning PlainYearMonth instead of
PlainMonthDay
- Fix PlainMonthDay.prototype.equals accepting PlainYearMonth parameters
- Fix Duration.prototype.total return type to number instead of Duration
- Fix ZonedDateTime.prototype.getTimeZoneTransition returning
Instant | nullish
- Remove duplicate "auto" entry in jsTemporalUnitEnum
Change-Id: If94ec911e1966d97cb7bd64c9c9533429081f958
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678375
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Manish Goregaokar <manishearth@google.com>
In JSTyper, async class and object literal methods previously
defaulted to returning .jsPromise() (resolvingTo: .jsAnything).
This change aligns async methods with standalone async functions by
inferring the promise resolving type from the method's return value:
`.jsPromise(resolvingTo: resultType.returnType.promiseResolvingTo)`.
TAG=agy
Change-Id: I9ab1e4dace9a9d04d7dc6c7fb915a3a18b2558a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9676859
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
1. Fix String.prototype.trim return type to .jsString.
2. Register missing OptionsBag.jsTemporalDurationCompareSettings in
init().
3. Fix Object.entries return type to .jsArray.
4. Fix Intl.Locale numeric property to .boolean, and getTextInfo return
type to .object(withProperties: ["direction"]).
5. Update constructor callabilities: Function to .functionAndConstructor
and Temporal / Intl constructors to .constructor.
6. Make parameter optionality conform to spec for Object.create,
Array.prototype.sort, Array.prototype.join, and Date.prototype.set*.
7. Synchronize globalThis property registration with
globalThisGroup.instanceType in finalizeGlobalThisGroup().
8. Fix duplicate enum assertion message in registerObjectGroup().
9. Make TypedArray.prototype.join and TypedArray.prototype.sort
parameter optionality conform to spec.
10. Update Date.prototype.setHours and Date.prototype.setUTCHours to
support optional 4th milliseconds argument.
TAG=agy
Change-Id: I4b787be0ae8a82c71290452d9ac3466b87b03635
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9677317
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
and mark one more "join" method's separator parameter as optional.
Change-Id: I253e9d0f50fc7f63b27a2d57c885c12acedd51a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9682955
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This reverts commit 60a81c6.
Reason for revert: experiment finished
Original change's description:
> [v8] Introduce unsafe flag for binaryen integration evaluation
>
> Fuzzilli itself doesn't generate ref.cast_desc_eq instructions, so
> this can only be found by the Binaryen integration.
>
> Corresponding V8 change: https://crrev.com/c/8236732
>
> Bug: 498924945
> Change-Id: Ibb9b6e66efacc283ef68288024acedfbeb909a01
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9666335
> Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
> Commit-Queue: Matthias Liedtke <mliedtke@google.com>
> Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945, 546884393
Bug: 498924945
Change-Id: Ic89faeef0e298c5ee9daa9598c723ae774b7aa22
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9686395
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
…e mutation
Before this change, private property generators had ~0.19% invocation success rate because referencing an undeclared private field (#foo) inside a class is a SyntaxError that cannot be caught by runtime try-catch blocks. Hence, rather than emitting invalid code, the Generators were returning without generating any instruction.
1. Extended ILType.object(...) to track privateProperties and privateMethods
2. When private member generators run inside a class method before properties are declared, referenced names are recorded and automatically emitted at EndClassDefinition(). This eliminates syntax errors and raises private generator success rates to 100.00%.
3. Updated OperationMutator selecting valid private members from scope for mutations.
Bug: 534650967
Bug: 522217077
Change-Id: I6c1ce14c58559c959866ecafab050435f76f44c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9614016
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
- Temporal.Instant.from and Temporal.Duration.from do not accept an
options bag. Update temporalFromSignature to emit 1-parameter
signatures when settingsArg is nil.
- Explicitly pass settingsArg: jsTemporalOverflowSettings for PlainTime,
PlainYearMonth, PlainMonthDay, and PlainDate from() overloads.
Change-Id: I4dfbf7cddf10c99d35abc436dc8d4e3203f5d9df
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678376
Reviewed-by: Manish Goregaokar <manishearth@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Bug: 529283573
Change-Id: I894b4391d2465421b44e3a0d277c5e4015a2b84e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9694915
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945
Change-Id: I5da4f0dfc050d389bdc5168bc45d67f3d530b262
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9699455
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Currently, only --wasm-features=custom-descriptors is supported.
This will allow to enable custom descriptors related code, including
lifting "exactness", selectively.
Bug: 502246833
Change-Id: I4272a7e06555303ccd134c74c6121ee236ab19f6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9680135
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL makes the output of the existing instructions
wasmArrayNewFixed
wasmArrayNewDefault
wasmStructNew
wasmStructNewDefault
wasmRefFunc
wasmRefNull
exact, depending on the “enableCustomDescriptors” config.
It also adds support for lifting the “exact” property to Wasm Code, adjusts subtyping for exact types, and supports exact index-typed globals.
Bug: 502246833
Change-Id: I7098977f0b16d6372e5d3106d7c711ea8a1fa410
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9665935
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
However, they won't get generated by the fuzzer yet because
`WasmCustomDescriptorsStructTypesGenerator` is not enabled until
all instructions and generators are implemented and adapted.
Bug: 502246833
Change-Id: Iee0d7d179a9fbf6d6ac0484eb0fc3dbba5df892c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9670676
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
This CL makes the `indexTypes` parameter of `wasmDefineStructType()`
default to []. This cleans up the code a bit.
Change-Id: I492c2802041afeb4432293c5a4a27e84db51bc6a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673597
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Bug: 515363087
Change-Id: I044310fb22e58953207c45e1b160e2719e639f4e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9691916
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…er operations is not redundant
Bug: 552300848
Change-Id: Ic384c15945970e6b835f20be8864c3600e54e5b8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723615
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 552300848
Change-Id: I90609f3fad2a9b0a7e55c838af13b55c0d5567fb
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723675
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…tionAndCompilation
testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
unrelated CLs
Bug: 553335553
Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
For running shorter experiments that measure any statistics, it is
useful to start worker threads with a deterministic delay as it
otherwise creates too much variance in measurements.
It is still useful to start workers later for the commented reasons,
but now they can be started in an experiment setup with e.g. a delay
of 120 seconds each. This is particularly useful when running
experiments with a low `--corpusGenerationIterations` parameter.
Bug: 476974566
Change-Id: If90d92c7b1d777281408561a9828f14357cc023b
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9739195
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Add `ILType.namedInteger(ofName:)` and `namedInteger` generator support,
mirroring the existing `namedString` design.
This feature is introduced with various `namedInteger`s for generating
bounded integer types (e.g., uint8, int16, uint32).
Bug: 553587894
Change-Id: I87b835d3148449539451983bebea038c88530135
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9734538
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
TAG=agy
Bug: 498924945, 535260641
Change-Id: I73479be7306782db26ae19e8353fda18cf876ba7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729009
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
…deGenerationAndCompilation"
This reverts commit e154660.
Reason for revert: Fixed the Binaryen versioning
Fix Link: https://chrome-internal-review.git.corp.google.com/c/v8/fuzzilli/+/9729009
Original change's description:
> [test] Increase failure rate tolerance for testBinaryenWasmCodeGenerationAndCompilation
>
> testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
> unrelated CLs
>
> Bug: 553335553
> Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
> Reviewed-by: Michael Achenbach <machenbach@google.com>
> Reviewed-by: Matthias Liedtke <mliedtke@google.com>
> Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 553335553
Change-Id: If4018be5108a742944b1e9698a8cd34a7eda2ed0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9738219
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
- Decouple `isGuarded` (try-catch) and `isOptional` (optional chaining `?.`) across operations in `operations.proto`, `JsOperations.swift`, and `ProgramBuilder.swift`
- Add `isOptional` to operations that support optional chaining in JavaScript syntax
- Add `isGuarded` to `UpdateProperty` and `UpdatePrivateProperty` to allow them to be wrapped in try-catch
- Update FuzzIL `JavaScriptLifter.swift` to rely on `isOptional` for `?.` and decouple it from `haveSpecialHandlingForGuardedOp`
- Regenerate Protobuf swift bindings
- Update `LifterTest.swift` expectations and builder syntax to correctly test combinations of `isOptional` and `isGuarded`
Bug: 537236612
Change-Id: I6374de16ad742566a1cdd243ada1b5ac44ae13a1
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729375
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 476974566
Change-Id: I21cfcffec9b6ed20cf38bb224d44df5638d2d754
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9748516
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Change-Id: Idaa2f824303a4a6c6062affcbb3d68a345fd2605
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672936
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This is too slow to be convenient, the CI is already reasonably slow for
testing both d8 + Node.js + presubmit-checks on Linux debug.
Bug: 498924945
Change-Id: I9ea5e9797d7dcb391d83965304c523fee2099793
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9752235
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Sign up for freeto 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.

13 participants

@Dudcom@Liedtke@emaxx-google@tbantikyan@rherouart-collab@marjakh@leonbett@o-@nickie@rmahdav@mi-ac@lebe-g@omerktz
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' base fuzzili update by Dudcom · Pull Request #52 · VRIG-RITSEC/fuzzillai · GitHub
Skip to content

base fuzzili update - #52

Open
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main
Open

base fuzzili update #52
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main

Conversation

@Dudcom

Copy link
Copy Markdown

updating with head

@Dudcom

Copy link
Copy Markdown
Author

we are in hell

Liedtkeand others added 29 commits May 19, 2026 04:20
Bug: 447125167
Change-Id: I694c2feac0d42f1afb47f3ec2e9c94b2401382fe
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9279080
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bug: 447125167
Change-Id: Ifa7899b5e12a30718f64ccac36e693aa91020e5d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9288582
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
This flag used to be always set in fuzzers due to the implication from
`--fuzzing`, but the implication is removed now (crrev.com/c/7845199).
Hence randomize it with high probability (still not 100% to avoid having
blind spots), except for sandbox fuzzers where it'd not bring any benefit
due to them ignoring CHECKs.
Bug: 475707969
Change-Id: Ia8a495af600acc40dcd188fc1726e1e039237c79
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310081
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Add support for handling CreateArray operations with the
`elementGroupName` property set in OperationMutator and
MinimizationPostProcessor.
Bug: 503429420
Change-Id: I29170419cda15d9a73d0a9ad43aaa2ebd0322081
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9293280
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Add randomized addition of --no-flush-bytecode, to occasionally test
this non-production scenario.
Don't explicitly add --flush-bytecode: it's the default value anyway,
and it didn't help to reenable it when flag implications (--jit-fuzzing
to --no-flush-bytecode) disable it.
Bug: 475707969
Change-Id: Ia2c2141430f222f6c3d7c4cb946762c725c65204
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9278461
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I5b818576409d654a039edac6dbcfa959352018aa
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296863
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 514576448
Change-Id: I4f0236055f21611a582fef526a721e13f58ca2f9
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310040
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 445356784
Change-Id: I3a07fe4d292dd5b988c655936e0abd889338cbe8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310720
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This CL adds the `selectionMode` property to the `OptionsBag` struct to
configure how `OptionsBag` selects the properties for the object literal
it generates. The default behavior is preserved with the `anySubset`
case. The new `exactlyOne` case configures `OptionsBag` to select
exactly one property for the object literal.
This CL also makes `OptionsBag` easily usable in profiles by adding an
`additionalOptionsBag` property to the `Profile` struct and by removing
the strict assert on the supported `OptionsBag` properties array.
Bug: 512875834
Change-Id: I6b6348f515cc736ee281af9c9e384ac93eaf762c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9311541
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I7d2b1580b49211e1ec184f78798588eb7b4ea6ca
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313600
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514906333
Change-Id: Ib94a058c73bab07f1b9292e102439af847593006
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310083
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
…tions
TAG=agy
CONV=0a8bad59-c896-4fbd-925a-620838620623
Change-Id: I82d1eafe22df70aa455b98d0de8795820398a08c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320640
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
BUG=515494290
TAG=agy
CONV=3987abe0-de45-4002-95ae-4f62b5e0cf10
Change-Id: I0324d4ef618f2bae310eb392ddff5aa3b71b9c0d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320641
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 515363087
Change-Id: I06060612d8eee9bf783a849352435c5b4bf9c893
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317280
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
1) Hide variables outside the worker function so that the function
doesn't use them.
2) Make the main thread wait for the worker to finish.
Fixed: 497549860
Change-Id: If3b22fae7e61cca33b1c55fbfab3fcf9f5f6abaf
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9282445
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
Previously, randomWasmTypeDef() would only return type definitions
of non-ad-hoc signatures.
With this fix, it should also return array and struct type definitions.
Bug: 445356784
Change-Id: I6b131c42e61c17771fa211c213d64456b964bdb5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320520
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
This CL adds support for the br_on_cast instruction.
Bug: 474940922
Change-Id: Iadb552b42b1c721d0b5c462afda75aff91bb4791
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9300280
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Support for "import * as ns" import syntax, including the deferred
import variant. Other imports (named, default, etc.) are future
work.
https://github.com/tc39/proposal-defer-import-eval
Bug: 398218423
Change-Id: If0e691054f0668cd4eed2bbdc9532b0c520fec4a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313400
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
This CL adds support for the br_on_cast_fail instruction.
Bug: 474940922
Change-Id: Icacbd109fff843179f69806769437322f14326c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9299601
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 515363087
Change-Id: I41e4b487ee08dbf7da22959c6c1d08e4099a6ad4
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317282
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
This was staged for V8 in https://crrev.com/c/7845195.
Bug: 465715798
Change-Id: I1b01eea17c3c1049d66251de6a025747aef43bb7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333500
Reviewed-by: Olivier Flückiger <olivf@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Node.js v26 branched, the new nightly version is v27.
we need to stay up-to-date to be able to test new V8 features.
Change-Id: I4eea87f24cfff0e2cb48cb21904d6c0c5bb97421
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317781
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This CL adapts WasmReturnCallDirectGenerator and
WasmReturnCallIndirectGenerator to use `subsumes()` instead of
equality to find functions with compatible output types.
Bug: 445356784
Change-Id: I7c3113c54b7752809320e9d58fbbb11eaca10d4f
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9318221
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL adds support for the ref.func instruction.
Bug: 474940922
Change-Id: I885b966598a9d72c161d2ef7bee910032576a53d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296864
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
The table type can be easily inferred by the input table, so the
table.get doesn't need a type immediate. For fuzzilli however, the input
table can also come from JS (created by CreateWasmTable). Later on, the
fuzzer can replace that table input with an arbitrary other input.
This means that we need to encode the element type in the table.get
operation, so that the JSTyper always knows the correct result type.
I removed this in commit 7e5724c (among
other things that are indeed unnecessary).
Bug: 430171132
Change-Id: Icffc95fadb79979d7125a33d797868c5a6ad50e5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9337021
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
This allows fuzzilli to use the same handler object in different proxy objects. Helps testing upcoming proxy ICs.
Bug: 516717223
Change-Id: Ia5c47196a9233e3696b81d0b31c63a728c57fa50
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336380
Commit-Queue: Olivier Flückiger <olivf@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Olivier Flückiger <olivf@google.com>
- Add support for i31ref in JavaScriptLifter for CreateWasmTable.
- Update WasmDefineTableGenerator to randomly use funcref, externref, and i31ref.
- Add missing WasmTableGenerator to generate JS-side WebAssembly.Table objects.
Bug: 430171132
Change-Id: I4a435276d6e7a2d602738ae0b1b3f4c45788e0a7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333760
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Bug: 430171132
Change-Id: I4697952c9cef237c2cb9339343d6fec127d2c347
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333860
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
The test is executed only when generating bundles, since it requires
passing --bundles to d8 to run.
TAG=agy
CONV=5588ce4d-a98f-415f-b04b-5c6a9c3508b7
Change-Id: I7eb330ea3ce547f96fc55892c961a49515721546
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336701
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Liedtkeand others added 30 commits August 13, 2026 02:02
In JavaScript, optional chaining (`?.`) on the left-hand side of an
assignment is disallowed by static early error rules:
https://tc39.es/ecma262/#sec-static-semantics-assignmenttargettype
Previously, lifting a guarded SetPrivateProperty instruction emitted
`obj?.#prop = val;`, producing an uncatchable parse-time SyntaxError.
This change aligns SetPrivateProperty with SetProperty and
UpdatePrivateProperty to always emit standard member access
(`obj.#prop = val;`) on the assignment target.
Change-Id: Ibf8b83d2442dfe5b538e450c05fad9ce00f359d6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672675
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Change-Id: I3b0d3d55b213aecc94cb0e12843b7c2572a26cd5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672975
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/JavaScript_interface/validate_static#return_value
Change-Id: I413cd116d66f3f2912f87f9e83bdc0440931006d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673596
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
.. and enable acquire-release-atomics flag.
Bug: 498924945
Fixed: 535260641
Change-Id: Id4f863c74b540d1879bb324e10a1cca8939588d2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673715
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Change-Id: I90e62d7e7d6805e98ad869d746967682dd421c7a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678017
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
- Fix empty method name in Duration construction ("from")
- Fix argument count for PlainYearMonth and PlainMonthDay constructors
- Fix malformed subsecond separator in UTC offset strings
- Fix PlainMonthDay.prototype.with returning PlainYearMonth instead of
PlainMonthDay
- Fix PlainMonthDay.prototype.equals accepting PlainYearMonth parameters
- Fix Duration.prototype.total return type to number instead of Duration
- Fix ZonedDateTime.prototype.getTimeZoneTransition returning
Instant | nullish
- Remove duplicate "auto" entry in jsTemporalUnitEnum
Change-Id: If94ec911e1966d97cb7bd64c9c9533429081f958
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678375
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Manish Goregaokar <manishearth@google.com>
In JSTyper, async class and object literal methods previously
defaulted to returning .jsPromise() (resolvingTo: .jsAnything).
This change aligns async methods with standalone async functions by
inferring the promise resolving type from the method's return value:
`.jsPromise(resolvingTo: resultType.returnType.promiseResolvingTo)`.
TAG=agy
Change-Id: I9ab1e4dace9a9d04d7dc6c7fb915a3a18b2558a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9676859
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
1. Fix String.prototype.trim return type to .jsString.
2. Register missing OptionsBag.jsTemporalDurationCompareSettings in
init().
3. Fix Object.entries return type to .jsArray.
4. Fix Intl.Locale numeric property to .boolean, and getTextInfo return
type to .object(withProperties: ["direction"]).
5. Update constructor callabilities: Function to .functionAndConstructor
and Temporal / Intl constructors to .constructor.
6. Make parameter optionality conform to spec for Object.create,
Array.prototype.sort, Array.prototype.join, and Date.prototype.set*.
7. Synchronize globalThis property registration with
globalThisGroup.instanceType in finalizeGlobalThisGroup().
8. Fix duplicate enum assertion message in registerObjectGroup().
9. Make TypedArray.prototype.join and TypedArray.prototype.sort
parameter optionality conform to spec.
10. Update Date.prototype.setHours and Date.prototype.setUTCHours to
support optional 4th milliseconds argument.
TAG=agy
Change-Id: I4b787be0ae8a82c71290452d9ac3466b87b03635
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9677317
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
and mark one more "join" method's separator parameter as optional.
Change-Id: I253e9d0f50fc7f63b27a2d57c885c12acedd51a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9682955
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This reverts commit 60a81c6.
Reason for revert: experiment finished
Original change's description:
> [v8] Introduce unsafe flag for binaryen integration evaluation
>
> Fuzzilli itself doesn't generate ref.cast_desc_eq instructions, so
> this can only be found by the Binaryen integration.
>
> Corresponding V8 change: https://crrev.com/c/8236732
>
> Bug: 498924945
> Change-Id: Ibb9b6e66efacc283ef68288024acedfbeb909a01
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9666335
> Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
> Commit-Queue: Matthias Liedtke <mliedtke@google.com>
> Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945, 546884393
Bug: 498924945
Change-Id: Ic89faeef0e298c5ee9daa9598c723ae774b7aa22
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9686395
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
…e mutation
Before this change, private property generators had ~0.19% invocation success rate because referencing an undeclared private field (#foo) inside a class is a SyntaxError that cannot be caught by runtime try-catch blocks. Hence, rather than emitting invalid code, the Generators were returning without generating any instruction.
1. Extended ILType.object(...) to track privateProperties and privateMethods
2. When private member generators run inside a class method before properties are declared, referenced names are recorded and automatically emitted at EndClassDefinition(). This eliminates syntax errors and raises private generator success rates to 100.00%.
3. Updated OperationMutator selecting valid private members from scope for mutations.
Bug: 534650967
Bug: 522217077
Change-Id: I6c1ce14c58559c959866ecafab050435f76f44c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9614016
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
- Temporal.Instant.from and Temporal.Duration.from do not accept an
options bag. Update temporalFromSignature to emit 1-parameter
signatures when settingsArg is nil.
- Explicitly pass settingsArg: jsTemporalOverflowSettings for PlainTime,
PlainYearMonth, PlainMonthDay, and PlainDate from() overloads.
Change-Id: I4dfbf7cddf10c99d35abc436dc8d4e3203f5d9df
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678376
Reviewed-by: Manish Goregaokar <manishearth@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Bug: 529283573
Change-Id: I894b4391d2465421b44e3a0d277c5e4015a2b84e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9694915
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945
Change-Id: I5da4f0dfc050d389bdc5168bc45d67f3d530b262
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9699455
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Currently, only --wasm-features=custom-descriptors is supported.
This will allow to enable custom descriptors related code, including
lifting "exactness", selectively.
Bug: 502246833
Change-Id: I4272a7e06555303ccd134c74c6121ee236ab19f6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9680135
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL makes the output of the existing instructions
wasmArrayNewFixed
wasmArrayNewDefault
wasmStructNew
wasmStructNewDefault
wasmRefFunc
wasmRefNull
exact, depending on the “enableCustomDescriptors” config.
It also adds support for lifting the “exact” property to Wasm Code, adjusts subtyping for exact types, and supports exact index-typed globals.
Bug: 502246833
Change-Id: I7098977f0b16d6372e5d3106d7c711ea8a1fa410
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9665935
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
However, they won't get generated by the fuzzer yet because
`WasmCustomDescriptorsStructTypesGenerator` is not enabled until
all instructions and generators are implemented and adapted.
Bug: 502246833
Change-Id: Iee0d7d179a9fbf6d6ac0484eb0fc3dbba5df892c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9670676
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
This CL makes the `indexTypes` parameter of `wasmDefineStructType()`
default to []. This cleans up the code a bit.
Change-Id: I492c2802041afeb4432293c5a4a27e84db51bc6a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673597
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Bug: 515363087
Change-Id: I044310fb22e58953207c45e1b160e2719e639f4e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9691916
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…er operations is not redundant
Bug: 552300848
Change-Id: Ic384c15945970e6b835f20be8864c3600e54e5b8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723615
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 552300848
Change-Id: I90609f3fad2a9b0a7e55c838af13b55c0d5567fb
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723675
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…tionAndCompilation
testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
unrelated CLs
Bug: 553335553
Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
For running shorter experiments that measure any statistics, it is
useful to start worker threads with a deterministic delay as it
otherwise creates too much variance in measurements.
It is still useful to start workers later for the commented reasons,
but now they can be started in an experiment setup with e.g. a delay
of 120 seconds each. This is particularly useful when running
experiments with a low `--corpusGenerationIterations` parameter.
Bug: 476974566
Change-Id: If90d92c7b1d777281408561a9828f14357cc023b
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9739195
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Add `ILType.namedInteger(ofName:)` and `namedInteger` generator support,
mirroring the existing `namedString` design.
This feature is introduced with various `namedInteger`s for generating
bounded integer types (e.g., uint8, int16, uint32).
Bug: 553587894
Change-Id: I87b835d3148449539451983bebea038c88530135
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9734538
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
TAG=agy
Bug: 498924945, 535260641
Change-Id: I73479be7306782db26ae19e8353fda18cf876ba7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729009
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
…deGenerationAndCompilation"
This reverts commit e154660.
Reason for revert: Fixed the Binaryen versioning
Fix Link: https://chrome-internal-review.git.corp.google.com/c/v8/fuzzilli/+/9729009
Original change's description:
> [test] Increase failure rate tolerance for testBinaryenWasmCodeGenerationAndCompilation
>
> testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
> unrelated CLs
>
> Bug: 553335553
> Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
> Reviewed-by: Michael Achenbach <machenbach@google.com>
> Reviewed-by: Matthias Liedtke <mliedtke@google.com>
> Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 553335553
Change-Id: If4018be5108a742944b1e9698a8cd34a7eda2ed0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9738219
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
- Decouple `isGuarded` (try-catch) and `isOptional` (optional chaining `?.`) across operations in `operations.proto`, `JsOperations.swift`, and `ProgramBuilder.swift`
- Add `isOptional` to operations that support optional chaining in JavaScript syntax
- Add `isGuarded` to `UpdateProperty` and `UpdatePrivateProperty` to allow them to be wrapped in try-catch
- Update FuzzIL `JavaScriptLifter.swift` to rely on `isOptional` for `?.` and decouple it from `haveSpecialHandlingForGuardedOp`
- Regenerate Protobuf swift bindings
- Update `LifterTest.swift` expectations and builder syntax to correctly test combinations of `isOptional` and `isGuarded`
Bug: 537236612
Change-Id: I6374de16ad742566a1cdd243ada1b5ac44ae13a1
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729375
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 476974566
Change-Id: I21cfcffec9b6ed20cf38bb224d44df5638d2d754
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9748516
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Change-Id: Idaa2f824303a4a6c6062affcbb3d68a345fd2605
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672936
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This is too slow to be convenient, the CI is already reasonably slow for
testing both d8 + Node.js + presubmit-checks on Linux debug.
Bug: 498924945
Change-Id: I9ea5e9797d7dcb391d83965304c523fee2099793
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9752235
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Sign up for freeto 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.

13 participants

@Dudcom@Liedtke@emaxx-google@tbantikyan@rherouart-collab@marjakh@leonbett@o-@nickie@rmahdav@mi-ac@lebe-g@omerktz
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); base fuzzili update by Dudcom · Pull Request #52 · VRIG-RITSEC/fuzzillai · GitHub
Skip to content

base fuzzili update - #52

Open
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main
Open

base fuzzili update #52
Dudcom wants to merge 539 commits into
VRIG-RITSEC:agentfrom
googleprojectzero:main

Conversation

@Dudcom

Copy link
Copy Markdown

updating with head

@Dudcom

Copy link
Copy Markdown
Author

we are in hell

Liedtkeand others added 29 commits May 19, 2026 04:20
Bug: 447125167
Change-Id: I694c2feac0d42f1afb47f3ec2e9c94b2401382fe
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9279080
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bug: 447125167
Change-Id: Ifa7899b5e12a30718f64ccac36e693aa91020e5d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9288582
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
This flag used to be always set in fuzzers due to the implication from
`--fuzzing`, but the implication is removed now (crrev.com/c/7845199).
Hence randomize it with high probability (still not 100% to avoid having
blind spots), except for sandbox fuzzers where it'd not bring any benefit
due to them ignoring CHECKs.
Bug: 475707969
Change-Id: Ia8a495af600acc40dcd188fc1726e1e039237c79
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310081
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Add support for handling CreateArray operations with the
`elementGroupName` property set in OperationMutator and
MinimizationPostProcessor.
Bug: 503429420
Change-Id: I29170419cda15d9a73d0a9ad43aaa2ebd0322081
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9293280
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Add randomized addition of --no-flush-bytecode, to occasionally test
this non-production scenario.
Don't explicitly add --flush-bytecode: it's the default value anyway,
and it didn't help to reenable it when flag implications (--jit-fuzzing
to --no-flush-bytecode) disable it.
Bug: 475707969
Change-Id: Ia2c2141430f222f6c3d7c4cb946762c725c65204
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9278461
Commit-Queue: Maksim Ivanov <emaxx@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I5b818576409d654a039edac6dbcfa959352018aa
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296863
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 514576448
Change-Id: I4f0236055f21611a582fef526a721e13f58ca2f9
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310040
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Bug: 445356784
Change-Id: I3a07fe4d292dd5b988c655936e0abd889338cbe8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310720
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This CL adds the `selectionMode` property to the `OptionsBag` struct to
configure how `OptionsBag` selects the properties for the object literal
it generates. The default behavior is preserved with the `anySubset`
case. The new `exactlyOne` case configures `OptionsBag` to select
exactly one property for the object literal.
This CL also makes `OptionsBag` easily usable in profiles by adding an
`additionalOptionsBag` property to the `Profile` struct and by removing
the strict assert on the supported `OptionsBag` properties array.
Bug: 512875834
Change-Id: I6b6348f515cc736ee281af9c9e384ac93eaf762c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9311541
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514576448
Change-Id: I7d2b1580b49211e1ec184f78798588eb7b4ea6ca
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313600
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 514906333
Change-Id: Ib94a058c73bab07f1b9292e102439af847593006
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9310083
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
…tions
TAG=agy
CONV=0a8bad59-c896-4fbd-925a-620838620623
Change-Id: I82d1eafe22df70aa455b98d0de8795820398a08c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320640
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
BUG=515494290
TAG=agy
CONV=3987abe0-de45-4002-95ae-4f62b5e0cf10
Change-Id: I0324d4ef618f2bae310eb392ddff5aa3b71b9c0d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320641
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 515363087
Change-Id: I06060612d8eee9bf783a849352435c5b4bf9c893
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317280
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
1) Hide variables outside the worker function so that the function
doesn't use them.
2) Make the main thread wait for the worker to finish.
Fixed: 497549860
Change-Id: If3b22fae7e61cca33b1c55fbfab3fcf9f5f6abaf
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9282445
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
Previously, randomWasmTypeDef() would only return type definitions
of non-ad-hoc signatures.
With this fix, it should also return array and struct type definitions.
Bug: 445356784
Change-Id: I6b131c42e61c17771fa211c213d64456b964bdb5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9320520
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
This CL adds support for the br_on_cast instruction.
Bug: 474940922
Change-Id: Iadb552b42b1c721d0b5c462afda75aff91bb4791
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9300280
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Support for "import * as ns" import syntax, including the deferred
import variant. Other imports (named, default, etc.) are future
work.
https://github.com/tc39/proposal-defer-import-eval
Bug: 398218423
Change-Id: If0e691054f0668cd4eed2bbdc9532b0c520fec4a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9313400
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
This CL adds support for the br_on_cast_fail instruction.
Bug: 474940922
Change-Id: Icacbd109fff843179f69806769437322f14326c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9299601
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 515363087
Change-Id: I41e4b487ee08dbf7da22959c6c1d08e4099a6ad4
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317282
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
This was staged for V8 in https://crrev.com/c/7845195.
Bug: 465715798
Change-Id: I1b01eea17c3c1049d66251de6a025747aef43bb7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333500
Reviewed-by: Olivier Flückiger <olivf@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Node.js v26 branched, the new nightly version is v27.
we need to stay up-to-date to be able to test new V8 features.
Change-Id: I4eea87f24cfff0e2cb48cb21904d6c0c5bb97421
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317781
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This CL adapts WasmReturnCallDirectGenerator and
WasmReturnCallIndirectGenerator to use `subsumes()` instead of
equality to find functions with compatible output types.
Bug: 445356784
Change-Id: I7c3113c54b7752809320e9d58fbbb11eaca10d4f
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9318221
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL adds support for the ref.func instruction.
Bug: 474940922
Change-Id: I885b966598a9d72c161d2ef7bee910032576a53d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9296864
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
The table type can be easily inferred by the input table, so the
table.get doesn't need a type immediate. For fuzzilli however, the input
table can also come from JS (created by CreateWasmTable). Later on, the
fuzzer can replace that table input with an arbitrary other input.
This means that we need to encode the element type in the table.get
operation, so that the JSTyper always knows the correct result type.
I removed this in commit 7e5724c (among
other things that are indeed unnecessary).
Bug: 430171132
Change-Id: Icffc95fadb79979d7125a33d797868c5a6ad50e5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9337021
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
This allows fuzzilli to use the same handler object in different proxy objects. Helps testing upcoming proxy ICs.
Bug: 516717223
Change-Id: Ia5c47196a9233e3696b81d0b31c63a728c57fa50
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336380
Commit-Queue: Olivier Flückiger <olivf@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Olivier Flückiger <olivf@google.com>
- Add support for i31ref in JavaScriptLifter for CreateWasmTable.
- Update WasmDefineTableGenerator to randomly use funcref, externref, and i31ref.
- Add missing WasmTableGenerator to generate JS-side WebAssembly.Table objects.
Bug: 430171132
Change-Id: I4a435276d6e7a2d602738ae0b1b3f4c45788e0a7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333760
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Bug: 430171132
Change-Id: I4697952c9cef237c2cb9339343d6fec127d2c347
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9333860
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
The test is executed only when generating bundles, since it requires
passing --bundles to d8 to run.
TAG=agy
CONV=5588ce4d-a98f-415f-b04b-5c6a9c3508b7
Change-Id: I7eb330ea3ce547f96fc55892c961a49515721546
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336701
Commit-Queue: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Liedtkeand others added 30 commits August 13, 2026 02:02
In JavaScript, optional chaining (`?.`) on the left-hand side of an
assignment is disallowed by static early error rules:
https://tc39.es/ecma262/#sec-static-semantics-assignmenttargettype
Previously, lifting a guarded SetPrivateProperty instruction emitted
`obj?.#prop = val;`, producing an uncatchable parse-time SyntaxError.
This change aligns SetPrivateProperty with SetProperty and
UpdatePrivateProperty to always emit standard member access
(`obj.#prop = val;`) on the assignment target.
Change-Id: Ibf8b83d2442dfe5b538e450c05fad9ce00f359d6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672675
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Change-Id: I3b0d3d55b213aecc94cb0e12843b7c2572a26cd5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672975
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/JavaScript_interface/validate_static#return_value
Change-Id: I413cd116d66f3f2912f87f9e83bdc0440931006d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673596
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
.. and enable acquire-release-atomics flag.
Bug: 498924945
Fixed: 535260641
Change-Id: Id4f863c74b540d1879bb324e10a1cca8939588d2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673715
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Change-Id: I90e62d7e7d6805e98ad869d746967682dd421c7a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678017
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
- Fix empty method name in Duration construction ("from")
- Fix argument count for PlainYearMonth and PlainMonthDay constructors
- Fix malformed subsecond separator in UTC offset strings
- Fix PlainMonthDay.prototype.with returning PlainYearMonth instead of
PlainMonthDay
- Fix PlainMonthDay.prototype.equals accepting PlainYearMonth parameters
- Fix Duration.prototype.total return type to number instead of Duration
- Fix ZonedDateTime.prototype.getTimeZoneTransition returning
Instant | nullish
- Remove duplicate "auto" entry in jsTemporalUnitEnum
Change-Id: If94ec911e1966d97cb7bd64c9c9533429081f958
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678375
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Manish Goregaokar <manishearth@google.com>
In JSTyper, async class and object literal methods previously
defaulted to returning .jsPromise() (resolvingTo: .jsAnything).
This change aligns async methods with standalone async functions by
inferring the promise resolving type from the method's return value:
`.jsPromise(resolvingTo: resultType.returnType.promiseResolvingTo)`.
TAG=agy
Change-Id: I9ab1e4dace9a9d04d7dc6c7fb915a3a18b2558a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9676859
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
1. Fix String.prototype.trim return type to .jsString.
2. Register missing OptionsBag.jsTemporalDurationCompareSettings in
init().
3. Fix Object.entries return type to .jsArray.
4. Fix Intl.Locale numeric property to .boolean, and getTextInfo return
type to .object(withProperties: ["direction"]).
5. Update constructor callabilities: Function to .functionAndConstructor
and Temporal / Intl constructors to .constructor.
6. Make parameter optionality conform to spec for Object.create,
Array.prototype.sort, Array.prototype.join, and Date.prototype.set*.
7. Synchronize globalThis property registration with
globalThisGroup.instanceType in finalizeGlobalThisGroup().
8. Fix duplicate enum assertion message in registerObjectGroup().
9. Make TypedArray.prototype.join and TypedArray.prototype.sort
parameter optionality conform to spec.
10. Update Date.prototype.setHours and Date.prototype.setUTCHours to
support optional 4th milliseconds argument.
TAG=agy
Change-Id: I4b787be0ae8a82c71290452d9ac3466b87b03635
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9677317
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
and mark one more "join" method's separator parameter as optional.
Change-Id: I253e9d0f50fc7f63b27a2d57c885c12acedd51a2
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9682955
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This reverts commit 60a81c6.
Reason for revert: experiment finished
Original change's description:
> [v8] Introduce unsafe flag for binaryen integration evaluation
>
> Fuzzilli itself doesn't generate ref.cast_desc_eq instructions, so
> this can only be found by the Binaryen integration.
>
> Corresponding V8 change: https://crrev.com/c/8236732
>
> Bug: 498924945
> Change-Id: Ibb9b6e66efacc283ef68288024acedfbeb909a01
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9666335
> Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
> Commit-Queue: Matthias Liedtke <mliedtke@google.com>
> Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945, 546884393
Bug: 498924945
Change-Id: Ic89faeef0e298c5ee9daa9598c723ae774b7aa22
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9686395
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
…e mutation
Before this change, private property generators had ~0.19% invocation success rate because referencing an undeclared private field (#foo) inside a class is a SyntaxError that cannot be caught by runtime try-catch blocks. Hence, rather than emitting invalid code, the Generators were returning without generating any instruction.
1. Extended ILType.object(...) to track privateProperties and privateMethods
2. When private member generators run inside a class method before properties are declared, referenced names are recorded and automatically emitted at EndClassDefinition(). This eliminates syntax errors and raises private generator success rates to 100.00%.
3. Updated OperationMutator selecting valid private members from scope for mutations.
Bug: 534650967
Bug: 522217077
Change-Id: I6c1ce14c58559c959866ecafab050435f76f44c8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9614016
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
- Temporal.Instant.from and Temporal.Duration.from do not accept an
options bag. Update temporalFromSignature to emit 1-parameter
signatures when settingsArg is nil.
- Explicitly pass settingsArg: jsTemporalOverflowSettings for PlainTime,
PlainYearMonth, PlainMonthDay, and PlainDate from() overloads.
Change-Id: I4dfbf7cddf10c99d35abc436dc8d4e3203f5d9df
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9678376
Reviewed-by: Manish Goregaokar <manishearth@google.com>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Bug: 529283573
Change-Id: I894b4391d2465421b44e3a0d277c5e4015a2b84e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9694915
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 498924945
Change-Id: I5da4f0dfc050d389bdc5168bc45d67f3d530b262
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9699455
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Currently, only --wasm-features=custom-descriptors is supported.
This will allow to enable custom descriptors related code, including
lifting "exactness", selectively.
Bug: 502246833
Change-Id: I4272a7e06555303ccd134c74c6121ee236ab19f6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9680135
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL makes the output of the existing instructions
wasmArrayNewFixed
wasmArrayNewDefault
wasmStructNew
wasmStructNewDefault
wasmRefFunc
wasmRefNull
exact, depending on the “enableCustomDescriptors” config.
It also adds support for lifting the “exact” property to Wasm Code, adjusts subtyping for exact types, and supports exact index-typed globals.
Bug: 502246833
Change-Id: I7098977f0b16d6372e5d3106d7c711ea8a1fa410
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9665935
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
However, they won't get generated by the fuzzer yet because
`WasmCustomDescriptorsStructTypesGenerator` is not enabled until
all instructions and generators are implemented and adapted.
Bug: 502246833
Change-Id: Iee0d7d179a9fbf6d6ac0484eb0fc3dbba5df892c
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9670676
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
This CL makes the `indexTypes` parameter of `wasmDefineStructType()`
default to []. This cleans up the code a bit.
Change-Id: I492c2802041afeb4432293c5a4a27e84db51bc6a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9673597
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@chromium.org>
Bug: 515363087
Change-Id: I044310fb22e58953207c45e1b160e2719e639f4e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9691916
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…er operations is not redundant
Bug: 552300848
Change-Id: Ic384c15945970e6b835f20be8864c3600e54e5b8
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723615
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bug: 552300848
Change-Id: I90609f3fad2a9b0a7e55c838af13b55c0d5567fb
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9723675
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
…tionAndCompilation
testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
unrelated CLs
Bug: 553335553
Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
For running shorter experiments that measure any statistics, it is
useful to start worker threads with a deterministic delay as it
otherwise creates too much variance in measurements.
It is still useful to start workers later for the commented reasons,
but now they can be started in an experiment setup with e.g. a delay
of 120 seconds each. This is particularly useful when running
experiments with a low `--corpusGenerationIterations` parameter.
Bug: 476974566
Change-Id: If90d92c7b1d777281408561a9828f14357cc023b
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9739195
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Add `ILType.namedInteger(ofName:)` and `namedInteger` generator support,
mirroring the existing `namedString` design.
This feature is introduced with various `namedInteger`s for generating
bounded integer types (e.g., uint8, int16, uint32).
Bug: 553587894
Change-Id: I87b835d3148449539451983bebea038c88530135
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9734538
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
TAG=agy
Bug: 498924945, 535260641
Change-Id: I73479be7306782db26ae19e8353fda18cf876ba7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729009
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@google.com>
…deGenerationAndCompilation"
This reverts commit e154660.
Reason for revert: Fixed the Binaryen versioning
Fix Link: https://chrome-internal-review.git.corp.google.com/c/v8/fuzzilli/+/9729009
Original change's description:
> [test] Increase failure rate tolerance for testBinaryenWasmCodeGenerationAndCompilation
>
> testBinaryenWasmCodeGenerationAndCompilation is flaky and blocking
> unrelated CLs
>
> Bug: 553335553
> Change-Id: Ic31f5be496726f9ae03d6d5b8873c052844700d0
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9733395
> Reviewed-by: Michael Achenbach <machenbach@google.com>
> Reviewed-by: Matthias Liedtke <mliedtke@google.com>
> Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 553335553
Change-Id: If4018be5108a742944b1e9698a8cd34a7eda2ed0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9738219
Auto-Submit: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
- Decouple `isGuarded` (try-catch) and `isOptional` (optional chaining `?.`) across operations in `operations.proto`, `JsOperations.swift`, and `ProgramBuilder.swift`
- Add `isOptional` to operations that support optional chaining in JavaScript syntax
- Add `isGuarded` to `UpdateProperty` and `UpdatePrivateProperty` to allow them to be wrapped in try-catch
- Update FuzzIL `JavaScriptLifter.swift` to rely on `isOptional` for `?.` and decouple it from `haveSpecialHandlingForGuardedOp`
- Regenerate Protobuf swift bindings
- Update `LifterTest.swift` expectations and builder syntax to correctly test combinations of `isOptional` and `isGuarded`
Bug: 537236612
Change-Id: I6374de16ad742566a1cdd243ada1b5ac44ae13a1
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9729375
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 476974566
Change-Id: I21cfcffec9b6ed20cf38bb224d44df5638d2d754
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9748516
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Change-Id: Idaa2f824303a4a6c6062affcbb3d68a345fd2605
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9672936
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@chromium.org>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This is too slow to be convenient, the CI is already reasonably slow for
testing both d8 + Node.js + presubmit-checks on Linux debug.
Bug: 498924945
Change-Id: I9ea5e9797d7dcb391d83965304c523fee2099793
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9752235
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Sign up for freeto 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.

13 participants

@Dudcom@Liedtke@emaxx-google@tbantikyan@rherouart-collab@marjakh@leonbett@o-@nickie@rmahdav@mi-ac@lebe-g@omerktz