1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 07:57:47 +00:00

IDLGenerators: Support nullable double values

This commit is contained in:
Matthew Olsson 2023-03-28 19:43:44 -07:00 committed by Linus Groh
parent 222e3c32cd
commit f99d6e177f

View file

@ -1583,6 +1583,12 @@ static void generate_wrap_statement(SourceGenerator& generator, DeprecatedString
if (!@value@.has_value()) { if (!@value@.has_value()) {
@result_expression@ JS::js_null(); @result_expression@ JS::js_null();
} else { } else {
)~~~");
} else if (type.is_primitive()) {
scoped_generator.append(R"~~~(
if (!@value@.has_value()) {
@result_expression@ JS::js_null();
} else {
)~~~"); )~~~");
} else { } else {
scoped_generator.append(R"~~~( scoped_generator.append(R"~~~(
@ -1643,9 +1649,15 @@ static void generate_wrap_statement(SourceGenerator& generator, DeprecatedString
@result_expression@ new_array@recursion_depth@; @result_expression@ new_array@recursion_depth@;
)~~~"); )~~~");
} else if (type.name() == "boolean" || type.name() == "double" || type.name() == "float") { } else if (type.name() == "boolean" || type.name() == "double" || type.name() == "float") {
scoped_generator.append(R"~~~( if (type.is_nullable()) {
scoped_generator.append(R"~~~(
@result_expression@ JS::Value(@value@.release_value());
)~~~");
} else {
scoped_generator.append(R"~~~(
@result_expression@ JS::Value(@value@); @result_expression@ JS::Value(@value@);
)~~~"); )~~~");
}
} else if (type.name() == "short" || type.name() == "long" || type.name() == "unsigned short") { } else if (type.name() == "short" || type.name() == "long" || type.name() == "unsigned short") {
scoped_generator.append(R"~~~( scoped_generator.append(R"~~~(
@result_expression@ JS::Value((i32)@value@); @result_expression@ JS::Value((i32)@value@);