var defined = {
setTimeout: typeof window.setTimeout !== "undefined",
sessionStorage: (function() {
try {
return ('sessionStorage' in window) && window.sessionStorage !== null;
} catch(e) {
return false;
}
})()
}
In IE8 doesn't have window.sessionStorage, so 'undefined' !== null is true.