Test to make sure cached lookups on the global object are performed correctly.

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


PASS cachedFunctions[0]() is addEventListener
PASS cachedFunctions[0]() is addEventListener
PASS cachedFunctions[1]() is alert
PASS cachedFunctions[1]() is alert
PASS cachedFunctions[2]() is clearInterval
PASS cachedFunctions[2]() is clearInterval
PASS cachedFunctions[3]() is clearTimeout
PASS cachedFunctions[3]() is clearTimeout
PASS cachedFunctions[4]() is clientInformation
PASS cachedFunctions[4]() is clientInformation
PASS cachedFunctions[5]() is closed
PASS cachedFunctions[5]() is closed
PASS cachedFunctions[6]() is confirm
PASS cachedFunctions[6]() is confirm
PASS cachedFunctions[7]() is console
PASS cachedFunctions[7]() is console
PASS cachedFunctions[8]() is crypto
PASS cachedFunctions[8]() is crypto
PASS cachedFunctions[9]() is defaultStatus
PASS cachedFunctions[9]() is defaultStatus
PASS cachedFunctions[10]() is defaultstatus
PASS cachedFunctions[10]() is defaultstatus
PASS cachedFunctions[11]() is description
PASS cachedFunctions[11]() is description
PASS cachedFunctions[12]() is devicePixelRatio
PASS cachedFunctions[12]() is devicePixelRatio
PASS cachedFunctions[13]() is dispatchEvent
PASS cachedFunctions[13]() is dispatchEvent
PASS cachedFunctions[14]() is document
PASS cachedFunctions[14]() is document
PASS cachedFunctions[15]() is getComputedStyle
PASS cachedFunctions[15]() is getComputedStyle
PASS cachedFunctions[16]() is getMatchedCSSRules
PASS cachedFunctions[16]() is getMatchedCSSRules
PASS cachedFunctions[17]() is getSelection
PASS cachedFunctions[17]() is getSelection
PASS cachedFunctions[18]() is history
PASS cachedFunctions[18]() is history
PASS cachedFunctions[19]() is innerHeight
PASS cachedFunctions[19]() is innerHeight
PASS cachedFunctions[20]() is innerWidth
PASS cachedFunctions[20]() is innerWidth
PASS cachedFunctions[21]() is location
PASS cachedFunctions[21]() is location
PASS cachedFunctions[22]() is locationbar
PASS cachedFunctions[22]() is locationbar
PASS cachedFunctions[23]() is menubar
PASS cachedFunctions[23]() is menubar
PASS cachedFunctions[24]() is moveBy
PASS cachedFunctions[24]() is moveBy
PASS cachedFunctions[25]() is moveTo
PASS cachedFunctions[25]() is moveTo
PASS cachedFunctions[26]() is name
PASS cachedFunctions[26]() is name
PASS cachedFunctions[27]() is navigator
PASS cachedFunctions[27]() is navigator
PASS cachedFunctions[28]() is open
PASS cachedFunctions[28]() is open
PASS cachedFunctions[29]() is opener
PASS cachedFunctions[29]() is opener
PASS cachedFunctions[30]() is outerHeight
PASS cachedFunctions[30]() is outerHeight
PASS cachedFunctions[31]() is outerWidth
PASS cachedFunctions[31]() is outerWidth
PASS cachedFunctions[32]() is pageXOffset
PASS cachedFunctions[32]() is pageXOffset
PASS cachedFunctions[33]() is pageYOffset
PASS cachedFunctions[33]() is pageYOffset
PASS cachedFunctions[34]() is parent
PASS cachedFunctions[34]() is parent
PASS cachedFunctions[35]() is prompt
PASS cachedFunctions[35]() is prompt
PASS cachedFunctions[36]() is releaseEvents
PASS cachedFunctions[36]() is releaseEvents
PASS cachedFunctions[37]() is removeEventListener
PASS cachedFunctions[37]() is removeEventListener
PASS cachedFunctions[38]() is resizeBy
PASS cachedFunctions[38]() is resizeBy
PASS cachedFunctions[39]() is resizeTo
PASS cachedFunctions[39]() is resizeTo
PASS cachedFunctions[40]() is screen
PASS cachedFunctions[40]() is screen
PASS cachedFunctions[41]() is screenLeft
PASS cachedFunctions[41]() is screenLeft
PASS cachedFunctions[42]() is screenTop
PASS cachedFunctions[42]() is screenTop
PASS cachedFunctions[43]() is screenX
PASS cachedFunctions[43]() is screenX
PASS cachedFunctions[44]() is screenY
PASS cachedFunctions[44]() is screenY
PASS cachedFunctions[45]() is scroll
PASS cachedFunctions[45]() is scroll
PASS cachedFunctions[46]() is scrollBy
PASS cachedFunctions[46]() is scrollBy
PASS cachedFunctions[47]() is scrollTo
PASS cachedFunctions[47]() is scrollTo
PASS cachedFunctions[48]() is scrollX
PASS cachedFunctions[48]() is scrollX
PASS cachedFunctions[49]() is scrollY
PASS cachedFunctions[49]() is scrollY
PASS cachedFunctions[50]() is setInterval
PASS cachedFunctions[50]() is setInterval
PASS cachedFunctions[51]() is setTimeout
PASS cachedFunctions[51]() is setTimeout
PASS cachedFunctions[52]() is showModalDialog
PASS cachedFunctions[52]() is showModalDialog
PASS cachedFunctions[53]() is status
PASS cachedFunctions[53]() is status
PASS cachedFunctions[54]() is stop
PASS cachedFunctions[54]() is stop
PASS cachedFunctions[55]() is window
PASS cachedFunctions[55]() is window
PASS successfullyParsed is true

TEST COMPLETE

