Right now, __defineGetter__/__defineSetter__ are implemented by calling virtual (actually static on the MethodTable) JSObject::defineGetter/defineSetter, but we could implement it in terms of JSObject::defineOwnProperty and remove two virtual functions from the MethodTable. This would also be more forward looking, by implementing the legacy __defineGetter__/__defineSetter__ in terms of the now specified defineOwnProperty. If we do this, we need to make sure we continue block the specific uses of __defineGetter__/__defineSetter__ in JSLocation and JSDOMWindow.
*** This bug has been marked as a duplicate of bug 77451 ***