use native .map() if available, don't filter out undefined when using fallback