Compare event.which with actual value that is found in Internet Explorer
Handle IE10's non-standard event target name
Cache event-related details when calculating the range from current selection

Internet explorer will occasionally discard the event before the timeout
callback is triggered, resulting in "Member not found" exceptions being
thrown.
Ensure all args are specified for createNodeIterator

IE10 considers all of these arguments required and will throw if any are
undefined.
Workaround IE's broken Node.contains(node) implementation

See http://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect