DOMオブジェクトかECMAオブジェクトかの判定

参考)
http://zombiebook.seesaa.net/article/44919023.html

function isElement(e){
var r = null;
if(e && e.nodeType === 1){
try{
r = e.cloneNode(false);
}catch(n){
return false;
}
try{
if(r == e){
return false;
}else{
// CloneNode で別物なら書換え試行
r.nodeType = 9;
}
if(r.nodeType === 1){
// Cr は error にならないが書き換えられない。
return true;
}else{
return false;
}
}catch(n){
// Cr 以外は error になる
return true;
}
}else{
return false;
}
}