Does the environment have full property descriptor support? Handles IE 8's broken defineProperty/gOPD.
Merge objects using their property descriptors
Define a data property on an object. Will fall back to assignment in an engine without descriptors.
Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.