Skip to content

base fuzzili update #52

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

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

Conversation

@Dudcom

@Dudcom Dudcom commented Jan 25, 2026

Copy link
Copy Markdown

updating with head

o- and others added 30 commits January 27, 2026 04:48
Bug: 450237486
Change-Id: I30de85f87ca170a998fc17a72e15c4579db37774
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8901996
Auto-Submit: Olivier Flückiger <olivf@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
This fixes #546

Change-Id: I8331dd909c05a51bfe73749e8677b18501e261bd
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8956179
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Add the `--maglev-assert-types` flag to the list of possible flags,
 with a 10% probability.
This flag is enabled only when sandbox-fuzzing is disabled.

Change-Id: Ic710d8b6c185af79979b50bb991672e6e1563dd3
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8963977
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Dominik Klemba <tacet@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Had some logs about them, but removed them for review. Now it is time to
add proper reporting.

Bug:441467877
Change-Id: I03bf6a6ae447caa4bc3eae202709fb2976a017c0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8969557
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
Before we were printing 0 always.

Bug: 441467877
Change-Id: Icacd9310f8cd845695d2a83e5eb297ce2e60882b
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8977177
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
Bug: 441467877
Change-Id: Id3793d3065384bfb2e190c626ed014782d9ebb63
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8977176
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
Change-Id: I00ec85b51048e0bc9dc90f96610c293c5d7f3089
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8977237
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Interpreter dumping produces 1 frame at a single offset, for optimized
compilers we might dump the same frame many times on a single offset,
because there might be many deopt points on a single offset.

Bug: 441467877
Change-Id: Iaff7dd987d9352d0b95c1c53ffd54ef0ae7e8f1d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8986716
Commit-Queue: Dominik Klemba <tacet@google.com>
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
Reviewed-by: Dominik Klemba <tacet@google.com>
New generator is able to create two patterns (with 50/50 probability):
1) if(boolean_variable){throw random_variable;}
2) if(!boolean_variable){throw random_variable;}

Bug: 455512155, 455513417
Change-Id: Ief3ddeef21653cdda3fd1fdd154c0d248dc77631
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8991196
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Dominik Klemba <tacet@google.com>
NOTE: `undefined` is lifted to holes in that case (which is
unintuitive).

Adds HoleyArrayGenerator to create arrays with holes. Adds
testHoleyArrayLifting to verify intended lifting of holey arrays.

Generated hole types (can be in dictionary mode):
- Holey Smi
- Holey Double
- Holey Elements

Adds ArrayIntegrityLevelGenerator to freeze/seal/preventExtensions
objects.

There is a chance of transitioning the hole type with
ArrayIntegrityLevelGenerator to:
- HOLEY_SEALED_ELEMENTS
- HOLEY_FROZEN_ELEMENTS
- HOLEY_NONEXTENSIBLE_ELEMENTS

Bug: 476158042, 455513417
Change-Id: Id396b72183f70ce98d0c97b4c202efffc1c31cbe
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8956876
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Dominik Klemba <tacet@google.com>
This change fixes a bug in DiffOracle where register and argument values
were lost when transitioning between frame types with different register
counts.

In original-original code (in Dumpling GitHub), DiffOracle relied on
prevFrame to reconstruct the state. We removed prevFrame, erroneously
thinking that it is not needed. Now if a frame reports fewer registers
than the preceding frame, the parser would shrink the register array to
match. This causes data loss for the higher-index registers. When
execution later has a higher count of register and was expecting them to
still exist, they are erroneously reported as missing or reset, causing
false positive mismatches.

Thus we go back to have runningRegs/Args (same stuff as prevFrame in
original-original code but still more refactored and simplified).

Bug: 441467877
Change-Id: Ic85d7d8b9ef19d359ca9cc7e4af8bb6c36468c2b
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8995239
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
Reviewed-by: Dominik Klemba <tacet@google.com>
My eyes hurt.

Bug: 441467877
Change-Id: Ib8522847f46e1c0dd72bef19904a4fcd7d744f93
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9012356
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
wasmRefTest operation was added which can work with either concrete or
abstract wasm types. Since concrete types need a type definition there
are two code generators; one where we need such a type definition to
already exist and a more generic one that tests against abstract types.

