Make sure wrappers are setup using the window the property came from, instead of the lexical global object.

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


PASS inner.HTMLElement.isInner is true
PASS inner.HTMLElement.constructor.isInner is true
PASS inner.HTMLElement.constructor.prototype.isInner is true
PASS inner.HTMLElement.__proto__.isInner is true
PASS inner.Window.isInner is true
PASS inner.Window.constructor.isInner is true
PASS inner.Window.constructor.prototype.isInner is true
PASS inner.Window.__proto__.isInner is true
PASS inner.console.isInner is true
PASS inner.console.constructor.isInner is true
PASS inner.console.constructor.prototype.isInner is true
PASS inner.console.__proto__.isInner is true
PASS inner.document.isInner is true
PASS inner.document.constructor.isInner is true
PASS inner.document.constructor.prototype.isInner is true
PASS inner.document.__proto__.isInner is true
PASS inner.document.body.isInner is true
PASS inner.document.body.constructor.isInner is true
PASS inner.document.body.constructor.prototype.isInner is true
PASS inner.document.body.__proto__.isInner is true
PASS inner.document.childNodes.isInner is true
PASS inner.document.childNodes.constructor.isInner is true
PASS inner.document.childNodes.constructor.prototype.isInner is true
PASS inner.document.childNodes.__proto__.isInner is true
PASS inner.navigator.isInner is true
PASS inner.navigator.constructor.isInner is true
PASS inner.navigator.constructor.prototype.isInner is true
PASS inner.navigator.__proto__.isInner is true
PASS inner.window.isInner is true
PASS inner.window.constructor.isInner is true
PASS inner.window.constructor.prototype.isInner is true
PASS inner.window.__proto__.isInner is true
PASS successfullyParsed is true

TEST COMPLETE

