Do not use getter ES5 syntax for old browsers.

IE8 seems to have problems with this,
so using ES5-shim's Object.defineProperty instead.
Merge pull request #750 from herby/getter-syntax-old-browsers

Do not use getter ES5 syntax for old browsers.