mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 02:57:42 +00:00
LibWeb: Initialize IDL any
values without default value to undefined
Previously this would generate the following code: JS::Value foo_value; if (!foo.is_undefined()) foo_value = foo; Which is dangerous as we're passing an empty value around, which could be exposed to user code again. This is fine with "= null", for which it also generates: else foo_value = JS::js_null(); So, in summary: a value of type `any`, not `required`, with no default value and no initializer from user code will now default to undefined instead of an empty value.
This commit is contained in:
parent
a9a7d65099
commit
7afd215e95
1 changed files with 1 additions and 1 deletions
|
@ -1079,7 +1079,7 @@ static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter
|
|||
)~~~");
|
||||
} else {
|
||||
scoped_generator.append(R"~~~(
|
||||
JS::Value @cpp_name@;
|
||||
JS::Value @cpp_name@ = JS::js_undefined();
|
||||
if (!@js_name@@js_suffix@.is_undefined())
|
||||
@cpp_name@ = @js_name@@js_suffix@;
|
||||
)~~~");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue