From 75db223e088f6e951000ed82e0b3aa8ce1ddc6ea Mon Sep 17 00:00:00 2001 From: Basilisk-Dev Date: Fri, 6 Feb 2026 06:54:54 -0500 Subject: [PATCH] Issue #2551 - comment toSorted implementation --- js/src/builtin/Array.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/js/src/builtin/Array.js b/js/src/builtin/Array.js index a257a2547d..9a6022f340 100644 --- a/js/src/builtin/Array.js +++ b/js/src/builtin/Array.js @@ -261,15 +261,18 @@ function ArrayToSorted(comparefn) { } } + // Step 1: Let O be ? ToObject(this). Let len be ? ToLength(O.length). var O = ToObject(this); var len = ToLength(O.length); + // Step 2: Snapshot values in ascending index order into a List. var items = new List(); var itemsLen = len; for (var k = 0; k < len; k++) { items[k] = O[k]; } + // Step 3: Create SortCompare per spec. var wrappedCompareFn = comparefn; var sortCompare; if (wrappedCompareFn === undefined) { @@ -299,9 +302,11 @@ function ArrayToSorted(comparefn) { }; } + // Step 4: Sort the snapshot List using SortCompare. if (itemsLen > 1) MergeSort(items, itemsLen, sortCompare); + // Step 5: Create result array and write sorted values. var A = ArraySpeciesCreate(O, len); for (var j = 0; j < itemsLen; j++) _DefineDataProperty(A, j, items[j]);