>>поданный на вход метода Object проходит условие if (input is Array)
это не может быть, описка видимо

Код AS3:
trace( "Object is Array : " + (new Object() is Array));// false
а вообще можно так с типами разобраться

Код AS3:
private function funcName(input:*):void
{
var inputType:Class = Object(input).constructor;
//trace( "inputType : " + inputType );
switch(inputType)
{
case Array:
trace( "Array");
return;
case Object:
trace( "Object");
return;
default:
trace( "Error");
}
}