es5 support getter/setter