Backwards compatibility isn't a proper way of describing what I do.
Graceful degradation is the proper description. In short, scripts can degrade by testing for the existence of a property (e.g. `Array.prototype.push`) and ignoring the property if it does not exist.
I'll be posting a large project here soon that should clarify the strategy. Stay tuned.