Ryan,
As far as I know, the script engine cleans memory itself. In general, script writers should not perform any specific actions for that.
There are several situations when the script engine cannot clean memory (for instance, if you allocate a long string within a function and use this function as an event handler). You can find more information in the Web. For example, I've found this --
http://stackoverflow.com/questions/4324133/javascript-garbage-collection
http://stackoverflow.com/questions/864516/what-is-javascript-garbage-collection
http://blogs.msdn.com/b/ericlippert/archive/2003/09/17/53038.aspx
To force the garbage collection from within your tests, try using the CollectGarbage() JScript function.
Also, TestComplete may cause this issue. I cannot say why it is happening as the situation needs closer investigations. I'd suggest that you contact our Support Team and send them a test project demonstrating the issue and detailed steps to reproduce it. Guys will check the TestComplete behavior and fix errors, if any.