docs: function(obj, key){
  		// if a key or index
  		// like has own property
  		var hasOwnKey = obj[canSymbol.for("can.hasOwnKey")];
  		if(hasOwnKey) {
  			return hasOwnKey.call(obj, key);
  		}
  		var getOwnKeys = obj[canSymbol.for("can.getOwnKeys")];
  		if( getOwnKeys ) {
  			var found = false;
  			shapeReflections.eachIndex(getOwnKeys.call(obj), function(objKey){
  				if(objKey === key) {
  					found = true;
  					return false;
  				}
  			});
  			return found;
  		}
  		return hasOwnProperty.call(obj, key);
  	}