1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:07:34 +00:00

LibJS: Close iterator on throw completion in Array.from

This regressed in #10190
This commit is contained in:
Idan Horowitz 2021-09-24 01:41:54 +03:00
parent 99bc429f3f
commit 5f80d8245d

View file

@ -149,11 +149,12 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayConstructor::from)
Value mapped_value;
if (map_fn) {
mapped_value = TRY_OR_DISCARD(vm.call(*map_fn, this_arg, next_value, Value(k)));
if (vm.exception()) {
auto mapped_value_or_error = vm.call(*map_fn, this_arg, next_value, Value(k));
if (mapped_value_or_error.is_error()) {
iterator_close(*iterator);
return {};
}
mapped_value = mapped_value_or_error.release_value();
} else {
mapped_value = next_value;
}