Files
NapCatQQ/.pnpm-store/v3/files/a8/dca462953d67e9eb151972ade305c90bfc3d5fe05cb9460552119091be54df25265c0b5ec1b7c64a7a5148e61d97c529beb42078dfd5c8aedb1d2c49ace354
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

38 lines
1.3 KiB
Plaintext

'use strict';
var ArrayCreate = require('es-abstract/2024/ArrayCreate');
var CompareArrayElements = require('es-abstract/2024/CompareArrayElements');
var CreateDataPropertyOrThrow = require('es-abstract/2024/CreateDataPropertyOrThrow');
var IsCallable = require('es-abstract/2024/IsCallable');
var LengthOfArrayLike = require('es-abstract/2024/LengthOfArrayLike');
var SortIndexedProperties = require('es-abstract/2024/SortIndexedProperties');
var ToObject = require('es-abstract/2024/ToObject');
var ToString = require('es-abstract/2024/ToString');
var $TypeError = require('es-errors/type');
module.exports = function toSorted(comparefn) {
if (typeof comparefn !== 'undefined' && !IsCallable(comparefn)) {
throw new $TypeError('`comparefn` must be a function'); // step 1
}
var O = ToObject(this); // step 2
var len = LengthOfArrayLike(O); // step 3
var A = ArrayCreate(len); // step 4
// eslint-disable-next-line no-sequences
var SortCompare = (0, function (x, y) { // step 5
return CompareArrayElements(x, y, comparefn); // step 5.a
});
var sortedList = SortIndexedProperties(O, len, SortCompare, 'read-through-holes'); // step 6
var j = 0; // step 7
while (j < len) { // step 8
CreateDataPropertyOrThrow(A, ToString(j), sortedList[j]); // step 8.a
j += 1; // step 8.b
}
return A; // step 9
};