This tests that functions of the window object and it's prototype have precedence in lookup over elements with id's of the same name.

PASS: typeof window.getSelection should be function and is.
PASS: typeof window.focus should be function and is.
PASS: typeof window.blur should be function and is.
PASS: typeof window.close should be function and is.
PASS: typeof window.print should be function and is.
PASS: typeof window.stop should be function and is.
PASS: typeof window.alert should be function and is.
PASS: typeof window.confirm should be function and is.
PASS: typeof window.prompt should be function and is.
PASS: typeof window.find should be function and is.
PASS: typeof window.scrollBy should be function and is.
PASS: typeof window.scrollTo should be function and is.
PASS: typeof window.scroll should be function and is.
PASS: typeof window.moveBy should be function and is.
PASS: typeof window.moveTo should be function and is.
PASS: typeof window.resizeBy should be function and is.
PASS: typeof window.resizeTo should be function and is.
PASS: typeof window.getComputedStyle should be function and is.
PASS: typeof window.getMatchedCSSRules should be function and is.
PASS: typeof window.postMessage should be function and is.
PASS: typeof window.atob should be function and is.
PASS: typeof window.btoa should be function and is.
PASS: typeof window.open should be function and is.
PASS: typeof window.setTimeout should be function and is.
PASS: typeof window.clearTimeout should be function and is.
PASS: typeof window.setInterval should be function and is.
PASS: typeof window.clearInterval should be function and is.
PASS: typeof window.addEventListener should be function and is.
PASS: typeof window.removeEventListener should be function and is.
PASS: typeof window.captureEvents should be function and is.
PASS: typeof window.releaseEvents should be function and is.
PASS: typeof window.eval should be function and is.
PASS: typeof window.parseInt should be function and is.
PASS: typeof window.parseFloat should be function and is.
PASS: typeof window.isNaN should be function and is.
PASS: typeof window.isFinite should be function and is.
PASS: typeof window.escape should be function and is.
PASS: typeof window.unescape should be function and is.
PASS: typeof window.decodeURI should be function and is.
PASS: typeof window.decodeURIComponent should be function and is.
PASS: typeof window.encodeURI should be function and is.
PASS: typeof window.encodeURIComponent should be function and is.
PASS: typeof window.toString should be function and is.
PASS: typeof window.toLocaleString should be function and is.
PASS: typeof window.valueOf should be function and is.
PASS: typeof window.hasOwnProperty should be function and is.
PASS: typeof window.propertyIsEnumerable should be function and is.
PASS: typeof window.isPrototypeOf should be function and is.
PASS: typeof window.__defineGetter__ should be function and is.
PASS: typeof window.__defineSetter__ should be function and is.
PASS: typeof window.__lookupGetter__ should be function and is.
PASS: typeof window.__lookupSetter__ should be function and is.
PASS: typeof window.myFunction should be function and is.
PASS: typeof window.myPrototypeFunction should be function and is.
