Bootlin logo

Elixir Cross Referencer

<script>

function log(msg) {
    document.getElementById("logger").innerHTML += msg + " -- ";
}

function startTest() {
    try {
        for (var i = 0; i < 101; ++i) {
            history.pushState(0, 0, i.toString());
            log("Successfully added item: " + i);
        }
    } catch(e) {
        log(e);
    }

    setTimeout(continueTest, 30050);
}

function continueTest() {
    alert(1);
    history.pushState(0, 0, "101");
    log("After 30+ second delay, successfully added the 101th item");

    try {
        for (var i = 0; i < 100; ++i) {
            history.replaceState(0, 0, i.toString());
            log("Successfully replaced with item: " + i);
        }
    } catch(e) {
        alert(2);
        log(e);
    }

    setTimeout(finishTest, 30050);
}

function finishTest() {
    alert(3);
    history.replaceState(0, 0, "100");
    log("After 30+ second delay, successfully replaced the 100th item");
}

</script>
This test will take over a minute to run.<br>
100 items should successfully push, and the 101th should fail.<br>
After 30+ seconds, 101th should successfully push.<br>
Then 99 items should successfully replace, with the 100th failing.<br>
After 30+ seconds, the 100th should successfully replace.<br>
<button onclick="startTest();">Click to start test</button>