LibWeb: Allow null for optional, nullable, no default value union types

For these types, it would previously only accept `undefined` for the
`null` state.

Fixes GET requests in the Turbo library always failing:
9e057f284a/src/http/fetch_request.js (L219-L220)
9e057f284a/src/http/fetch_request.js (L51-L64)

This was found on https://www.fangamer.com/.
This commit is contained in:
Luke Wilde 2025-02-21 13:23:07 +00:00 committed by Andreas Kling
commit 198cec481a
Notes: github-actions[bot] 2025-02-22 17:46:21 +00:00
3 changed files with 27 additions and 1 deletions

View file

@ -1586,9 +1586,10 @@ static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter
)~~~");
} else {
if (!optional_default_value.has_value()) {
union_generator.set("nullish_or_undefined", union_type.is_nullable() ? "nullish" : "undefined");
union_generator.append(R"~~~(
Optional<@union_type@> @cpp_name@;
if (!@js_name@@js_suffix@.is_undefined())
if (!@js_name@@js_suffix@.is_@nullish_or_undefined@())
@cpp_name@ = TRY(@js_name@@js_suffix@_to_variant(@js_name@@js_suffix@));
)~~~");
} else {