When you use a dynamically typed language, all type checking is done when the program runs. The compiler, if there is one, does not perform any type checking.