Bug: 474940922
Change-Id: I148c1bc44c8649fcdb92d0afc52efa3af8d34b33
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8952838
Commit-Queue: Doga Yüksel <dyuksel@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
With 0.5 probability, adds guard try/catch blocks around calls in
ForceTurboFanCompilationGenerator, ForceMaglevCompilationGenerator,
LazyDeoptFuzzer, and FastApiCallFuzzer.

Bug: 483578451
Change-Id: Iecaededb94c0dfbf6e49f20c6b69ddf38e500cb0
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9012916
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Dominik Klemba <tacet@google.com>
Bug: 481610393
Change-Id: I815e16a598e7c0d3eafc39608fea1e41f96096d9
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9012919
Commit-Queue: Michael Achenbach <machenbach@google.com>
Auto-Submit: Michael Achenbach <machenbach@google.com>
Reviewed-by: Leszek Swirski <leszeks@google.com>
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
Reviewed-by: Danylo Mocherniuk <mdanylo@google.com>
Commit-Queue: Leszek Swirski <leszeks@google.com>
Quoting Leszek: "--predictable basically disables any concurrency so
that everything is scheduled on the main thread. --verify-predictable
additionally adds a synthetic clock so that things like timestamps have
a fixed value, for being able to verify predictability by hashing"

Additionally --verify-predictable implies --predictable.

Bug: 441467877
Change-Id: I7c47d00b8de8242f4b029e60fe79816713756a2f
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9012917
Reviewed-by: Dominik Klemba <tacet@google.com>
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
There are a few more steps to actually report a thing as differential
but I don't want to miss anything, so I will print it here too.

Bug: 441467877
Change-Id: I009ed1792ae486e55cbd65bf63c0863077a6a375
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9012880
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
This reverts commit 597241f.

Reason for revert: it didn't help with all timestamps, adding code prefix to mock date looks more promising. Additionally this flag does a bunch of other stuff and requires a build flag to work properly, so let's ditch it.

Original change's description:
> [dumpling] Disable timestamp non-determinism.
>
> Quoting Leszek: "--predictable basically disables any concurrency so
> that everything is scheduled on the main thread. --verify-predictable
> additionally adds a synthetic clock so that things like timestamps have
> a fixed value, for being able to verify predictability by hashing"
>
> Additionally --verify-predictable implies --predictable.
>
> Bug: 441467877
> Change-Id: I7c47d00b8de8242f4b029e60fe79816713756a2f
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9012917
> Reviewed-by: Dominik Klemba <tacet@google.com>
> Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>

Bug: 441467877
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I8ed49d648aa34a7c75f1ebb220d52a16ee396259
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9014817
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
Reviewed-by: Danylo Mocherniuk <mdanylo@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bug: 441467877
Change-Id: I0ae0f1e833dfbc6a590d5dfe8d83a6e16836311f
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9016616
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
Bug: 441467877
Change-Id: I8346b2e0eba7877d86e2db1ceb35a236c4bf0545
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9012879
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
Bug: 441467877
Change-Id: I104bc80f10573790e0a4c81ba99d70dcc1bac99e
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9012959
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Dominik Klemba <tacet@google.com>
This diversifies the arguments for the function calls in V8's
typical function-optimization shortcuts.

Often, reproducers have an argument pattern across the functions
that is not all equal. For getting polymorphic feedback or a type
deviation in the optimized function call, we see patterns like:
f(a); f(a); %Opt(f); f(b);
Or:
f(a); f(b); %Opt(f); f(c);

Though Fuzzilli will eventually mutate the arguments, this change
attempts to tickle out this diversity a bit more.

With the largest percentage we retain the old behavior.

Change-Id: I58c8e7361aa3ce122a034417708dcedb8b4d7888
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9020237
Reviewed-by: Dominik Klemba <tacet@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
This merges the code of the two generators forcing Maglev or
Turbofan compilation. The separation is probably not adding any
value.

