mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-20 11:36:10 +00:00
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:
parent
16662ab230
commit
198cec481a
Notes:
github-actions[bot]
2025-02-22 17:46:21 +00:00
Author: https://github.com/Lubrsi Commit: https://github.com/LadybirdBrowser/ladybird/commit/198cec481a2 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3659
3 changed files with 27 additions and 1 deletions
|
@ -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 {
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
Successfully created GET request with body set to null
|
||||
Successfully created HEAD request with body set to null
|
||||
Successfully started GET fetch with body set to null
|
||||
Successfully started HEAD fetch with body set to null
|
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<script src="../include.js"></script>
|
||||
<script>
|
||||
asyncTest(async (done) => {
|
||||
try {
|
||||
const dataUrl = "data:,hello";
|
||||
new Request(dataUrl, { method: "GET", body: null });
|
||||
println("Successfully created GET request with body set to null");
|
||||
new Request(dataUrl, { method: "HEAD", body: null });
|
||||
println("Successfully created HEAD request with body set to null");
|
||||
await fetch(dataUrl, { method: "GET", body: null });
|
||||
println("Successfully started GET fetch with body set to null");
|
||||
await fetch(dataUrl, { method: "HEAD", body: null });
|
||||
println("Successfully started HEAD fetch with body set to null");
|
||||
} catch (e) {
|
||||
println(`Unexpected throw: ${e}`);
|
||||
}
|
||||
|
||||
done();
|
||||
});
|
||||
</script>
|
Loading…
Add table
Reference in a new issue