use defineProperty

would you believe: if you have a setter and `writable:false` in defineProperty, V8 throws "TypeError: Invalid property.  A property cannot both have accessors and be writable or have a value"