Tests that calling Object.getOwnPropertyDescriptor() on a sub-frame's window works as expected

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


descriptor = Object.getOwnPropertyDescriptor(otherWindow, 'location')
PASS descriptor is not undefined
PASS descriptor.get is an instance of Function
PASS descriptor.set is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is false
PASS descriptor.get.call(otherWindow).toString() is "about:blank"
PASS descriptor.get.call() is descriptor.get.call(window)
PASS successfullyParsed is true

TEST COMPLETE

