finds variables that are out of scope and destroys them, freeing the memory used by them.
no deallocation occurs -- instead, the heap manager finds allocated blocks the program is no longer using and reclaims them automatically.
Open up.