Note
A circular reference is a situation where A refers to B, and B refers to A.
For example, the following script creates a circular reference.
var a = %[], b = %[];
a.b = b; b.a = a;
In this situation, object a requires b, and object b requires a. Since the garbage collection method used by TJS2 (reference counting) has difficulty detecting such situations to release objects, TJS2 does not detect them. Therefore, these objects will never be deleted (you can break the circular reference by explicitly invalidating either object with the invalidate operator).
In plugins, objects may leak if reference counting is handled incorrectly. When creating a plugin and handling TJS2 objects within it, pay close attention to reference counting.