Use Object.defineProperty for IE9+ support.