Use Object.defineProperty instead of __define*

Hopefully adds compatibility with IE 9