You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
995 B
25 lines
995 B
'use strict'; |
|
var $ = require('../internals/export'); |
|
var global = require('../internals/global'); |
|
var uncurryThis = require('../internals/function-uncurry-this'); |
|
var aCallable = require('../internals/a-callable'); |
|
var toIndexedObject = require('../internals/to-indexed-object'); |
|
var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list'); |
|
var getVirtual = require('../internals/entry-virtual'); |
|
var addToUnscopables = require('../internals/add-to-unscopables'); |
|
|
|
var Array = global.Array; |
|
var sort = uncurryThis(getVirtual('Array').sort); |
|
|
|
// `Array.prototype.toSorted` method |
|
// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toSorted |
|
$({ target: 'Array', proto: true, forced: true }, { |
|
toSorted: function toSorted(compareFn) { |
|
if (compareFn !== undefined) aCallable(compareFn); |
|
var O = toIndexedObject(this); |
|
var A = arrayFromConstructorAndList(Array, O); |
|
return sort(A, compareFn); |
|
} |
|
}); |
|
|
|
addToUnscopables('toSorted');
|
|
|