SiteRef.site is held strongly in Javascript. This is
actually NOT a problem because of the difference between
the way JS Garbage Collection works from Python (in all
browsers since IE6...). They follow reference chains and
find unreachable references and don't just check reference
counts. Thus circular references still allow memory to be
garbage collected. Tested in Chrome on 100000 streams, and
very small additional memory usage.
https://stackoverflow.com/questions/7347203/circular-references-in-javascript-garbage-collector