murz, я проверил. у меня медленее.

Код AS3:
function test():void {
const L:uint = 1E6;
var i:uint, t:Number;
var result:Array;
// создаём случайный массив
var arr:Array = new Array();
for ( i = 0; i<L; i++ ) {
arr.push( Math.random() > 0 ? i : null );
}
// через фильтер
t = getTimer();
result = arr.filter( removeEmpty );
trace( getTimer() - t );
// обычный перебор
t = getTimer();
result = new Array();
for ( i = 0; i<L; i++ ) {
if ( arr[i] is Number ) {
result.push( arr[i] );
}
}
trace( getTimer() - t );
}
function removeEmpty(a:Object, index:int, source:Array):Boolean {
if ( a is Number ) return true;
return false;
}
test();