Object.getOwnPropertyDescriptor().get/set does not behave the same as __lookupGetter__/__lookupSetter__ on window properties. For: window.y = 1; window.__defineGetter__("y", function() { return "window.y __getter__"; }); __lookupGetter__ doesn't do the same thing as Object.getOwnPropertyDescriptor: typeof window.__lookupGetter__('y') != typeof Object.getOwnPropertyDescriptor(window, 'y').get;
This is now tested in fast/dom/getter-on-window-object2.html.
The real bug here is not that they behave inconsistently (that will be change shortly by implementing __lookupGetter__ in terms of Object.getOwnPropertyDescriptor()), but that Object.getOwnPropertyDescriptor() does not retrieve the getter/setter from a property on the window that has been overridden with a getter/setter.
As of r99034, __lookupGetter__/__lookupSetter__ match Object.getOwnPropertyDescriptor, and now both are wrong.
Created attachment 113426 [details] Patch
Committed r99136: <http://trac.webkit.org/changeset/99136>