This also doubles the weight of the resulting generator as local
experiments show that it's called a bit too rarely. Probably
due to other generators being added over time.

Fly-by: Remove a counter-productive generator for Dumpling.

Bug: 465497343
Change-Id: I208fc1ba47caa3b3d0f2d672b72b527e001a0f45
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9020158
Reviewed-by: Dominik Klemba <tacet@google.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Until non-materialized printing is implemented for everything, we will
allow it to match anything similar to <optimized_out>.

Bug: 441467877
Change-Id: I681ceba56a88e66220ee00d65a7f8f4166042cd5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9026356
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Similar to Date, we also need to mock Temporal

Bug: 441467877
Change-Id: I72f44575b2c9c08c9067f55518259727b8cb10b1
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9026357
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Danylo Mocherniuk <mdanylo@google.com>
This reverts commit 57da3ab.

Reason for revert: The simplification doesn't take the swarm mode
into account.

Original change's description:
> Simplify force-compilation generator
>
> This merges the code of the two generators forcing Maglev or
> Turbofan compilation. The separation is probably not adding any
> value.
>
> This also doubles the weight of the resulting generator as local
> experiments show that it's called a bit too rarely. Probably
> due to other generators being added over time.
>
> Fly-by: Remove a counter-productive generator for Dumpling.
>
> Bug: 465497343
> Change-Id: I208fc1ba47caa3b3d0f2d672b72b527e001a0f45
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9020158
> Reviewed-by: Dominik Klemba <tacet@google.com>
> Commit-Queue: Michael Achenbach <machenbach@google.com>

Bug: 465497343
Change-Id: I98fdb06431c296b7a516502899b6a94712cb3dcd
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9026358
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Michael Achenbach <machenbach@google.com>
Share the generator code, but keep the separate generator instances.

Bug: 465497343
Change-Id: Ie31c5b0fd8e1853a93dc26664ac863c28ac567ff
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9026476
Commit-Queue: Michael Achenbach <machenbach@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Also sometimes explicitly enable or disable lazy compilation.

Bug: 475707969
Change-Id: Ic13b6843ae0d478f0d9e6ce77a0d7318d1f47e03
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8999276
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leszek Swirski <leszeks@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
The goal is to improve readability.
It affects probability distribution:
- Allows up to 4 distinct argument sets (previously capped at 3).
- When reusing arguments, selects uniformly from all previously generated sets, eliminating the bias towards the first set found in the previous implementation.

Original implementation added in: crrev/i/9020237

Change-Id: I590149d3d0cf7f1889c68c30fc8d4b0f0d71e6e5
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9022358
Commit-Queue: Dominik Klemba <tacet@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Michael Achenbach <machenbach@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Dominik Klemba <tacet@google.com>
leonbett and others added 30 commits May 27, 2026 01:48
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>
Change-Id: Id0b6a94c906b48cbe6a194e77e47016868dd0e8a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9340380
Reviewed-by: Marja Hölttä <marja@google.com>
Commit-Queue: Marja Hölttä <marja@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
These should now be in sync with what v8 supports. (V8 does not allow
null types like noexternref and also disallows exnref.)
The spec as written is much more restrictive. Until
WebAssembly/spec#1980 gets resolved, we'll
simply test what V8 supports and ignore these discrepancy issues for
fuzzing.

Bug: 430171132
Change-Id: Id1462e3b978305539e5adeda7beb86fa6719feba
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336702
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Bug: 515363087
Change-Id: I8b5f3189ad34b3a6e117e3cf066e6afe62c20aba
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9336920
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This CL registers Iterator.prototype.includes for fuzzing, which was
added to V8 with https://crrev.com/c/7867647.

Bug: 504886973
Change-Id: I27af5809e4ab47eff7cb4db545f06940762db3c3
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9334922
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Nikos Papaspyrou <nikolaos@google.com>
Bug: 474940922
Change-Id: I20f142ba41d3efa88872ae0dfa308170a8c0ff11
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8956716
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Change-Id: I6a7de94f7a30f30ab30ed17f1760fddaaa7b9758
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9347700
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
This CL adds support for the call_ref instruction.

