IE8 actually HAS Object.defineProperty, but problematic as mentioned above. so `has('object-defineproperty')` will return `true` in IE8 and `!has('object-defineproperty')` will always return false.