docs: function(func){
  		var args = [].slice.call(arguments, 1);
  		var makeNew = func[canSymbol.for("can.new")];
  		if(makeNew) {
  			return makeNew.apply(func, args);
  		} else {
  			var context = Object.create(func.prototype);
  			var ret = func.apply(context, args);
  			if(typeReflections.isPrimitive(ret)) {
  				return context;
  			} else {
  				return ret;
  			}
  		}
  	}