Компилятор выносит все объявления из условий-циклов. Так, например, конструкция

Код AS3:
if (!true) var a:int = 10;
else a = 20;
trace(a);
скомпилируется и выдаст 20. Хотя переменная А не объявлена в условии. И, конечно же, мы получим warning, если объявим ее в обоих ветках условия.