Bug: 474940922
Change-Id: If708e70dc9fcdd2f53f218f85e93c3d807a5ab9a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9330021
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
This reverts unreviewed changes that were accidentally added to
commit 8fbbfdc.

Original change's description:
> [wasm] Implement ref.as_non_null
>
> Bug: 474940922
> Change-Id: I20f142ba41d3efa88872ae0dfa308170a8c0ff11
> Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8956716
> Commit-Queue: Matthias Liedtke <mliedtke@google.com>
> Auto-Submit: Matthias Liedtke <mliedtke@google.com>
> Reviewed-by: Leon Bettscheider <bettscheider@google.com>

Bug: 474940922
Change-Id: I5a8d7cc465384c304908502d0447cc3b6c9be6ef
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9347522
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
This CL adds support for the return_call_ref instruction.

Bug: 474940922
Change-Id: I8b53203020238fc24c002cbe27f8f60c7fa7fee7
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9317782
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Though `ref func` only if there is a visible Wasm function definition.

Change-Id: I931a8ab63994f415f0a333fdde5fccee95d4037d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9347701
Auto-Submit: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Reviewed-by: Leon Bettscheider <bettscheider@google.com>
Bug: 515363087
Change-Id: I6fd7618baa5c357d2ab21fe0610f2d53ce4effd1
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9345643
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Raphaël Hérouart <rherouart@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Change-Id: I73725256a59e3d2bd9fe00cb302bc40e2e8a219b
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9359700
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Auto-Submit: Olivier Flückiger <olivf@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
Bug: 515363087
Change-Id: I56b113d9ff73c86e3f8458e31ae72499da8901e6
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9362882
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Bug: 515363087
Change-Id: I3653827b5d1467c95c607306bb42cfa97d8cb0a9
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9366042
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Reviewed-by: Marja Hölttä <marja@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Fuzzilli does not have robust support for a function that can have two
different types for a parameter. Overloads are not supported for
builtins / constructors, and union types may be too much of an
over-approximation. This change introduces an `.either` parameter that
is resolved to just one of its types.

Fixed: 515122865
Change-Id: I73d900b183386507ad7cc4a1551b0c4dd5770bf3
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9351247
Commit-Queue: Tigran Bantikyan <bantikyan@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Bug: 398218423
Change-Id: I0fe7cd10030e18c3014e4c8220830631d1b92cce
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9355960
Auto-Submit: Olivier Flückiger <olivf@google.com>
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Filtering a `WeightedList` and then calling `randomElement` on the
result is a common pattern in Fuzzilli:

```
generator = fuzzer.codeGenerators.filter({
    $0.requiredContext.isSubset(of: context)
}).randomElement()
```

In a few cases, the resulting variable (i.e. `generator`) is typed as an
optional. Consequently, the Swift compiler selects that it is more
appropriate to call `Sequence.filter`, returning an array object instead
of a `WeightedList`, and then call `Array.randomElement`, as that method
return an optional. As a result, the weighting of the `WeightedList`
elements is lost.

To resolve this, this CL updates the `WeightedList.randomElement`
overload to return an optional type as well.

Minimal example: https://godbolt.org/z/6vGWzq9PY

Fixed: 521398642
Change-Id: I9a2681c7795036f5953accde518e550f021d8fac
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9371100
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Matthias Liedtke <mliedtke@google.com>
Declarations

Bug: 515363087
Change-Id: Ia5de523536d0be873ea6dfa58260f80b8402536a
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9371140
Reviewed-by: Michael Achenbach <machenbach@google.com>
Commit-Queue: Raphaël Hérouart <rherouart@google.com>
Allow top level await in modules by adding .async to
beginBundleModule.

Drive-By: Rename .asyncFunction to .async

Fixed: 521338444

Change-Id: I3c8bac11b6f41bf2565596b8c3ef2f79161e198f
Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/9362884
Reviewed-by: Matthias Liedtke <mliedtke@google.com>
Commit-Queue: Olivier Flückiger <olivf@google.com>
Auto-Submit: Olivier Flückiger <olivf@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.