Our browser blacklist for differentiating between Grade C and the rest is getting rather long. When it was just IE<=5 it was a quick hack, but now it's getting big.
This article about BBC web developers "cutting the mustard" reminded me of the important of feature detection:
http://responsivenews.co.uk/post/18948466399/cutting-the-mustard
It would shrink our code a lot because a small set of feature tests cover the same as all our hardcoded user agents. More importantly, feature detection will give the blacklist a lot more meaning. Lesser known browsers that we don't officially support will automatically fall in the right category.
We use the same approach in VisualEditor already. A few User-Agent may still be hardcoded as supplementary filter (for browsers we know pretend to support features, but don't; or for features harder to detect).
It will give us confidence and stability into ensuring the runtime has the methods that we require. It would also make it easier to in the future turn off javascript for non-ES5 browsers by simply adding a one line feature test for it.