いきなり修正箇所がみつかったので修正版
詳細な説明は前のページを参考に

○元々のsortメソッドが必要な場合もあると思うので書き換えるのではなく、stableSortメソッドを作るように変更
○sortメソッドの引数がない場合にエラーになるのを修正

stableSort.js
(function(){
var sort = Array.prototype.sort;
Array.prototype.stableSort = function(f){
if(f == undefined){
f = function(a,b){return a-b;};
}
for(var i=0;i<this.length;i++){
this[i].__id__ = i;
}
sort.call(this,function(a,b){
var ret = f(a,b);
if( ret == 0 ) return a.__id__>b.__id__ ? 1 : -1;
else return ret;
});
for(var i=0;i<this.length;i++){
delete this[i].__id__;
}
};
})();