hamt.js
function arraySpliceOut(mutate, at, arr) {
    var newLen = arr.length - 1;
    var i = 0;
    var g = 0;
    var out = arr;
    if (mutate) {
        i = g = at;
    } else {
        out = new Array(newLen);
        while (i < at) {
            out[g++] = arr[i++];
        }
    }
    ++i;
    while (i <= newLen) {
        out[g++] = arr[i++];
    }if (mutate) {
        out.length = newLen;
    }
    return out;
}
function arraySpliceOut(mutate, at, arr) {
    var newLen = arr.length - 1;
    var i = 0;
    var g = 0;
    var out = arr;
    if (mutate) {
        i = g = at;
    } else {
        out = new Array(newLen);
        while (i < at) {
            out[g++] = arr[i++];
        }
    }
    ++i;
    while (i <= newLen) {
        out[g++] = arr[i++];
    }if (mutate) {
        out.length = newLen;
    }
    return out;
}
function arraySpliceOut ( mutate , at , arr ) { var newLen = arr . length - 1 ; var i = 0 ; var g = 0 ; var out = arr ; if ( mutate ) { i = g = at ; } else { out = new Array ( newLen ) ; while ( i < at ) { out [ g ++ ] = arr [ i ++ ] ; } } ++ i ; while ( i <= newLen ) { out [ g ++ ] = arr [ i ++ ] ; } if ( mutate ) { out . length = newLen ; } return out ; }
Remove a value from an array.

@param mutate Should the input array be mutated?
@param at Index to remove.
@param arr Array.
Remove a value from an array .