From aa5d5bf1c859cbb30080bab7303732edcdabb0e2 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Mon, 13 Jun 2022 07:52:28 +0100 Subject: [PATCH] LibJS: Remove redundant VM& parameter from array_merge_sort() This is covered by GlobalObject& just fine. --- Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp | 10 ++++++---- Userland/Libraries/LibJS/Runtime/ArrayPrototype.h | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp b/Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp index 0611741114..e7d9cfa72d 100644 --- a/Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp +++ b/Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp @@ -867,13 +867,15 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::reverse) return this_object; } -ThrowCompletionOr array_merge_sort(VM& vm, GlobalObject& global_object, FunctionObject* compare_func, MarkedVector& arr_to_sort) +ThrowCompletionOr array_merge_sort(GlobalObject& global_object, FunctionObject* compare_func, MarkedVector& arr_to_sort) { // FIXME: it would probably be better to switch to insertion sort for small arrays for // better performance if (arr_to_sort.size() <= 1) return {}; + auto& vm = global_object.vm(); + MarkedVector left(vm.heap()); MarkedVector right(vm.heap()); @@ -888,8 +890,8 @@ ThrowCompletionOr array_merge_sort(VM& vm, GlobalObject& global_object, Fu } } - TRY(array_merge_sort(vm, global_object, compare_func, left)); - TRY(array_merge_sort(vm, global_object, compare_func, right)); + TRY(array_merge_sort(global_object, compare_func, left)); + TRY(array_merge_sort(global_object, compare_func, right)); arr_to_sort.clear(); @@ -990,7 +992,7 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::sort) // to be stable. FIXME: when initially scanning through the array, maintain a flag // for if an unstable sort would be indistinguishable from a stable sort (such as just // just strings or numbers), and in that case use quick sort instead for better performance. - TRY(array_merge_sort(vm, global_object, callback.is_undefined() ? nullptr : &callback.as_function(), items)); + TRY(array_merge_sort(global_object, callback.is_undefined() ? nullptr : &callback.as_function(), items)); for (size_t j = 0; j < items.size(); ++j) TRY(object->set(j, items[j], Object::ShouldThrowExceptions::Yes)); diff --git a/Userland/Libraries/LibJS/Runtime/ArrayPrototype.h b/Userland/Libraries/LibJS/Runtime/ArrayPrototype.h index 09cf513e5e..51cac35d5a 100644 --- a/Userland/Libraries/LibJS/Runtime/ArrayPrototype.h +++ b/Userland/Libraries/LibJS/Runtime/ArrayPrototype.h @@ -58,6 +58,6 @@ private: JS_DECLARE_NATIVE_FUNCTION(group_to_map); }; -ThrowCompletionOr array_merge_sort(VM&, GlobalObject&, FunctionObject* compare_func, MarkedVector& arr_to_sort); +ThrowCompletionOr array_merge_sort(GlobalObject&, FunctionObject* compare_func, MarkedVector& arr_to_sort); }