docs: function(cls, key, properties) {
  		var defineInstanceKey = cls[canSymbol.for("can.defineInstanceKey")];
  		if(defineInstanceKey) {
  			return defineInstanceKey.call(cls, key, properties);
  		}
  		var proto = cls.prototype;
  		defineInstanceKey = proto[canSymbol.for("can.defineInstanceKey")];
  		if(defineInstanceKey) {
  			defineInstanceKey.call(proto, key, properties);
  		} else {
  			Object.defineProperty(
  				proto,
  				key,
  				shapeReflections.assign({
  					configurable: true,
  					enumerable: !typeReflections.isSymbolLike(key),
  					writable: true
  				}, properties)
  			);
  		}
  	}