docs: function isMapLike(obj) {
  	if(isPrimitive(obj)) {
  		return false;
  	}
  	var isMapLike = obj[canSymbol.for("can.isMapLike")];
  	if(typeof isMapLike !== "undefined") {
  		return !!isMapLike;
  	}
  	var value = obj[canSymbol.for("can.getKeyValue")];
  	if(value !== undefined) {
  		return !!value;
  	}
  	// everything else in JS is MapLike
  	return true;
  }