code: function(val) {
  	if ( ! val) return false;
  	if (typeof(val) === 'number' || typeof(val) === 'boolean') {
  		return true;
  	}
  	if (typeof(val) === 'object' && val.length === undefined) {
  		assert(typeof(val) !== 'function', "yessy(function) indicates a mistake: "+val);
  		val = Object.getOwnPropertyNames(val);
  	}
  	if (val.length === 0) {
  		return false;
  	}
  	if (val.length) {
  		for (var i = 0; i < val.length; i++) {
  			if (val[i]) return true;
  		}
  		return false;
  	}
  	return true;
  }
docs: Like truthy, but {}, [] amd [''] are also false alongside '', 0 and false.