Array.prototype.filter||(Array.prototype.filter=function(fun){if(null==this)throw new TypeError;var t=Object(this),len=t.length>>>0;if("function"!=typeof fun)throw new TypeError;for(var val,res=[],thisp=arguments[1],i=0;i>>0;if(0!=len)for(var x,y,fromIndex=0|fromIndex,k=Math.max(0<=fromIndex?fromIndex:len-Math.abs(fromIndex),0);k>>0,i=0;i