а нельзя конструктор переопределить, чтобы он следил за созданием объектов? (возможно, реализацию нужно будет подправить)
var oldClassA = classA;
var classA = function(){
if( ! classA._instances )
classA._instances = [];
var o = oldClassA.apply(this, arguments) || this;
classA._instances.push( o );
return o;
}