diff --git a/Libraries/LibJS/Runtime/Iterator.cpp b/Libraries/LibJS/Runtime/Iterator.cpp index 0d3cf38c6a7..e1e6eff8a93 100644 --- a/Libraries/LibJS/Runtime/Iterator.cpp +++ b/Libraries/LibJS/Runtime/Iterator.cpp @@ -271,6 +271,10 @@ static Completion iterator_close_impl(VM& vm, IteratorRecord const& iterator_rec // 2. Let iterator be iteratorRecord.[[Iterator]]. auto iterator = iterator_record.iterator; + // OPTIMIZATION: "return" method is not defined on any of iterators we treat as built-in. + if (iterator->as_builtin_iterator()) + return completion; + // 3. Let innerResult be Completion(GetMethod(iterator, "return")). auto inner_result = ThrowCompletionOr { js_undefined() }; auto get_method_result = Value(iterator).get_method(vm, vm.names.return_);