Completely agreed... I have the following (roughly) at the top of my scripts in current applications (IE is the main browser that doesn't support the features in question).
async functions and fetch...
try {
eval('(function() { async _ => _; })();');
if (typeof fetch === 'undefined') {
throw new Error('no fetch');
}
} catch (e) {
window.location.replace('/legacy.html');
}