I was writing something and in my research found that arrays are documented to have map/reduce/filter, but not in IE ?8? or older. So I poked around, found JavaScript: What dangers are in extending Array.prototype?, and besides several responses to cool my enthusiasm for extending Array.prototype (perhaps even as a shim), the accepted response said:
...This is annoying and has bit me. Old IE sometimes has problems with adding this kind of functionality. You'll just have to see if it works in a case by case basis. For me the problem I had was adding Object.keys to IE7. It seemed to stop working under certain circumstances. Your mileage may vary.
So, in other words, my use case was to shim for older IE was a mechanism that may be dodgy in older IE.
So if I want to support old IE, I should make and use my own standalone map / reduce / filter? I'm planning on taking a different approach in what I am writing now, but it would be nice to know for reference's sake, "If I want feature X that is not in browser Y, and shims may break in browser Y, what is the preferred approach?"