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
Notes: sideshowbarker 2024-07-17 07:11:12 +09:00

View file

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