Make sure prototypes are set up using the window a property came from, instead of the lexical global object.

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


PASS (new inner.Image()).isInner is true
PASS (new inner.Image()).constructor.isInner is true
PASS (new inner.MediaController()).isInner is true
PASS (new inner.MediaController()).constructor.isInner is true
PASS (new inner.Option()).isInner is true
PASS (new inner.Option()).constructor.isInner is true
PASS (new inner.URL('about:blank')).isInner is true
PASS (new inner.URL('about:blank')).constructor.isInner is true
PASS (new inner.XMLHttpRequest()).isInner is true
PASS (new inner.XMLHttpRequest()).constructor.isInner is true
PASS successfullyParsed is true

TEST COMPLETE

