It currently seems to be a fairly naive merge sort. Making it some kind of Timsort (https://en.wikipedia.org/wiki/Timsort) could be an easy perf win.
<rdar://problem/91996423>
Would it make sense to base the Timsort implementation off a full-fledged one (like a Javascript version of the OpenJDK implementation: https://github.com/AdoptOpenJDK/openjdk-jdk11u/blob/master/src/java.base/share/classes/java/util/TimSort.java)? Or would it be better to create a more basic implementation?