1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-08 14:37:35 +00:00

LibJS: Convert Object::get() to ThrowCompletionOr

To no one's surprise, this patch is pretty big - this is possibly the
most used AO of all of them. Definitely worth it though.
This commit is contained in:
Linus Groh 2021-10-02 23:52:27 +01:00
parent 9b6c09e2c4
commit b7e5f08e56
61 changed files with 326 additions and 686 deletions

View file

@ -1112,9 +1112,10 @@ static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter
if (@js_name@@js_suffix@.is_nullish()) {
@member_name@ = JS::js_undefined();
} else {
@member_name@ = @js_name@@js_suffix@.as_object().get("@member_key@");
if (vm.exception())
auto @member_name@_or_error = @js_name@@js_suffix@.as_object().get("@member_key@");
if (@member_name@_or_error.is_error())
@return_statement@
@member_name@ = @member_name@_or_error.release_value();
}
)~~~");
if (member.required) {
@ -2956,7 +2957,7 @@ void @prototype_class@::initialize(JS::GlobalObject& global_object)
define_native_function(vm.names.keys, keys, 0, default_attributes);
define_native_function(vm.names.values, values, 0, default_attributes);
define_direct_property(*vm.well_known_symbol_iterator(), Object::get(vm.names.entries), JS::Attribute::Configurable | JS::Attribute::Writable);
define_direct_property(*vm.well_known_symbol_iterator(), get_without_side_effects(vm.names.entries), JS::Attribute::Configurable | JS::Attribute::Writable);
)~~~");
}