Test that DOMRect's properties are on the prototype.

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


PASS rect.__proto__ is DOMRect.prototype
PASS rect.__proto__.__proto__ is DOMRectReadOnly.prototype
PASS Object.getOwnPropertyNames(rect).length is 0
PASS Object.hasOwnProperty(rect, 'top') is false
PASS Object.hasOwnProperty(rect, 'right') is false
PASS Object.hasOwnProperty(rect, 'bottom') is false
PASS Object.hasOwnProperty(rect, 'left') is false
PASS Object.hasOwnProperty(rect, 'width') is false
PASS Object.hasOwnProperty(rect, 'height') is false

* rect.__proto__.x
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* DOMRect.prototype.x
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* rect.__proto__.y
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* DOMRect.prototype.y
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* rect.__proto__.width
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* DOMRect.prototype.width
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* rect.__proto__.height
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* DOMRect.prototype.height
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* rect.__proto__.__proto__.x
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* DOMRectReadonly.prototype.x
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* rect.__proto__.__proto__.y
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* DOMRectReadonly.prototype.y
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* rect.__proto__.__proto__.width
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* DOMRectReadonly.prototype.width
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* rect.__proto__.__proto__.height
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* DOMRectReadonly.prototype.height
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* rect.__proto__.__proto__.top
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* DOMRectReadonly.prototype.top
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* rect.__proto__.__proto__.right
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* DOMRectReadonly.prototype.right
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* rect.__proto__.__proto__.bottom
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* DOMRectReadonly.prototype.bottom
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* rect.__proto__.__proto__.left
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

* DOMRectReadonly.prototype.left
PASS descriptor.get is an instance of Function
PASS descriptor.enumerable is true
PASS descriptor.configurable is true

PASS successfullyParsed is true

TEST COMPLETE

