HTML Preparation code:
AخA
 
1
<ul>
2
    <li>1</li>
3
    <li>2</li>
4
    <li>3</li>
5
    <li>4</li>
6
    <li>5</li>
7
    <li>6</li>
8
    <li>7</li>
9
    <li>8</li>
10
    <li>9</li>
11
    <li>10</li>
12
    <li>11</li>
13
    <li>12</li>
14
    <li>13</li>
15
    <li>14</li>
16
    <li>15</li>
17
    <li>16</li>
18
    <li>17</li>
19
    <li>18</li>
20
    <li>19</li>
21
    <li>20</li>
22
    <li>21</li>
23
    <li>22</li>
24
    <li>23</li>
25
    <li>24</li>
26
    <li>25</li>
27
    <li>26</li>
28
    <li>27</li>
29
    <li>28</li>
30
    <li>29</li>
31
    <li>30</li>
32
    <li>31</li>
33
    <li>32</li>
34
</ul>
Script Preparation code:
x
 
function shuffleArray(array) {
    const copy = array.slice(0);
    for (let i = copy.length - 1; i > 0; i--) {
        const j = Math.floor(Math.random() * (i + 1));
        [copy[i], copy[j]] = [copy[j], copy[i]];
    }
    return copy;
}
const list = Array.from(document.querySelectorAll("ul > li"));
const shuffled = shuffleArray(list);
Tests:
  • Sort by textContent

     
    const sorted = shuffled.toSorted((a, b) => {
        return parseInt(a.textContent) - parseInt(b.textContent);
    });
  • Sort by compareDocumentPosition

     
    const sorted = shuffled.toSorted((a, b) => {
        return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING ? 1 : -1;
    });
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Sort by textContent
    Sort by compareDocumentPosition

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 16 days ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36
Chrome 135 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Sort by textContent 54728.5 Ops/sec
Sort by compareDocumentPosition 80779.4 Ops/sec