This test dumps all of the properties that are reachable from the window.performance object, along with their types.

window.performance [object Performance]
window.performance.addEventListener [function]
window.performance.clearMarks [function]
window.performance.clearMeasures [function]
window.performance.clearResourceTimings [function]
window.performance.dispatchEvent [function]
window.performance.getEntries [function]
window.performance.getEntriesByName [function]
window.performance.getEntriesByType [function]
window.performance.mark [function]
window.performance.measure [function]
window.performance.navigation [object PerformanceNavigation]
window.performance.navigation.TYPE_BACK_FORWARD [number]
window.performance.navigation.TYPE_NAVIGATE [number]
window.performance.navigation.TYPE_RELOAD [number]
window.performance.navigation.TYPE_RESERVED [number]
window.performance.navigation.redirectCount [number]
window.performance.navigation.type [number]
window.performance.now [function]
window.performance.onresourcetimingbufferfull [null]
window.performance.removeEventListener [function]
window.performance.setResourceTimingBufferSize [function]
window.performance.timing [object PerformanceTiming]
window.performance.timing.connectEnd [number]
window.performance.timing.connectStart [number]
window.performance.timing.domComplete [number]
window.performance.timing.domContentLoadedEventEnd [number]
window.performance.timing.domContentLoadedEventStart [number]
window.performance.timing.domInteractive [number]
window.performance.timing.domLoading [number]
window.performance.timing.domainLookupEnd [number]
window.performance.timing.domainLookupStart [number]
window.performance.timing.fetchStart [number]
window.performance.timing.loadEventEnd [number]
window.performance.timing.loadEventStart [number]
window.performance.timing.navigationStart [number]
window.performance.timing.redirectEnd [number]
window.performance.timing.redirectStart [number]
window.performance.timing.requestStart [number]
window.performance.timing.responseEnd [number]
window.performance.timing.responseStart [number]
window.performance.timing.secureConnectionStart [number]
window.performance.timing.toJSON [function]
window.performance.timing.unloadEventEnd [number]
window.performance.timing.unloadEventStart [number]
window.performance.timing [printed above as window.performance.timing]
window.performance.navigation [printed above as window.performance.navigation]
window.performance [string]

