1. Function to String conversion produces different results in different browsers.
var f = []['concat']; (f + '');
// Chrome
"function concat() { [native code] }"
// IE (9)
"
function concat() {
[native code]
}
"
This script tries to extract letters from that string representation, which fails if the string is different. (This is also used as an anti-debugging measure in some JS malware, to prevent researchers from replacing document.write with alert() or similar.)
In particular, this script tries to extract strings 'sessionStorage', 'getComputedStyle', 'onchange' by iterating over the window object, all of whom fail in IE.
There are a couple of things that chrome do and other browsers do not. If you are really interested, its possible to do in other browsers by changing a few values, I was simply too lazy.