Вчера до четырёх утра не мог понять, думал, что посплю и увижу причину, но сегодня все так же не могу понять в чем дело. Может чей-то свежий взгляд избавит меня от мучений

Вопрос в коде -
И ещё интересно, было ли у кого-нибудь, что FD начинал глючить и что с этим делать? Вчера целый день ушел на поиск ошибки, которой не было, сегодня...

Код AS3:
package
{
import flash.display.Sprite;
public class Main extends Sprite
{
private var _array:Array;
public function Main()
{
_array = new Array(1,8,8,9,9,9,3,7,7,7);
trace(selectionSort(_array, comparator))
}
private function selectionSort(array:Array, comparator:Function):Array
{
var data:*, i:int, j:int, min:int, lenght:int = array.length;
while (i < length)
{
min = i;
j = i;
while (j < length)
{
if (array[j++] < array[min])
min = j - 1;
}
data = array[min];
array[min] = array[i];
array[i] = data;
i+=1;
}
trace(lenght); // 10
var a:int = 0;
while (a++ < length)
trace(a); // 1 Почему цикл выполняет только одну итерацию?
return array;
}
public static function comparator(a:Number, b:Number):int
{
if (a < b) return -1;
if (a > b) return 1;
return 0;
}
private function random():int
{
return Math.random() * 10;
}
}
}
Добавлено через 33 минуты
Удалил и заново создал условия в скобках и заработало. Полтора дня ушло на два глюка.