Surface constructor
Surface()
Implementation
Surface() {
// Swept here as well as in the shed so a program that churns through
// surfaces does not grow the list between sheds.
if (_live.length >= _liveSweepThreshold) {
_live.removeWhere((ref) => ref.target == null);
}
_live.add(WeakReference<Surface>(this));
}