The compiler generates an implicit try...finally frame around each procedure that needs initialization or finalization of variables, and finalizes the variables in the finally block. This slows down these procedures (up to 5-10% sometimes). With this directive, the generation of such frames can be disabled. One should be careful with this directive, because it can lead to memory leaks if an exception occurs inside the routine. Therefore, it is set to ON by default.