Implemented property accessors as functions instead of using Object.defineProperty for compatibility reasons.