code: function forceNew(ctor) {
          // create object with correct prototype using a do-nothing
          // constructor
          xtor.prototype = ctor.prototype;
          var t = new xtor;
          xtor.prototype = null;    // clean up
          return t;
      }
docs: forceNew(ctor) return a new object that inherits from ctor.prototype but without actually running ctor on the object.